MCP server for Clio Manage -- matters, contacts, activities, communications, tasks, documents, calendar entries, and bills
Clio MCP demonstrates solid definition quality with comprehensive schemas, clear descriptions, and proper parameter typing across 22 tools. All tools have input schemas with type definitions and descriptions. Tool names follow verb_noun convention (navigate, list, get, create, update). Descriptions average ~150 chars and explain WHAT the tool does and WHEN to use it. However, several tools lack output schema documentation, and some descriptions could be more specific about return structure and error conditions. Error handling is present but generic ('Error: {message}'). The decision-tree navigation pattern (clio_navigate → domain-specific tools) is well-designed but adds cognitive load for LLM tool selection.
Create a new activity (time entry or expense entry). Requires a date and a type. No update tool exists for activities in this server -- the SDK has no activities.update().
Get a single activity (time or expense entry) by its numeric Clio ID.
List activities (time entries and expense entries logged against matters). Supports filtering by matter, user, date range, type, and billing status. No update tool exists -- the SDK has no activities.update().
Return to the Clio domain navigation menu.
Get a single bill by its numeric Clio ID.
List bills (invoices). Read-only -- billing/trust-accounting mutations are out of scope for the Clio SDK.
Output schemas not documented. Tools return structured data but descriptions do not specify return field names, types, or pagination structure. LLMs cannot plan downstream calls without knowing what fields are available.
Error handling is generic. Tool handler catches errors and returns 'Error: {message}' without categorizing as retryable/user-fixable/fatal or providing recovery guidance. LLMs cannot determine next steps.
Navigation pattern adds friction. LLMs must call clio_navigate first, then domain-specific tools. This two-step discovery is inefficient compared to flat tool lists. Consider exposing domain tools directly (e.g. list_matters, list_contacts) alongside navigation for power users.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 67 | 2026-07-28+ | v2 |
Get a single calendar entry by its ID (Clio documents the path parameter as numeric, even though the response field is typed as a string).
List calendar entries (logged calendar events, optionally associated with a matter). Read-only -- the Clio SDK has no create/update/delete for calendar entries.
Get a single communication (logged email or phone call) by its numeric Clio ID.
List communications (logged emails and phone calls associated with a matter). Read-only -- the Clio SDK has no create/update/delete for communications.
Create a new contact. Requires a name and a type (Person or Company). For a Person, also set first_name/last_name.
Get a single contact by its numeric Clio ID.
List contacts (people and companies -- clients, opposing counsel, witnesses). Supports filtering by type, client-only, and free-text query.
Update an existing contact. Only the fields provided are changed.
Get metadata for a single document by its numeric Clio ID. Metadata only -- does not return document content.
List document metadata (name, filename, size, content type, parent folder, associated matter/contact). Metadata only -- does not return document content. The SDK has no download/upload for document bytes.
Create a new matter. Requires a description and a client.
Get a single matter by its numeric Clio ID.
List matters (Clio's core case/file object). Supports filtering by client, status, practice area, responsible attorney, and free-text query. Pass `fields` to get more than the default id/etag -- e.g. "id,etag,display_number,description,status,client{id,name}".
Update an existing matter. Only the fields provided are changed.
Navigate to a Clio domain to see its tools. Domains: - matters: list/get/create/update matters (cases/files) - contacts: list/get/create/update contacts (people and companies) - activities: list/get/create time entries and expense entries logged against matters - communications: list/get logged emails and calls (read-only -- no write API in the SDK) - tasks: list/get/create/update tasks - documents: list/get document metadata only -- does not return document content - calendar-entries: list/get calendar entries (read-only) - bills: list/get bills/invoices (read-only)
Check Clio credential status, current region, and available domains.
Pagination cursors not documented. clio_*_list tools accept page_token but descriptions do not explain how to use it or what it contains. LLMs may not iterate through large result sets correctly.
No confirmation/dry-run for destructive operations. clio_matters_update and clio_contacts_update accept status changes (e.g. close_date) but lack a confirmation step. Agents could accidentally close matters without user approval.