Pleso Therapy MCP server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Pleso Therapy MCP server Find me an English-speaking therapist for anxiety and burnout"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Pleso Therapy — MCP server
A universal Model Context Protocol server that lets any AI assistant — Claude, ChatGPT, Gemini, Perplexity, Copilot, Cursor… — help people find a Pleso therapist for their concerns.
Live endpoint:
https://pleso-mcp--product-team-products.europe-west4.hosted.app/mcp(Firebase App Hosting, projectproduct-team-products, backendpleso-mcp; Streamable HTTP, no auth, read-only)Public pages (same host):
/docs(setup guide),/privacy(connector privacy notice, noindex),/logo.png,/robots.txt. Source:src/pages.tsLocal:
npx @pleso/mcp-server(stdio)Data: Pleso's public therapist catalog (same data as
pleso.me/{region}/therapists/all), cached 30 minPrivacy: no accounts, no cookies, no storage; search terms are never logged
Tools
Tool | What it does |
| Ranks therapists by how strongly they work with up to 5 concerns ("anxiety", "burnout", "breakup", or codes). Filters: region, individual/couple, therapist gender/age, language; preferred methods & client groups boost ranking. Returns match score, why they match, bio excerpt, photo, intro video, profile/booking link. |
| Concerns, methods, client groups and languages available per region (codes + English/local labels). |
| Full public profile: bio, education, specialties by level, methods, client groups, languages, price. |
| How Pleso works, regions, therapist counts, live starting prices, quiz/catalog links. |
| Emergency numbers + crisis lines (UA, PL, RO, GB, IE, US, CA, DE) with findahelpline.com fallback. |
Plus a find_a_therapist prompt. All tools are annotated readOnlyHint: true, destructiveHint: false, openWorldHint: false.
Regions = therapy language: en (English, worldwide · individual), ua (Ukrainian · individual + couple),
pl (Polish · individual + couple), ro (Romanian · individual). Each region has its own concern taxonomy; English
terms are matched against all of them.
How matching works: each Pleso therapist publishes a 1–5 level for each concern. The score is the mean level across the requested concerns (0–100), minus a penalty for any concern below "experienced" (3), plus small bonuses for preferred methods / client groups. Ties break on years of experience. No paid placement.
Related MCP server: Teladoc MCP Server
Develop
npm install
npm test # unit + in-memory MCP tests (no network)
npm run dev # http://localhost:8080/mcp
node scripts/smoke.mjs http://localhost:8080/mcp # live end-to-end check against pleso.me
npx @modelcontextprotocol/inspector # interactive testingEnv vars: PORT (8080), CATALOG_TTL_SECONDS (1800), CATALOG_MAX_ROUNDS (6), WARM_UP (true),
PLESO_BASE_URL (https://pleso.me), OPENAI_APPS_CHALLENGE (ChatGPT domain-verification token).
Deploy (Firebase App Hosting — Product Team - Products)
Deployed from local source (no GitHub link needed), same as the care-roster backend in that project:
npm test
firebase deploy --only apphosting:pleso-mcp --project product-team-products
node scripts/smoke.mjs https://pleso-mcp--product-team-products.europe-west4.hosted.app/mcpRuntime settings live in
apphosting.yaml(1 always-on instance, max 4, 1 vCPU, 512 MiB).On startup the server loads the whole catalog before accepting traffic (max 90 s,
WARM_UP_MAX_SECONDS), so a new rollout keeps the old revision serving until the new one is warm. After that, expired data is served instantly while it refreshes in the background — users never wait on pleso.me.Health check:
GET /health(/healthzis reserved by Google's edge on App Hosting/Cloud Run).Logs: Firebase console → App Hosting → pleso-mcp → Logs (or Cloud Logging, service
pleso-mcp).No custom domain (decided 2026-11-12). Every listing uses the Firebase URL above. Never delete or move the
pleso-mcpbackend: the URL is tied to it, so a move breaks every installed connector and listing. If a move is ever needed, add a custom domain first, then update the listings.
A Dockerfile is also included for any other container host.
Connect it
Client | How |
Claude (web/desktop/mobile) | Settings → Connectors → Add custom connector → |
ChatGPT | Settings → Apps & Connectors → Advanced → Developer mode → Create → URL |
Perplexity | Settings → Connectors / Plugins → Add custom → MCP connector → URL, auth: none |
Gemini CLI |
|
Claude Code |
|
VS Code / Cursor |
|
Claude Desktop (local) |
|
Publish to marketplaces
See docs/PUBLISHING.md — step-by-step for the Claude Connectors Directory, ChatGPT app directory, MCP Registry (→ VS Code/GitHub), Gemini CLI gallery, Perplexity, Smithery, Glama, mcp.so — with ready-to-paste listing copy, example prompts and test cases. Privacy policy draft: docs/PRIVACY.md.
Crisis resources
src/crisis.ts was checked on 2026-11-11. Re-verify every number before each release — hours are deliberately
omitted because sources disagree. findahelpline.com is always returned as a fallback.
Known limitations / roadmap
Data source is the public catalog HTML. pleso.me's default sort is partly randomised, so the loader re-reads pages until it has everyone (currently ~99%: en 49/50, ua 257/259, pl 163/163, ro 85/85). Ask the backend team for a stable JSON endpoint (e.g.
GET /api/public/catalog?region=en) and implement it as anotherCatalogSourceinsrc/catalog.ts— no other code changes needed.No live availability / next free slot yet — a natural next tool once the backend exposes it.
Booking stays on pleso.me (no OAuth). If in-chat booking is ever wanted, it needs OAuth 2.1 + a separate review.
Available Tools
5 toolsget_crisis_resourcesCrisis and emergency contactsARead-onlyIdempotentInspect
Emergency numbers and free crisis/suicide-prevention lines for a country (UA, PL, RO, GB, IE, US, CA, DE; others get the international directory). For situations where someone may be in danger or thinking about suicide or self-harm.
Inputs: country.
get_pleso_infoAbout Pleso: prices, regions and how it worksARead-onlyIdempotentInspect
How Pleso online therapy works: regions/languages, therapist counts, session format, current starting prices per region, and links to browse therapists or take the matching quiz.
Inputs: region.
get_therapist_profileGet a Pleso therapist profileARead-onlyIdempotentInspect
Full public profile of one Pleso therapist by id (from search_therapists): bio, education/diplomas, experience, languages, methods, client groups, all specialties by level, intro video and booking link.
Inputs: therapist_id (required), region.
list_concernsList concerns, methods and client groupsARead-onlyIdempotentInspect
The concerns (issues), therapy methods and client groups Pleso therapists in a region can be searched by, with codes usable in search_therapists.
Inputs: region, therapy_type.
search_therapistsFind a Pleso therapistARead-onlyIdempotentInspect
Search Pleso therapists and rank them by how strongly they work with the given concerns. Concerns can be short plain-language terms (e.g. "anxiety", "burnout", "grief", "panic attacks", "breakup") or codes from list_concerns. Returns up to 10 therapists with match score, matching specialties, methods, languages, a short bio and a profile/booking link on pleso.me.
Inputs: limit, region, methods, concerns, +5 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
Each tool targets a clearly distinct purpose: search across therapists, fetch one full profile, enumerate concern/method codes, explain the service, and surface crisis lines. The only potential overlap (list_concerns vs. search_therapists) is explicitly resolved in the descriptions by framing list_concerns as the code vocabulary used by search.
All five names follow a strict verb_noun snake_case pattern (search_, get_, list_) with no camelCase or vague single-word verbs. The verb choice also encodes semantics well: list for enumerations, get for single-resource fetches, search for ranked retrieval.
Five tools is well-scoped for a therapist-directory server: discovery, detail, vocabulary, service info, and safety resources each earn their place with no redundancy. Nothing feels padded or conspicuously absent from the count.
The surface covers the core directory lifecycle (find -> inspect -> understand offerings -> safety escalation) and the descriptions supply booking links to close the loop. Minor gaps remain: no tool to filter/compare by concrete criteria like price, language, or availability, and no way to retrieve region/language lists directly outside get_pleso_info.
Maintenance
Related MCP Connectors
Search a catalog of AI skills and load one into your chat; small AI CRM board. OAuth sign-in.
Discover, compare, route, and execute machine-accessible capabilities for AI agents.
Search 16,000+ API operations and 95 built tools by need, then call any of them by name
Find and call verified APIs from any AI assistant, with free trial calls and previewed writes.
Related MCP Servers
- -licenseNot gradedqualityNot gradedmaintenanceEnables AI assistants to securely access Epic Healthcare Systems patient data through FHIR R4 API integration. Provides tools for searching patients, retrieving clinical summaries, vital signs, medications, and generating healthcare reports with HIPAA-compliant OAuth 2.0 authentication.-
- AlicenseBqualityDmaintenanceEnables AI agents to interact with the Teladoc telehealth platform to search for providers, book virtual appointments, and manage prescriptions. It also supports secure messaging and access to past visit history through the Model Context Protocol.813 npmMIT
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to search for wellness practitioners, book sessions, manage offerings, and more via the Lokahi API, with OAuth and API key authentication.-
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants to search an Oscar Health in-network provider directory for doctors and facilities, with specialty resolution, local filtering by gender and review quality, plan details, and live provider records.MIT