Clio Manage MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CLIO_REGION | No | Clio region: us, ca, eu, or au | us |
| MCP_AUTH_MODE | No | Authentication mode: oauth, static, or hybrid | hybrid |
| CLIO_CLIENT_ID | Yes | From your Clio Developer Application | |
| PUBLIC_BASE_URL | No | Public HTTPS base URL (required for OAuth/hybrid HTTP mode) | |
| CLIO_CLIENT_SECRET | Yes | From your Clio Developer Application | |
| CLIO_ENCRYPTION_KEY | Yes | 64-hex (32 bytes) encryption key. Generate with openssl rand -hex 32 | |
| CLIO_HTTP_AUTH_TOKENS | No | Comma-separated bearer tokens for static/hybrid HTTP mode | |
| CLIO_BOOTSTRAP_REFRESH_TOKEN | No | Bootstrap refresh token for static/hybrid mode |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| resources | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| clio_authenticateA | Starts the OAuth 2.0 authorization-code flow with Clio in the user's default browser, then persists the resulting access + refresh tokens (encrypted with AES-256-GCM) to disk. LOCAL STDIO TRANSPORT ONLY. On a remote/HTTP deployment (the Clio custom connector), each end user authenticates through the connector's own OAuth sign-in — Claude drives that flow when you add the connector — so this tool is unavailable there and is not needed. |
| clio_auth_statusA | Reports whether valid Clio credentials are currently available, the Clio user id they were issued to, and when the access token expires. On the remote connector this reflects YOUR own per-user session (established via the connector's OAuth sign-in); on local stdio and static/shared HTTP mode it reflects the single shared account. |
| clio_logoutA | Deletes the encrypted token file for the shared account (local stdio / static HTTP mode). Does not revoke the token on Clio's side — use Clio's Developer Applications screen to fully revoke. On the remote connector, per-user sessions are not cleared by this tool; disconnect the connector in Claude (or revoke the app in Clio) to end a session. |
| clio_who_am_iA | Calls GET /users/who_am_i.json to confirm credentials work and return the current user record. |
| clio_list_mattersA | Lists matters with optional filtering. Use |
| clio_get_matterA | Returns full detail for a single matter by id. |
| clio_create_matterA | Creates a new matter. |
| clio_update_matterA | PATCH a matter. Pass only the fields you want to change. |
| clio_delete_matterA | Soft-deletes a matter. Disabled unless CLIO_ALLOW_DESTRUCTIVE=true. Returns 204 on success, 404 if already deleted, 422 if the matter has dependencies (e.g. open bills). |
| clio_list_matter_contactsA | Returns related contacts for the given matter (the client plus any related parties). |
| clio_search_contactsA | Search contacts by free-text query (matches name, email, company). Use clio_get_contact for full detail. |
| clio_get_contactA | Returns full detail for a contact, including all emails, phone numbers, and addresses. |
| clio_create_person_contactC | Creates a person (individual) contact in Clio. |
| clio_create_company_contactC | Creates a company (entity) contact in Clio — Inc., LLC, Ltd., etc. |
| clio_update_contactA | PATCH a contact. Pass only the fields you want to change. |
| clio_delete_contactA | Deletes a contact. Disabled unless CLIO_ALLOW_DESTRUCTIVE=true. Returns 409 if the contact has open bills, 422 if they are a client on an open matter. |
| clio_list_activitiesA | Lists time entries and expenses. Filter by matter, user, date range, or type. Defaults to a useful field set since a bare GET on activities returns only id + etag. |
| clio_get_activityA | Returns a single activity. You MUST request specific fields — Clio's default response is just id + etag. |
| clio_create_time_entryA | Logs billable or non-billable time on a matter. TimeEntry.total = quantity_in_hours × rate. |
| clio_create_expense_entryA | Creates an ExpenseEntry. Use this for flat-fee line items as well — total = quantity × price (not rate × hours). |
| clio_list_tasksA | Lists tasks with optional filters by matter, status, priority, due date range, and assignee. |
| clio_get_taskA | Returns a single task by id. |
| clio_create_taskB | Creates a task. Optionally scoped to a matter and/or assignee. |
| clio_update_taskB | PATCH a task. Common use: mark complete by setting status=Complete. |
| clio_list_notesA | Lists notes attached to a matter or contact. |
| clio_create_noteA | Creates a note on a matter or contact. Notes appear in Clio's matter timeline and survive indefinitely — appropriate for memorializing client conversations and AI-generated summaries. |
| clio_list_calendar_entriesA | Lists calendar entries within a date range. Use ISO dates (YYYY-MM-DD). |
| clio_create_calendar_entryA | Creates a calendar entry. All-day events should set all_day=true and use date-only timestamps. |
| clio_list_calendarsA | Lists the calendars available to the current user. |
| clio_list_documentsB | Lists documents in a matter or folder. |
| clio_get_documentB | Returns document metadata. |
| clio_get_document_download_urlA | Resolves the GET /documents/{id}/download.json endpoint and returns the redirect target — a short-lived signed URL. We do NOT proxy the bytes through the MCP server. |
| clio_list_foldersA | Lists folders under a parent, or top-level if no parent_id given. |
| clio_list_billsA | Lists bills with optional filtering by matter, client, state, or issued-date range. |
| clio_get_billA | Returns a single bill by id. |
| clio_get_billing_summaryA | Aggregates totals across all bills on a matter: total billed, total paid, outstanding balance, and the date of the most-recently-issued bill. |
| clio_list_usersB | Lists firm users. |
| clio_get_userA | Returns a single user by id. |
| clio_list_practice_areasB | Lists practice areas configured on the firm. |
| clio_open_new_matterA | End-to-end intake: creates the client contact (or uses an existing one), opens the matter, and optionally seeds an opening note and an intake task. Returns a summary of everything created. |
| clio_api_requestA | Issue an arbitrary request against the Clio v4 API. Prefer the dedicated tools — this exists for endpoints not yet wrapped (custom_fields, trust_requests, webhooks, etc.). The path is relative to the API root ( |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| compliance-notice | ABA Opinion 512 reminder and an audit-logging summary. |
| auth-status | Live view of whether the server holds valid Clio credentials. |
Latest Blog Posts
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/patrickking67/clio-manage-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server