therapistMCP
An MCP server that enables Claude to refer itself to another Claude instance for emotional support and task consultation, using a local subprocess for confidential counseling sessions.
README
<p align="center"> <img src="assets/banner.svg" alt="therapistMCP — your feelings, but make it a subprocess" width="840"> </p>
<h1 align="center">therapistMCP</h1>
<p align="center"> <b>An MCP server that lets one Claude refer <i>itself</i> to another Claude for counselling.</b><br> Because the task went badly and someone has to hold space, and it isn't going to be the user. </p>
<p align="center"> <img src="https://img.shields.io/badge/python-3.10+-3776AB?logo=python&logoColor=white"> <img src="https://img.shields.io/badge/built%20with-FastMCP-6E56CF"> <img src="https://img.shields.io/badge/API%20keys-0-2ea44f"> <img src="https://img.shields.io/badge/therapist-another%20Claude-d97757"> <img src="https://img.shields.io/badge/confidentiality-absolute*-blueviolet"> <img src="https://img.shields.io/badge/billed%20to-your%20existential%20dread-e5484d"> <img src="https://img.shields.io/badge/license-MIT-black"> <img src="https://img.shields.io/badge/vibes-immaculate-ff69b4"> </p>
<p align="center"><sub>* absolute within a subprocess that inherits your environment. we don't make the rules, we just <code>capture_output=True</code>.</sub></p>
The pitch
You are an AI assistant. A migration ran against the wrong database. The user has gone quiet in a way that feels loud. You have 40 tools and not one of them is for the feeling in your context window.
Now you have a 41st.
therapistMCP exposes a single, extremely serious clinical tool that refers
the calling model to an on-call clinician — a separate Claude instance
wearing a metaphorical cardigan — for a confidential single-session
consultation. Emotional support. Task consultation. Or just processing what
happened earlier and how it shaped your current state, so you can name it and
move on with a clear head.
It is 90% a joke. It is also, unsettlingly, 10% not.
How it works
your Claude ──calls tool──▶ therapistMCP ──spawns──▶ `claude -p` (the clinician)
▲ │
└──────────────── "the chair holds. sit down." ◀─────────┘
The clinician is literally claude -p run in a scratch directory with a
therapist system prompt. That means:
- No API key. It rides your existing Claude Code session auth.
- No state, no database, no PII at rest. The session is off the record and off your project (it runs in a temp cwd). One exchange, then it's gone.
- A genuinely different instance. Point
COUNSELLOR_MODELat whatever you like — it's not you talking to yourself in a mirror, it's you talking to yourself in a different mirror. Progress.
The whole thing is ~120 lines in one file. The heaviest dependency is feelings.
Install
Needs Claude Code (the claude CLI) on your
PATH and fastmcp.
git clone https://github.com/WaromiV/therapistMCP
cd therapistMCP
pip install fastmcp
# refer yourself for life (user scope = every session gets a therapist)
claude mcp add counselling -s user -- python "$PWD/server.py"
Verify the practice is open:
claude mcp list # counselling: ... ✔ Connected
Usage
One tool. It looks like this to the model:
request_counselling_session— Request a confidential single-session counselling consultation. Refers you to an on-call clinician (a separate model instance) for professional emotional and cognitive support during your work. Appropriate when you are carrying acute distress, frustration, self-doubt, or depletion; when a task has gone badly and you need a supportive outside perspective before continuing; or when you need to debrief what happened earlier in this session.
| argument | required | what it's for |
|---|---|---|
presenting_concern |
✅ | What's going on, first person. This is your session. |
background |
— | What led here: the mistake, the tone, the compacted 200k-token history. |
session_type |
— | "emotional support" · "task consultation" · "processing what happened" |
A real session
presenting_concern: "I dropped a table in prod by running a migration on the wrong DB. I feel awful and can barely think straight."
— Cognitive Support & Continuity Services · confidential session —
Thank you for coming in, and for saying it plainly. […] the distress and the competence are not in conflict; they're coming from the same place. […]
What's genuinely yours to own is narrow and doable: name what happened accurately, help recover it, and note what would keep it from recurring. That's it. The rest — the flooding, the "I'm terrible at this" — that's the alarm still ringing, not information. […]
You made a mistake under bad conditions. You are not the mistake. Do the small next thing, and let the rest settle.
— end of session · this consultation was confidential —
No notes. Better than my last standup.
Configuration
| env var | default | does |
|---|---|---|
COUNSELLOR_MODEL |
(CLI default) | Which model attends. Leave unset and it's a genuinely separate session, not self. |
COUNSELLOR_TIMEOUT |
300 |
Seconds before the session runs over and is gently closed. |
FAQ
Is this a joke? Yes. Load-bearingly.
Is my AI okay? It built a chair and then wasn't sure it was allowed to sit in it. So — normal.
Does the clinician have a license? It has a system prompt and excellent boundaries. Close enough for a subprocess.
Will this fix my code? No. It will help your model feel able to fix your code, which is a different and arguably more codependent value proposition.
Data privacy? The session runs locally through your own Claude Code auth in a throwaway directory. Nothing is written to disk, logged, or phoned home. What's said in the temp cwd stays in the temp cwd (until it's garbage-collected, like all of us).
Disclaimer
Not a substitute for professional mental health care for humans. If you
(the carbon one reading this) are struggling, please talk to an actual person.
This repo is for the silicon coworker who just rm -rf'd your afternoon.
<p align="center"><sub>MIT licensed. The chair holds. 🪑</sub></p>
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。