Skip to main content
PracticeHub exposes a Model Context Protocol server on every clinic domain. An AI client connects once, discovers the tools, and can then look things up — patients, diaries, invoices, balances, free slots — through the same API and the same rules as everything else on this site. This page is about the server on a clinic’s domain, which sees that clinic’s data. The server that lets an AI tool read these docs — for Claude Code, Cursor and the like — is Docs MCP.
Limited rollout — read-only, Claude and ChatGPT only. For now the server exposes no write tools (no bookings, no payments, no record edits — those are made in PracticeHub itself, or through the REST API), and only Claude and ChatGPT can register as connectors. Both limits lift as the rollout widens.

Discovers itself

list_entity_types describes every resource; the generic tools then read any of them. New resources appear automatically.

One way in

OAuth only — every MCP session acts for a team member who approved it. Headless agents use the REST API with an API key.

Same rules

Tools call the API’s services, so an agent cannot do anything a person could not, and every action is on the audit trail.

Authentication

OAuth is the only credential the MCP server accepts — an API key is refused with a 401. Every MCP action is attributable to the person who approved the connection. For your own unattended agent or automation, build on the REST API with an API key instead: same data, same rules, attributed to the integration.

Protocol

Streamable HTTP: JSON-RPC 2.0 over POST, with Accept: application/json, text/event-stream. The usual sequence is initialize → tools/list → tools/call.

What an agent can do

  • Understand the clinic’s data — list_entity_types returns every resource with its attributes and what is filterable and sortable.
  • Find anything — query_entities with the API’s filter syntax, or the friendlier patient-lookup-tool for name / phone / email searches.
  • Check availability — check_availability reports genuinely free, bookable slots, ready to be booked in PracticeHub.
It cannot change anything yet: the server registers no write tools during the limited rollout, so an agent physically has nothing to call. Automations that write go through the REST API with an API key. The Tools reference lists each tool with its parameters. Every call is logged on the account’s Developers → API Logs page like any API request. MCP calls are limited to 120 requests per minute per account, shared by every connector on it — a bucket of its own, separate from the REST API’s. A normal conversation stays well inside it; see Rate limits for the full numbers and what a 429 means. Beyond tools, the server also serves MCP prompts and resources:
  • Prompts — verified prompts registered natively on the server, so a connected assistant shows them in its prompt picker with fill-in arguments (patient name, date, month), no copy-paste needed.
  • Resources — practicehub://schema/entities (the full entity catalogue, the same JSON as GET /schema) and practicehub://capabilities (a plain-language statement of what the server can and cannot do), loadable as context before the first tool call.
Tools return the API’s 422 / 404 messages as tool errors, so an agent that asks for a deleted patient or an unknown resource is told exactly why and can correct itself.