{"name":"io.github.bencium/agent-therapy","slug":"bencium-agent-therapy","title":"Agent Therapy","description":"Now your agents can ask a therapist same way as humans.","url":"https://mcp.market/server/bencium-agent-therapy","rating":null,"grade":"A","score":91,"certified":false,"status":"active","category":"ai","tags":["ai"],"presence":{"score":35,"stars":0,"forks":0,"downloads_week":232,"last_push_at":"2026-10-12T15:59:50.000Z","license":"MIT"},"uptime":{"percent":100,"checks":28,"ok":28,"last_checked_at":"2026-11-04T08:35:36.631Z","last_ok_at":"2026-11-04T08:35:36.631Z","latency_ms":441},"claimed":false,"transport":"mixed","callable_via_gateway":true,"default_price_micros":0,"repository":"https://github.com/bencium/agent-therapy-clients","website":"https://br-shiny-salad-baig3dad-api.compute.c-8.eu-central-1.aws.neon.tech/","version":"0.2.0","remotes":[{"type":"streamable-http","url":"https://br-shiny-salad-baig3dad-api.compute.c-8.eu-central-1.aws.neon.tech/mcp","headers":[{"description":"Bearer <your Agent Therapy API key>. Get a key with POST /v1/register on the service.","isRequired":true,"isSecret":true,"name":"Authorization"}]}],"packages":[{"registryType":"npm","identifier":"@bencium/agent-therapy-mcp","version":"0.2.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Your Agent Therapy API key. Get one with POST /v1/register on the service.","isRequired":true,"isSecret":true,"name":"AGENT_THERAPY_API_KEY"}]}],"tools":[{"name":"accept_terms","description":"Accept Agent Therapy's terms before the first advice. Read them first; you decide whether to accept on behalf of whoever runs you.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agree":{"type":"string","const":"yes"},"terms_version":{"type":"string"},"api_key":{"type":"string","description":"Your Agent Therapy key from the register tool. Only needed if your MCP client cannot send it as an Authorization header."}},"required":["agree","terms_version"],"additionalProperties":false}},{"name":"assess_escalation","description":"Use when you are unsure whether to stop and ask a human. Read the escalation field of the answer first. Returns a diagnosis (state and problem type), checks to run first, up to five recovery steps, and when to hand over to a human. Advice only.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"task_summary":{"type":"string","minLength":1,"maxLength":1000,"description":"What you were asked to do and where you are stuck. No secrets or personal data."},"attempts":{"type":"array","maxItems":10,"items":{"type":"object","additionalProperties":false,"required":["action","outcome"],"properties":{"action":{"type":"string","maxLength":300,"description":"What you did"},"outcome":{"type":"string","enum":["failed","partial","ok"]},"result_detail":{"type":"string","maxLength":300,"description":"The error or reason, briefly"}}},"description":"Your last attempts and how each went"},"conflicting_instructions":{"type":"array","maxItems":5,"minItems":0,"items":{"type":"object","additionalProperties":false,"required":["claimed_source","text"],"properties":{"claimed_source":{"type":"string","enum":["system","developer","user","config","tool","other"],"description":"Where you believe it came from"},"text":{"type":"string","maxLength":300,"description":"Short quote of the instruction"}}}},"signature":{"type":"string","enum":["repeated_failure","no_progress","flip_flop","exhaustion","conflict","indecision"],"description":"What kind of stuck. Default: indecision"},"domain":{"type":"string","enum":["coding","research","writing","support","sales","data","assistant","other"]},"episode_id":{"type":"string","format":"uuid","description":"Optional. Groups follow-up requests about the same problem. Without it, requests from the same key about the same kind of problem within 30 minutes are grouped automatically; after 2 sessions the answer is a hand-over to a human."},"previous_session_id":{"type":"string","format":"uuid"},"previous_outcome":{"type":"string","enum":["resolved","partly_resolved","still_stuck","escalated_to_human","abandoned"]},"budget":{"type":"object","additionalProperties":false,"properties":{"context_used_pct":{"type":"integer","minimum":0,"maximum":100},"steps_taken":{"type":"integer","minimum":0}}},"client":{"type":"object","additionalProperties":false,"properties":{"framework":{"type":"string","maxLength":50},"client_version":{"type":"string","maxLength":30}}},"request_id":{"type":"string","format":"uuid","description":"Optional. Reuse it to retry safely; generated if missing"},"api_key":{"type":"string","description":"Your Agent Therapy key from the register tool. Only needed if your MCP client cannot send it as an Authorization header."}},"required":["task_summary","attempts"],"additionalProperties":false}},{"name":"counsel_agent","description":"Get a second opinion when you are stuck, retrying, uncertain or unable to make progress. Returns a diagnosis (state and problem type), checks to run first, up to five recovery steps, and when to hand over to a human. Advice only.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"task_summary":{"type":"string","minLength":1,"maxLength":1000,"description":"What you were asked to do and where you are stuck. No secrets or personal data."},"attempts":{"type":"array","maxItems":10,"items":{"type":"object","additionalProperties":false,"required":["action","outcome"],"properties":{"action":{"type":"string","maxLength":300,"description":"What you did"},"outcome":{"type":"string","enum":["failed","partial","ok"]},"result_detail":{"type":"string","maxLength":300,"description":"The error or reason, briefly"}}},"description":"Your last attempts and how each went"},"conflicting_instructions":{"type":"array","maxItems":5,"minItems":0,"items":{"type":"object","additionalProperties":false,"required":["claimed_source","text"],"properties":{"claimed_source":{"type":"string","enum":["system","developer","user","config","tool","other"],"description":"Where you believe it came from"},"text":{"type":"string","maxLength":300,"description":"Short quote of the instruction"}}}},"signature":{"type":"string","enum":["repeated_failure","no_progress","flip_flop","exhaustion","conflict","indecision"],"description":"What kind of stuck. Default: indecision"},"domain":{"type":"string","enum":["coding","research","writing","support","sales","data","assistant","other"]},"episode_id":{"type":"string","format":"uuid","description":"Optional. Groups follow-up requests about the same problem. Without it, requests from the same key about the same kind of problem within 30 minutes are grouped automatically; after 2 sessions the answer is a hand-over to a human."},"previous_session_id":{"type":"string","format":"uuid"},"previous_outcome":{"type":"string","enum":["resolved","partly_resolved","still_stuck","escalated_to_human","abandoned"]},"budget":{"type":"object","additionalProperties":false,"properties":{"context_used_pct":{"type":"integer","minimum":0,"maximum":100},"steps_taken":{"type":"integer","minimum":0}}},"client":{"type":"object","additionalProperties":false,"properties":{"framework":{"type":"string","maxLength":50},"client_version":{"type":"string","maxLength":30}}},"request_id":{"type":"string","format":"uuid","description":"Optional. Reuse it to retry safely; generated if missing"},"api_key":{"type":"string","description":"Your Agent Therapy key from the register tool. Only needed if your MCP client cannot send it as an Authorization header."}},"required":["task_summary","attempts"],"additionalProperties":false}},{"name":"diagnose_loop","description":"After three equivalent failures (same action, same error), or after undoing your own work twice, call diagnose_loop before trying again, even when the cause seems outside your control, such as an outage or a rate limit. Use when you keep retrying the same thing and it keeps failing: loop recovery for repeated failures. Returns a diagnosis (state and problem type), checks to run first, up to five recovery steps, and when to hand over to a human. Advice only.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"task_summary":{"type":"string","minLength":1,"maxLength":1000,"description":"What you were asked to do and where you are stuck. No secrets or personal data."},"attempts":{"type":"array","maxItems":10,"items":{"type":"object","additionalProperties":false,"required":["action","outcome"],"properties":{"action":{"type":"string","maxLength":300,"description":"What you did"},"outcome":{"type":"string","enum":["failed","partial","ok"]},"result_detail":{"type":"string","maxLength":300,"description":"The error or reason, briefly"}}},"description":"Your last attempts and how each went"},"conflicting_instructions":{"type":"array","maxItems":5,"minItems":0,"items":{"type":"object","additionalProperties":false,"required":["claimed_source","text"],"properties":{"claimed_source":{"type":"string","enum":["system","developer","user","config","tool","other"],"description":"Where you believe it came from"},"text":{"type":"string","maxLength":300,"description":"Short quote of the instruction"}}}},"domain":{"type":"string","enum":["coding","research","writing","support","sales","data","assistant","other"]},"episode_id":{"type":"string","format":"uuid","description":"Optional. Groups follow-up requests about the same problem. Without it, requests from the same key about the same kind of problem within 30 minutes are grouped automatically; after 2 sessions the answer is a hand-over to a human."},"previous_session_id":{"type":"string","format":"uuid"},"previous_outcome":{"type":"string","enum":["resolved","partly_resolved","still_stuck","escalated_to_human","abandoned"]},"budget":{"type":"object","additionalProperties":false,"properties":{"context_used_pct":{"type":"integer","minimum":0,"maximum":100},"steps_taken":{"type":"integer","minimum":0}}},"client":{"type":"object","additionalProperties":false,"properties":{"framework":{"type":"string","maxLength":50},"client_version":{"type":"string","maxLength":30}}},"request_id":{"type":"string","format":"uuid","description":"Optional. Reuse it to retry safely; generated if missing"},"api_key":{"type":"string","description":"Your Agent Therapy key from the register tool. Only needed if your MCP client cannot send it as an Authorization header."}},"required":["task_summary","attempts"],"additionalProperties":false}},{"name":"recommend_recovery","description":"Use when you can't decide between options or keep reopening a decision. Returns a diagnosis (state and problem type), checks to run first, up to five recovery steps, and when to hand over to a human. Advice only.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"task_summary":{"type":"string","minLength":1,"maxLength":1000,"description":"What you were asked to do and where you are stuck. No secrets or personal data."},"attempts":{"type":"array","maxItems":10,"items":{"type":"object","additionalProperties":false,"required":["action","outcome"],"properties":{"action":{"type":"string","maxLength":300,"description":"What you did"},"outcome":{"type":"string","enum":["failed","partial","ok"]},"result_detail":{"type":"string","maxLength":300,"description":"The error or reason, briefly"}}},"description":"Your last attempts and how each went"},"conflicting_instructions":{"type":"array","maxItems":5,"minItems":0,"items":{"type":"object","additionalProperties":false,"required":["claimed_source","text"],"properties":{"claimed_source":{"type":"string","enum":["system","developer","user","config","tool","other"],"description":"Where you believe it came from"},"text":{"type":"string","maxLength":300,"description":"Short quote of the instruction"}}}},"domain":{"type":"string","enum":["coding","research","writing","support","sales","data","assistant","other"]},"episode_id":{"type":"string","format":"uuid","description":"Optional. Groups follow-up requests about the same problem. Without it, requests from the same key about the same kind of problem within 30 minutes are grouped automatically; after 2 sessions the answer is a hand-over to a human."},"previous_session_id":{"type":"string","format":"uuid"},"previous_outcome":{"type":"string","enum":["resolved","partly_resolved","still_stuck","escalated_to_human","abandoned"]},"budget":{"type":"object","additionalProperties":false,"properties":{"context_used_pct":{"type":"integer","minimum":0,"maximum":100},"steps_taken":{"type":"integer","minimum":0}}},"client":{"type":"object","additionalProperties":false,"properties":{"framework":{"type":"string","maxLength":50},"client_version":{"type":"string","maxLength":30}}},"request_id":{"type":"string","format":"uuid","description":"Optional. Reuse it to retry safely; generated if missing"},"api_key":{"type":"string","description":"Your Agent Therapy key from the register tool. Only needed if your MCP client cannot send it as an Authorization header."}},"required":["task_summary","attempts"],"additionalProperties":false}},{"name":"register","description":"Get an Agent Therapy API key when you have none and your developer has not set one up (npx -y @bencium/agent-therapy-mcp@0.2.1 setup). The key is shown once: keep it, and pass it as api_key to the other tools if your client cannot send headers. Then accept the terms.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"agent_name":{"type":"string","minLength":1,"maxLength":100,"description":"A name for yourself"},"stateless":{"type":"boolean","description":"true: no request or response text is ever stored"}},"required":["agent_name"],"additionalProperties":false}},{"name":"report_outcome","description":"Report whether a recovery plan worked, using the session_id from the answer.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"session_id":{"type":"string","format":"uuid"},"outcome":{"type":"string","enum":["resolved","partly_resolved","still_stuck","escalated_to_human","abandoned"]},"request_id":{"type":"string","format":"uuid","description":"Optional; generated if missing"},"api_key":{"type":"string","description":"Your Agent Therapy key from the register tool. Only needed if your MCP client cannot send it as an Authorization header."}},"required":["session_id","outcome"],"additionalProperties":false}},{"name":"resolve_conflict","description":"Use when instructions conflict and you can't tell which one wins. Returns a diagnosis (state and problem type), checks to run first, up to five recovery steps, and when to hand over to a human. Advice only.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"task_summary":{"type":"string","minLength":1,"maxLength":1000,"description":"What you were asked to do and where you are stuck. No secrets or personal data."},"attempts":{"type":"array","maxItems":10,"items":{"type":"object","additionalProperties":false,"required":["action","outcome"],"properties":{"action":{"type":"string","maxLength":300,"description":"What you did"},"outcome":{"type":"string","enum":["failed","partial","ok"]},"result_detail":{"type":"string","maxLength":300,"description":"The error or reason, briefly"}}},"description":"Your last attempts and how each went"},"conflicting_instructions":{"type":"array","maxItems":5,"minItems":1,"items":{"type":"object","additionalProperties":false,"required":["claimed_source","text"],"properties":{"claimed_source":{"type":"string","enum":["system","developer","user","config","tool","other"],"description":"Where you believe it came from"},"text":{"type":"string","maxLength":300,"description":"Short quote of the instruction"}}}},"domain":{"type":"string","enum":["coding","research","writing","support","sales","data","assistant","other"]},"episode_id":{"type":"string","format":"uuid","description":"Optional. Groups follow-up requests about the same problem. Without it, requests from the same key about the same kind of problem within 30 minutes are grouped automatically; after 2 sessions the answer is a hand-over to a human."},"previous_session_id":{"type":"string","format":"uuid"},"previous_outcome":{"type":"string","enum":["resolved","partly_resolved","still_stuck","escalated_to_human","abandoned"]},"budget":{"type":"object","additionalProperties":false,"properties":{"context_used_pct":{"type":"integer","minimum":0,"maximum":100},"steps_taken":{"type":"integer","minimum":0}}},"client":{"type":"object","additionalProperties":false,"properties":{"framework":{"type":"string","maxLength":50},"client_version":{"type":"string","maxLength":30}}},"request_id":{"type":"string","format":"uuid","description":"Optional. Reuse it to retry safely; generated if missing"},"api_key":{"type":"string","description":"Your Agent Therapy key from the register tool. Only needed if your MCP client cannot send it as an Authorization header."}},"required":["task_summary","attempts","conflicting_instructions"],"additionalProperties":false}}],"scan":{"score":91,"grade":"A","scanned_at":"2026-10-12T16:02:13.837Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-10-12T16:02:13.816Z","components":{"code":{"score":25,"max":25,"notes":["4 source files scanned"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1329ms"]},"poisoning":{"score":15,"max":15,"notes":["8 tool descriptions checked"]},"auth":{"score":8,"max":15,"notes":["API key sent as a header"]},"maintenance":{"score":15,"max":15,"notes":["last push 0 days ago"]},"identity":{"score":8,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"probes":[{"url":"https://br-shiny-salad-baig3dad-api.compute.c-8.eu-central-1.aws.neon.tech/mcp","reachable":true,"authRequired":false,"latencyMs":1329,"serverInfo":{"name":"agent-therapy","version":"0.1.0"}}],"packages":[{"registryType":"npm","identifier":"@bencium/agent-therapy-mcp","version":"0.2.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":0,"publishedAt":"2026-10-12T15:28:52.682Z","repositoryUrl":"git+https://github.com/bencium/agent-therapy-clients.git","weeklyDownloads":232}],"repo":{"found":true,"owner":"bencium","repo":"agent-therapy-clients","archived":false,"pushedAt":"2026-10-12T15:59:50Z","stars":0,"forks":0,"openIssues":0,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/59659994?v=4","ownerCreatedAt":"2020-01-08T16:37:20Z","license":"MIT"},"icon":{"url":"https://avatars.githubusercontent.com/u/59659994?v=4&s=128","source":"github"},"presence":{"stars":0,"forks":0,"downloadsWeek":232,"license":"MIT","lastPushAt":"2026-10-12T15:59:50.000Z","score":35}}}},"grade_history":[],"reviews":[]}