Skip to main content
Glama

simplepractice-mcp

Servidor MCP para el SimplePractice Client Portal — el lado al que acceden los clientes de una práctica, no el lado del clínico. Citas, facturación, papeleo y anuncios, leídos a través de la propia JSON:API del portal.

Desarrollado y mantenido por IA (Claude Code). Úsalo bajo tu propio criterio.

Lo que lee

Herramienta

Lo que te ofrece

simplepractice_get_account

práctica, cliente actual, todos los clientes que cubre este inicio de sesión, política de cancelación, permisos de funciones

simplepractice_list_appointments

citas programadas o solicitadas, con clínico y ubicación

simplepractice_list_billing_items

facturas · estados de cuenta · superbills · recibos · historial de cuenta

simplepractice_get_billing_overview

saldo pendiente y recuentos por categoría

simplepractice_list_payment_methods

tarjetas guardadas — marca, últimos cuatro, vencimiento

simplepractice_list_document_requests

papeleo enviado a ti, con un filtro de solo pendientes

simplepractice_get_document_request

una solicitud completa, con sus preguntas y respuestas

simplepractice_list_documents

archivos que la práctica ha compartido

simplepractice_list_announcements

anuncios de la práctica, con recuentos de no leídos

simplepractice_session_status · _request_sign_in_link · _verify_sign_in_token · _verify_sign_in_pin · _sign_out

inicio de sesión

Todo es de solo lectura. Cancelar, firmar y pagar ocurren en el portal.

Related MCP server: practice-fusion-mcp

Configuración

npm install -g simplepractice-mcp
export SIMPLEPRACTICE_PRACTICE=achievebalancetherapy   # or the full host

SIMPLEPRACTICE_PRACTICE es la dirección del portal de la práctica — el slug o el host completo <practice>.clientsecure.me del enlace que tu proveedor envió por correo.

Variable

SIMPLEPRACTICE_PRACTICE

obligatorio — slug o host del portal

SIMPLEPRACTICE_SESSION_FILE

opcional — ruta de sesión (por defecto ~/.simplepractice-mcp/session.json, escrito 0600)

Iniciar sesión

El Client Portal no tiene contraseña. SimplePractice envía por correo un enlace de un solo uso (o un PIN de 6 dígitos); lo intercambias por una cookie de sesión:

  1. simplepractice_request_sign_in_link { email, confirm: true }

  2. Abre el correo, copia el enlace.

  3. simplepractice_verify_sign_in_token { link } — pasa el enlace completo; el token es su fragmento # y la herramienta lo extrae.

Los enlaces son de un solo uso — reproducir uno responde 401 "Authorization has already been used or expired" — y duran 24 horas. El endpoint de solicitud tiene límite de velocidad por dirección y por IP, por lo que el envío está controlado por confirmación: un bucle de reintentos te bloquea la única vía de entrada. No hay token de actualización; cuando la sesión caduca, vuelves a iniciar sesión.

Toda la cadena se verifica de extremo a extremo contra un portal en vivo — solicitud, el enlace enviado por correo, el intercambio que devuelve verified más una cookie de sesión, y una lectura autenticada con esa nueva sesión.

Debido a que ese flujo solo necesita HTTP y tu bandeja de entrada, este servidor no tiene dependencia de navegador y puede ejecutarse en cualquier lugar.

Sin el servidor

skills/simplepractice-fpx hace las mismas lecturas con curl, ya sea iniciando sesión mediante enlace mágico o extrayendo la cookie de sesión de una pestaña del navegador con fpx.

Notas de la construcción de esto

El portal es una aplicación Ember que incluye sourcemaps públicos, por lo que sus modelos, adaptadores y rutas son legibles directamente — docs/SIMPLEPRACTICE-API.md registra los endpoints y las trampas, todo confirmado contra un portal en vivo:

  • El catch-all de la SPA responde HTTP 200 con text/html para cualquier ruta que la API no defina. /cards y /client-billing-overviews parecen endpoints vacíos y funcionales, pero no son endpoints en absoluto — ambos son relaciones include de /clients/<id>.

  • hasDocumentPdf, el isDefault de una tarjeta y el blob de permissions del cliente son todos cadenas, no booleanos ni objetos.

  • Las páginas de facturación se paginan por cursor (page[before] = el cursorId de una fila), las citas por número. Los dos no son intercambiables.

Desarrollo

npm install
npm run build
npm test              # 151 tests
npm run test:coverage # 100% enforced
npm run typecheck     # vitest does not run tsc — this does

Licencia

MIT

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables read-only access to InvoiceNinja data, including invoices, expenses, clients, and tax reports, for AI assistants like Claude.
    1
  • A
    license
    A
    quality
    A
    maintenance
    Enables Claude to read appointments, invoices, quotes, and work requests from a Jobber Client Hub. Read-only, uses a local browser bridge to access the customer portal.
    7
    73
    MIT

View all related MCP servers

Related MCP Connectors

  • Securely access and manage FHIR healthcare data stored in Medplum.

  • Read your Savee saves, boards and home feed, and search its public library. Read-only.

  • Access the Notra API for managing posts, brand identities, integrations, and schedules.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chrischall/simplepractice-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server