TherapyNotes client portal: appointments, documents, billing, messages; confirm-gated sends, uploads
MCPpedia last refreshed this data
io.github.chrischall/therapyportal-mcp is an MCP server that TherapyNotes client portal: appointments, documents, billing, messages; confirm-gated sends, uploads. Its tool list has not been published yet over stdio, sse and http, requires no API key, and scores 61/100 on MCPpedia's security, maintenance and efficiency rubric.
Config is the same across clients - only the file and path differ.
{
"mcpServers": {
"therapyportal": {
"env": {
"THERAPYPORTAL_PRACTICE": "<code>"
},
"args": [
"-y",
"@chrischall/therapyportal-mcp"
],
"command": "npx"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
TherapyNotes client portal: appointments, documents, billing, messages; confirm-gated sends, uploads
Run this in your terminal to verify the server starts. Then let us know if it worked - your result helps other developers.
npx -y '@chrischall/therapyportal-mcp' 2>&1 | head -1 && echo "✓ Server started successfully"
After testing, let us know if it worked:
Five weighted categories - click any category to see the underlying evidence.
No known CVEs.
Checked @chrischall/therapyportal-mcp against OSV.dev.
Be the first to review
Have you used this server?
Share your experience - it helps other developers decide.
Sign in to write a review.
Others in health / productivity
Official MCP server for Anytype API - your encrypted, local and collaborative wiki.
MCP server for monday.com integration.
Give AI agents access to your Obsidian vault via local files or Self-hosted LiveSync.
An MCP Server for computer-use in Windows OS
MCP Security Weekly
Get CVE alerts and security updates for io.github.chrischall/therapyportal-mcp and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
MCP server for TherapyPortal, the client portal of TherapyNotes
(https://www.therapyportal.com/p/<practice>/). It reads upcoming therapy
appointments, paperwork the practice sent, the practice's standing forms,
balances due, payment receipts and secure messages, and downloads completed
documents and receipts as PDFs. It can also send secure messages and upload a
file in answer to a document request, each behind a confirm gate.
This project was developed and is maintained by AI. Use at your own discretion. It reads mental-health records, and only ever from the signed-in user's own account.
Most tools are reads. Three are writes, and each one reaches the practice and cannot be undone through this server:
| Tool | What it sends | Look up first with |
|---|---|---|
therapyportal_send_message | a new secure-message conversation, for one client, under a topic | therapyportal_list_message_topics |
therapyportal_reply_message | a reply in an existing conversation (leaves read state alone unless mark_thread_read) | therapyportal_list_message_threads |
therapyportal_upload_document | a file (local path, inline base64, or an upload slot when hosted) in answer to a pending document request, or an upload-required always-available form | therapyportal_list_documents, therapyportal_list_forms |
All three are annotated destructive and confirm-gated (see below). The server
signs no form, fills in no form and makes no payment. Anything that needs a
signature (PatientSignatureRequired) is refused, with a pointer to the portal.
A download is logged by the practice, the same way the portal logs the click.
On the privacy side, therapyportal_list_clients returns names and date of
birth only. The portal's client record also carries the address, phones,
email, an SSN field, billing notes and free-text comments, and none of those
are ever passed through, on any view.
| Tool | What it returns |
|---|---|
therapyportal_list_clients | the clients linked to this login (for a parent, each child), with the patientId other tools take |
therapyportal_list_appointments | upcoming appointments: time, clinician, telehealth or location, which client; pending requests; practice phone. The portal shows no past visits |
therapyportal_list_documents | paperwork requests (pending / completed / all) and their documents, with portalDocumentId and whether each needs an upload or a signature |
therapyportal_list_forms | the practice's always-available forms (sign or upload as needed), with libraryDocumentId |
therapyportal_get_document_counts | per client, documents waiting to be completed or approved |
therapyportal_list_balances | the balance due per client, and whether autopay is on |
therapyportal_list_receipts | payments, with the dates of service each covered, and paymentId |
therapyportal_list_message_threads | one client's secure-message conversations (does not mark read) |
therapyportal_get_thread_messages | the messages in one conversation (does not mark read); format: "markdown" or "text" reads each body without its HTML |
therapyportal_download_document | a completed form (rendered to PDF) or a file the practice uploaded |
therapyportal_download_receipt | a payment receipt PDF |
therapyportal_list_message_topics | the topics a client can message (topicId, and whether each reaches clinical, billing or administrative staff), whether messaging is on, and whether the client has an assigned clinician |
therapyportal_send_message | write. Start a new conversation (confirm-gated) |
therapyportal_reply_message | write. Reply in a conversation (confirm-gated) |
therapyportal_upload_document | write. Upload a PDF, JPG, JPEG, PNG, HEIC or DOCX (max 25 MB) for a document that asks for one (confirm-gated) |
therapyportal_upload_slot | hosted only: a signed URL to PUT one file to, wh |