Practice Better MCP by usefulapi
Server Details
Read Practice Better clients, sessions, availability, services, packages, invoices and forms.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
- Repository
- m190/usefulapi-mcp
- GitHub Stars
- 0
TDQS
Score is being calculated.
Available Tools
15 toolspractice_better_find_clientsFind clients by name or emailRead-onlyInspect
Search client records by name, preferred name or email (case-insensitive text match). Practice Better has no search endpoint, so this reads the 500 most recent records (5 pages of 100) and filters them; complete says whether every record was checked. Returns at most max_results matches with the same fields as practice_better_list_clients. GET /consultant/records.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Text to look for in first name, last name, preferred name or email. | |
| status | No | Only these statuses. | |
| max_results | No | Most matches to return, 1-50 (default 10). |
practice_better_get_accountGet my accountRead-onlyInspect
The practitioner (API user) behind this connection: id, name, title, timezone, default currency, role flags and the practice (company) id and name. Settings, integrations and the bio are not returned. GET /consultant/profile.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
practice_better_get_availabilityGet available time slotsRead-onlyInspect
Open booking slots of one practitioner for one service, starting on the given day: start, end and duration of each slot. It follows the practitioner's booking settings. Needs a practitioner id and a service id. GET /consultant/availability/slots.
| Name | Required | Description | Default |
|---|---|---|---|
| day | Yes | The day to start from, ISO 8601 date-time with timezone, e.g. 2026-10-12T00:00:00Z. | |
| type | No | Session type: face (in person), phone or virtual. | |
| package_id | No | Only slots usable with this client package. | |
| service_id | Yes | Service id (practice_better_list_services). | |
| location_id | No | Only slots at this location. | |
| practitioner_id | Yes | Practitioner id (practice_better_list_practitioners). |
practice_better_get_clientGet clientRead-onlyInspect
One client record by id: status, name, preferred name, pronouns, email, phones, timezone, activity dates and tag ids. Date of birth, address, insurance, emergency contacts, notes and health history are not returned. GET /consultant/records/{recordId}.
| Name | Required | Description | Default |
|---|---|---|---|
| record_id | Yes | Client record id. |
practice_better_get_invoiceGet invoiceRead-onlyInspect
One invoice by id with its line items (date, quantity, amount, tax) and totals. Descriptions, payment history and billing contact are not returned. GET /consultant/payments/invoices/{invoiceId}.
| Name | Required | Description | Default |
|---|---|---|---|
| invoice_id | Yes | Invoice id. |
practice_better_get_sessionGet sessionRead-onlyInspect
One session (appointment) by id: date, duration, service, practitioner, client (id and name), location and status. Booking notes and session notes are not returned. For a group session pass record_id to see one client's view. GET /consultant/sessions/{sessionId}.
| Name | Required | Description | Default |
|---|---|---|---|
| record_id | No | Group sessions only: the client record id. | |
| session_id | Yes | Session id. |
practice_better_list_clientsList clientsRead-onlyInspect
List client records, newest first: id, status, name, email, phone, timezone and activity dates. Date of birth, address, insurance and notes are not returned. A page holds at most 100 records. To look up one person by name or email use practice_better_find_clients. GET /consultant/records.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results per page, 1-100 (default 25). | |
| status | No | Only these statuses. pendingcreate = prospective client, created = added client. | |
| after_id | No | Cursor for lists in ascending order: return items after this id. Normally use before_id. | |
| before_id | No | Cursor: pass next_page.before_id of the previous reply to get the next page (lists are newest first). | |
| has_account | No | true = only clients with an active Practice Better user account. | |
| child_records | No | true = only sub-records (dependants), false = only primary records. | |
| modified_after | No | ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z. | |
| modified_before | No | ISO 8601 date-time with a timezone, e.g. 2026-10-01T00:00:00Z. |
practice_better_list_form_requestsList form requestsRead-onlyInspect
List forms sent to clients, newest first: which form, which client (id), practitioner, and whether it was started or completed, with dates. The answers are never returned. GET /consultant/formrequests.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results per page, 1-100 (default 25). | |
| after_id | No | Cursor for lists in ascending order: return items after this id. Normally use before_id. | |
| before_id | No | Cursor: pass next_page.before_id of the previous reply to get the next page (lists are newest first). | |
| completed | No | true = only completed requests, false = only incomplete ones. | |
| record_ids | No | Only requests for these client records. | |
| created_after | No | Created on or after this date-time. | |
| created_before | No | Created on or before this date-time. | |
| practitioner_ids | No | Only requests of these practitioners. |
practice_better_list_formsList formsRead-onlyInspect
List the form templates of the practice (intake forms, questionnaires, consent forms): id and name only. GET /consultant/forms.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results per page, 1-100 (default 25). | |
| after_id | No | Cursor for lists in ascending order: return items after this id. Normally use before_id. | |
| team_for | No | Whose items: self (default), all (all team members) or other (team members except you). | |
| before_id | No | Cursor: pass next_page.before_id of the previous reply to get the next page (lists are newest first). |
practice_better_list_invoicesList invoicesRead-onlyInspect
List client invoices, newest first: number, date, totals, amount due and paid, payment status, client (id and name) and practitioner. Payment history and line items are not in the list; use practice_better_get_invoice. GET /consultant/payments/invoices.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results per page, 1-100 (default 25). | |
| after_id | No | Cursor for lists in ascending order: return items after this id. Normally use before_id. | |
| before_id | No | Cursor: pass next_page.before_id of the previous reply to get the next page (lists are newest first). | |
| record_ids | No | Only invoices of these client records. | |
| payment_status | No | Only invoices with these payment statuses. | |
| practitioner_ids | No | Only invoices of these practitioners. | |
| invoice_date_after | No | Invoice date on or after this date-time. | |
| invoice_date_before | No | Invoice date on or before this date-time. |
practice_better_list_packagesList packagesRead-onlyInspect
List the package definitions (bundles of sessions or programs) the practice sells: id, name and SKU. GET /consultant/packages.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results per page, 1-100 (default 25). | |
| after_id | No | Cursor for lists in ascending order: return items after this id. Normally use before_id. | |
| before_id | No | Cursor: pass next_page.before_id of the previous reply to get the next page (lists are newest first). |
practice_better_list_practitionersList practitionersRead-onlyInspect
List the practitioners and admin users of the practice, with id, name, role flags and activation status. Use the ids to filter sessions and invoices. GET /company/administration/members.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
practice_better_list_servicesList servicesRead-onlyInspect
List the services (appointment types) the practice offers: id, name, duration, group or 1-1, session types and SKU. GET /consultant/services.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results per page, 1-100 (default 25). | |
| after_id | No | Cursor for lists in ascending order: return items after this id. Normally use before_id. | |
| team_for | No | Whose items: self (default), all (all team members) or other (team members except you). | |
| before_id | No | Cursor: pass next_page.before_id of the previous reply to get the next page (lists are newest first). |
practice_better_list_sessionsList sessions (appointments)Read-onlyInspect
List sessions (appointments), newest first: date, duration, service, practitioner, client (id and name), status and payment status. Booking notes and session notes are not returned. Filter by date range, practitioner, client record, service or group/1-1. GET /consultant/sessions.
| Name | Required | Description | Default |
|---|---|---|---|
| group | No | true = only group sessions, false = only 1-1 sessions. | |
| limit | No | Results per page, 1-100 (default 25). | |
| after_id | No | Cursor for lists in ascending order: return items after this id. Normally use before_id. | |
| before_id | No | Cursor: pass next_page.before_id of the previous reply to get the next page (lists are newest first). | |
| date_after | No | Sessions on or after this date-time (ISO 8601 with timezone). | |
| record_ids | No | Only sessions of these client records. | |
| date_before | No | Sessions on or before this date-time (ISO 8601 with timezone). | |
| service_ids | No | Only sessions of these services (ids from practice_better_list_services). | |
| practitioner_ids | No | Only sessions of these practitioners (ids from practice_better_list_practitioners). |
practice_better_list_tagsList tagsRead-onlyInspect
List the tags the practice uses to organize clients: id and name. A client record carries tag ids. GET /tags.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Results per page, 1-100 (default 25). | |
| after_id | No | Cursor for lists in ascending order: return items after this id. Normally use before_id. | |
| before_id | No | Cursor: pass next_page.before_id of the previous reply to get the next page (lists are newest first). |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
15 tool updates
- First observed
practice_better_find_clients - First observed
practice_better_get_account - First observed
practice_better_get_availability - First observed
practice_better_get_client - First observed
practice_better_get_invoice - First observed
practice_better_get_session - First observed
practice_better_list_clients - First observed
practice_better_list_form_requests - First observed
practice_better_list_forms - First observed
practice_better_list_invoices - First observed
practice_better_list_packages - First observed
practice_better_list_practitioners - First observed
practice_better_list_services - First observed
practice_better_list_sessions - First observed
practice_better_list_tags
Related MCP Connectors
Read Nookal locations, practitioners, availability, appointments, clients, cases and invoices.
111Read Elation Health patients, appointments, problems, allergies, medications, notes and vitals.
141Read Hint Health patients, memberships, plans, invoices and payments for direct primary care.
1Read Spruce Health contacts, conversations, messages, phone lines and team members (read-only).
241
Related MCP Servers
- AlicenseAqualityAmaintenanceEnables read-only access to SimplePractice Client Portal data — appointments, billing, documents, and announcements — via the portal's JSON:API, using passwordless portal sign-in.15588 npmMIT
- AlicenseAqualityAmaintenanceEnables read-only FHIR access to Practice Fusion EHR to search patients, appointments, conditions, medications, and lab results.137 npm4MIT
- AlicenseAqualityAmaintenanceEnables AI assistants to read field-service business data through a read-only MCP integration, including jobs, invoices, quotes, schedules, clients, and draft client messages. It handles authentication, token refresh, throttling, schema versioning, and account-currency formatting for live Jobber accounts.7MIT
- FlicenseNot gradedqualityCmaintenanceEnables read-only access to InvoiceNinja data, including invoices, expenses, clients, and tax reports, for AI assistants like Claude.1-
Glama MCP Gateway
Add one secure layer between your agents and this server.