clio-mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@clio-mcp find my open matters"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
clio-mcp
A standalone, firm-controlled MCP server that drives Clio matters and documents from Claude Desktop.
Install (one-click, recommended)
Download
ClioMCP.mcpb.In Claude Desktop: Settings → Extensions → Install Extension… → pick the file.
Enter your Clio OAuth Client ID and Client Secret (region defaults to
us) in the form. Secrets are stored in your OS keychain.Just ask Claude to use Clio — e.g. "find my open matters." The first request opens Clio's consent page in your browser; approve it and the request completes. No terminal, no separate login.
First-time auth: if approval takes more than ~55s, Claude will say "approve in your browser, then ask again" — the connection finishes in the background and your next request works.
Tool sets
Clio MCP ships ~46 tools across seven groups: core (matters/contacts/documents), billing (time/expense + bills), calendar, tasks, comms (communications + notes), fields (custom fields), and lookups (practice areas/users/activity descriptions).
By default all are enabled. To scope a deployment to a subset, set the Tool sets field (or CLIO_TOOLSETS) to a comma list, e.g. core,billing,calendar. Unknown names are ignored; an empty result falls back to core.
Related MCP server: Clio Manage MCP
Manual setup (dev / headless)
Register one OAuth app in your firm's Clio developer account (US region). Note the client key and secret. Set the redirect URI to
http://127.0.0.1:9991/callback(loopback login) — and additionally Clio'soauth/approvalpage if you use--manual.Create
~/.clio-mcp/config.json:{ "region": "us", "clientId": "<clio app key>", "clientSecret": "<clio app secret>" }Install and build:
npm install && npm run buildAuthorize as yourself:
node dist/cli.js login # opens a browser (loopback) # or, on a locked-down machine: node dist/cli.js login --manual # paste the code from Clio's approval page
Claude Desktop config
Add to claude_desktop_config.json:
{
"mcpServers": {
"clio": {
"command": "node",
"args": ["/absolute/path/to/ClioMCP/dist/cli.js", "serve"]
}
}
}What it can do (Phase 1)
Matters: find, get, create, update (incl. close), add note, create task. Contacts: find, get, create. Documents: browse, get, download, upload, create folder. Destructive ops (rename/new-version, move, delete document, delete folder) require a two-step confirmation.
Controls
Per-user OAuth; refresh token encrypted at rest (OS keychain or AES-256-GCM file).
Every tool call is recorded in
~/.clio-mcp/audit.log(JSONL) — never tokens or document contents.Destructive actions return a preview +
confirm_tokenfirst and only execute when the token is echoed back.Rate-limit aware (serialized queue honoring Clio's headers).
Phase 2 (Delegant)
The governance seam (src/governance/seam.ts) is the swap point: replace localGuard with a delegant implementation to get firm-wide policy, human approval gates, and tamper-evident central audit — no tool rewrites.
Available Tools
46 toolsclio_add_matter_noteC
Append a note to a matter's timeline.
Inputs: detail (required), matter_id (required), subject.
clio_browseA
List folders and documents under a matter (or a parent folder).
Inputs: limit, matter_id, parent_folder_id.
clio_complete_taskB
Mark a task complete.
Inputs: id (required).
clio_create_calendar_entryC
Create a calendar entry on a calendar, optionally tied to a matter.
Inputs: end_at (required), summary (required), start_at (required), calendar_id (required), +4 more.
clio_create_contactA
Create a client or party. Use type=Person with first/last name, or type=Company with name.
Inputs: type (required), name, last_name, first_name.
clio_create_folderA
Create a folder under a matter or parent folder.
Inputs: name (required), matter_id, parent_folder_id.
clio_create_matterB
Create a new matter for a client.
Inputs: client_id (required), description (required), status, practice_area_id.
clio_create_taskB
Create a task tied to a matter.
Inputs: name (required), matter_id (required), due_at, description.
clio_delete_activityA
Delete a time/expense entry. Destructive: first call previews + returns confirm_token; call again with it to execute.
Inputs: id (required), confirm_token.
clio_delete_calendar_entryA
Delete a calendar entry. Destructive: first call previews + returns confirm_token; call again with it to execute.
Inputs: id (required), confirm_token.
clio_delete_documentA
Delete a document. Destructive: first call returns a preview + confirm_token; call again with the token to execute.
Inputs: id (required), confirm_token.
clio_delete_folderA
Delete a folder. Destructive: first call returns a preview + confirm_token; call again with the token to execute.
Inputs: id (required), confirm_token.
clio_download_documentA
Download a document's content to the local sandbox and return its path. Text/markdown is also returned inline.
Inputs: id (required).
clio_find_activitiesA
List time/expense entries, filtered by matter, user, type, or date range.
Inputs: to, from, type, limit, +2 more.
clio_find_billsB
List bills, filtered by matter, client, or state.
Inputs: limit, state, client_id, matter_id.
clio_find_calendar_entriesA
List calendar entries, filtered by calendar, matter, or date range.
Inputs: to, from, limit, matter_id, +1 more.
clio_find_communicationsB
List logged communications (calls/emails), filtered by matter, contact, or date range.
Inputs: to, from, limit, matter_id, +1 more.
clio_find_contactsB
Search contacts (clients and parties) by name or free text.
Inputs: type, limit, query.
clio_find_mattersB
Search matters by client, status, practice area, or free text. Returns concise fields, paginated.
Inputs: limit, query, status, client_id.
clio_find_notesC
Read notes. The type is required: 'Matter' (with matter_id) or 'Contact' (with contact_id).
Inputs: type (required), limit, matter_id, contact_id.
clio_find_tasksC
List tasks, filtered by matter, assignee, status, or due-date range.
Inputs: limit, due_to, status, due_from, +2 more.
clio_get_activityC
Full detail for one time/expense entry.
Inputs: id (required).
clio_get_billC
Full detail for one bill.
Inputs: id (required).
clio_get_calendar_entryC
Full detail for one calendar entry.
Inputs: id (required).
clio_get_communicationB
Full detail for one communication.
Inputs: id (required).
clio_get_contactC
Full detail for one contact.
Inputs: id (required).
clio_get_documentC
Document metadata plus version history.
Inputs: id (required).
clio_get_matterA
Full detail for one matter, including linked client and recent documents.
Inputs: id (required).
clio_get_noteB
Full detail for one note.
Inputs: id (required).
clio_get_taskC
Full detail for one task.
Inputs: id (required).
clio_list_activity_descriptionsB
List activity descriptions (preset rates/descriptions) to use when logging time/expenses.
Inputs: limit.
clio_list_calendarsB
List the firm/user calendars available to schedule on.
Inputs: limit.
clio_list_custom_fieldsA
List custom field definitions for a parent type, so you know the field ids and value formats.
Inputs: parent_type (required), limit.
clio_list_practice_areasA
List the firm's practice areas (for tagging matters).
Inputs: limit.
clio_list_usersA
List firm users (for assigning tasks/activities). Includes the current user.
Inputs: limit.
clio_log_communicationC
Record a phone call or email communication, optionally tied to a matter or contact.
Inputs: type (required), subject (required), received_at (required), body, +2 more.
clio_log_expenseC
Log an expense entry on a matter.
Inputs: date (required), price (required), quantity (required), matter_id (required), +2 more.
clio_log_timeA
Log a time entry on a matter (hours). Becomes a billable line unless non_billable is set.
Inputs: date (required), quantity (required), matter_id (required), note, +3 more.
clio_move_documentA
Move a document to a different folder. Destructive: requires confirm_token on the second call.
Inputs: id (required), parent_folder_id (required), confirm_token.
clio_set_custom_field_valuesA
Set custom field values on a matter or contact. Use clio_list_custom_fields to get field ids.
Inputs: values (required), parent_id (required), parent_type (required).
clio_update_activityB
Update a time/expense entry (e.g. fix hours, note, or date).
Inputs: id (required), date, note, price, +1 more.
clio_update_calendar_entryC
Update a calendar entry (reschedule, rename, relocate).
Inputs: id (required), end_at, summary, location, +2 more.
clio_update_documentA
Rename a document, or upload a new version (overwrite). Destructive: requires confirm_token on the second call.
Inputs: id (required), name, confirm_token, new_version_path.
clio_update_matterA
Update a matter, including status changes (closing a matter is a status update to 'closed').
Inputs: id (required), status, description.
clio_update_taskB
Update a task (rename, reschedule, reassign, change priority/description).
Inputs: id (required), name, due_at, priority, +2 more.
clio_upload_documentA
Upload a local file as a new document under a matter or folder. Handles Clio's multi-step storage upload atomically.
Inputs: file_path (required), name, matter_id, content_type, +1 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 46 tools
Each tool has a clearly distinct resource and action. Find/get/create/update/delete pairs are perfectly separated, and specialized actions like log_time, move_document, or complete_task do not overlap with anything else.
All tools follow the clio_verb_noun pattern. List/find use plural nouns while get/create/update/delete use singular, creating a predictable and consistent convention throughout.
46 tools is well above the typical 3-15 range and even exceeds the 25+ threshold for 'too many'. Though each tool is purposeful, the large number makes the server heavy and potentially overwhelming for agents.
The server covers many modules (matters, contacts, documents, tasks, activities, bills, calendar, communications, custom fields), but notable gaps exist: contacts have no update/delete, communications lack update/delete, tasks have no delete, and contact notes cannot be added via the available tools.
Related MCP Connectors
Clio MCP server for ChatGPT, Claude and any AI agent: search matters, log time entry, create task, add matter note, create calendar entry and list bills in your own Clio account. Cotlet works in the account through your Cloud Browser, a real Chrome where you sign in to Clio yourself; Cotlet does not store your password and you need no Clio API key. About the official Clio API: Yes. Clio has a REST API, the Clio Manage API v4, with OAuth 2.0 (checked 6 Nov 2026). Setup and FAQ: https://cotlet.dev/integrations/clio-api-mcp-server
Managed firm-brain MCP for law firms: Clio matters, intake, calendar, and calls over OAuth.
Law firm management MCP: manage cases, clients, tasks, calendar and documents via Claude AI.
JusPronto is case-management software for Brazilian law firms. Its remote MCP server (OAuth 2.1 with PKCE, per-permission scopes, audit log) lets Claude and ChatGPT read the firm's own cases, deadlines, agenda, recent court movements and case files with the page cited. Write actions require the lawyer's approval. Requires a JusPronto account.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server for Clio Manage legal practice management software that enables Claude and other MCP clients to read and write Clio data including contacts, matters, and activities directly from chat.8MIT
- AlicenseAqualityCmaintenanceMCP server that connects Clio Manage to Claude via OAuth, enabling law firm management tasks like matter lookup, time tracking, billing, calendar, and document retrieval through natural language.41MIT
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables Claude (or any MCP client) to read and write Clio Manage data—contacts, matters, activities—directly from chat, with flat-fee billing support in one call.-
- AlicenseNot gradedqualityBmaintenanceMCP server for Clio Manage that enables interaction with legal practice data including matters, contacts, activities, communications, tasks, documents, calendar entries, and bills via natural language.Apache 2.0