Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Clio MCP by usefulapi

REMOTE · CLIO.USEFULAPI.IO

Read Clio matters, contacts, time, tasks, calendar and bills; add matters, time entries, notes.

62 Trust /100

Last scanned (1 hour ago)

Scores higher than 46% of remote servers

Reachable. Last reached 25 Oct 2026.

Category CRM and Sales

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security78
Transport & Reachability0
Schema Quality & AI Usability74
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 6471 tokens (~281/item across 23 items; 23 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management7
  • Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 23 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 24 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
  • Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 25 Oct 26 +1
    • Server version: 1.5.0 → 1.5.3 functional
  • 24 Oct 26 0
    • The server rewrote its instructions, which are the text every model session reads security
    • New tool “clio_log_communication”, which the server declares destructive security
    • Tool “clio_get_contact” rewrote its description, which is the text the model reads security
    • Tool “clio_get_matter” rewrote its description, which is the text the model reads security
    • Tool “clio_list_contacts” rewrote its description, which is the text the model reads security
    • Tool “clio_list_matters” rewrote its description, which is the text the model reads security
    • Schema quality: 5185 → 6471 ▼ functional
    • Schema quality: 5185 → 6455 ▼ functional
    • Stability: unverified → 0.03 ▲ functional
    • Server version: 1.4.0 → 1.5.0 functional
    • Server version: 1.3.0 → 1.4.0 functional
    • Server version: 1.0.0 → 1.3.0 functional
    • New tool “clio_list_communications” functional
    • New tool “clio_list_custom_fields” functional
    • “clio_list_contacts” added an optional parameter “custom_field_id” cosmetic
    • “clio_list_contacts” added an optional parameter “custom_field_operator” cosmetic
    • “clio_list_contacts” added an optional parameter “custom_field_value” cosmetic
    • “clio_list_matters” added an optional parameter “custom_field_id” cosmetic
    • “clio_list_matters” added an optional parameter “custom_field_operator” cosmetic
    • “clio_list_matters” added an optional parameter “custom_field_value” cosmetic
  • 23 Oct 26 61

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 25 Oct 2026 · Probed https://clio.usefulapi.io/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=usefulapi.io CN=WE1,O=Google Trust Services,C=US 13 Sept 2026 12 Dec 2026 ECDSA 256 ECDSA-SHA256 d9be3287b0fde9630e825ba1f79bff3f
SANs: usefulapi.io, *.usefulapi.io
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of clio.usefulapi.io. — Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
io. present 38690, 57355 8, 8 Verified
usefulapi.io. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Enforced and verified

The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.

Result Enforced and verified
Enforced On tool calls
HTTP status 302

WWW-Authenticate challenge Bearer realm="OAuth", resource_metadata="https://clio.usefulapi.io/.well-known/oauth-protected-resource/mcp"

Bearer realm="OAuth", resource_metadata="https://clio.usefulapi.io/.well-known/oauth-protected-resource/mcp"

Protected resource metadata

Document https://clio.usefulapi.io/.well-known/oauth-protected-resource/mcp
Retrieved Yes
Resource https://clio.usefulapi.io/mcp
Authorisation server https://clio.usefulapi.io

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://clio.usefulapi.io/mcp Redirected 302 https://usefulapi.io/clio/
http (plaintext) http://clio.usefulapi.io/mcp Inconclusive 302 http://clio.usefulapi.io/mcp
MCP tools · 23 exposed · ~6,208 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
clio_create_calendar_entry ~249

WRITE: Put an event on a Clio calendar — a hearing, meeting or deadline — optionally linked to a matter. calendar_id is the calendar to put it on (the token user's own is default_calendar_id from clio_who_am_i). Clio: POST /calendar_entries.json.

NameTypeReqDescription
all_dayboolean–An all-day event.
calendar_idintegeryesThe calendar's numeric Clio id.
descriptionstring–Longer description.
end_atstringyesEnd (ISO-8601 timestamp).
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
locationstring–Where it takes place.
matter_idinteger–The matter this event belongs to.
send_email_notificationboolean–Email the attendees.
start_atstringyesStart (ISO-8601 timestamp, e.g. 2026-10-02T09:30:00-07:00).
summarystringyesShort title of the event.

No output schema declared.

No examples provided.

clio_create_contact ~250

WRITE: Create a contact — a person (give first_name and/or last_name) or a company (give name) — optionally with an email address and phone number. Clio: POST /contacts.json.

NameTypeReqDescription
emailstring–An email address to add.
email_typestring–Label for the email address (default Work).
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
first_namestring–Person: first name.
last_namestring–Person: last name.
middle_namestring–Person: middle name.
namestring–Company: the company name. (For a person, prefer first_name/last_name.)
phonestring–A phone number to add.
phone_typestring–Label for the phone number (default Work).
prefixstring–Personal title, e.g. Dr.
titlestring–Professional title, e.g. General Counsel.
typestringyesPerson or Company.

No output schema declared.

No examples provided.

clio_create_matter ~241

WRITE: Open a new matter for an existing client contact. Requires the client's contact id and a description. Clio: POST /matters.json.

NameTypeReqDescription
billableboolean–Whether the matter is billable.
client_idintegeryesThe client contact's numeric Clio id.
client_referencestring–The client's own reference for this matter.
descriptionstringyesWhat the matter is, e.g. 'Smith v. Jones — lease dispute'.
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
locationstring–Location of the matter.
open_datestring–Open date (ISO-8601 date, YYYY-MM-DD).
originating_attorney_idinteger–Originating attorney (user id).
practice_area_idinteger–Practice area id.
responsible_attorney_idinteger–Responsible attorney (user id).
statusstring–Initial status (Clio defaults to open).

No output schema declared.

No examples provided.

clio_create_note ~175

WRITE: Add a note to a matter (type Matter + matter_id) or to a contact (type Contact + contact_id). Clio: POST /notes.json.

NameTypeReqDescription
contact_idinteger–For type Contact: the contact's id.
datestring–Date of the note (ISO-8601 date, YYYY-MM-DD).
detailstringyesNote body (plain text).
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
matter_idinteger–For type Matter: the matter's id.
subjectstring–Note subject.
typestringyesAttach to a matter or a contact.

No output schema declared.

No examples provided.

clio_create_task ~255

WRITE: Create a task and assign it to a firm user or a contact, optionally on a matter with a due date and priority. Clio: POST /tasks.json.

NameTypeReqDescription
assignee_idintegeryesThe user or contact to assign the task to.
assignee_typestringyesWhether assignee_id is a User or a Contact.
descriptionstringyesLonger description of the task.
due_atstring–Due date (ISO-8601 date, YYYY-MM-DD).
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
matter_idinteger–The matter the task belongs to.
namestringyesShort name of the task.
notify_assigneeboolean–Notify the assignee on creation.
permissionstring–Visibility (Clio default public).
prioritystring–Priority.
statusstring–Initial status (without advanced tasks, only pending or complete).
statute_of_limitationsboolean–Mark as a statute-of-limitations task.

No output schema declared.

No examples provided.

clio_create_time_entry ~280

WRITE: Record billable (or non-billable) time on a matter. Give hours as a decimal (1.5 = 90 minutes); it is sent to Clio as seconds. If price (hourly rate) is omitted Clio applies the firm's rate hierarchy; if user_id is omitted it records for the token's user. Clio: POST /activities.json with type TimeEntry.

NameTypeReqDescription
activity_description_idinteger–An activity description (billing code) id.
datestringyesThe day the work was done (ISO-8601 date, YYYY-MM-DD).
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
hoursnumberyesTime spent, in hours (decimal).
matter_idintegeryesThe matter's numeric Clio id.
non_billableboolean–Keep this entry off the bill.
notestring–What the time was for — this appears on the bill.
pricenumber–Hourly rate override. Omit to use Clio's rate hierarchy.
user_idinteger–The user who did the work (default: the token's user).

No output schema declared.

No examples provided.

clio_get_bill ~98

Fetch a single bill by id with its state, totals, balance, client and matters. Clio: GET /bills/{id}.json.

NameTypeReqDescription
bill_idintegeryesThe bill's numeric Clio id.
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.

No output schema declared.

No examples provided.

clio_get_contact ~124

Fetch a single contact by id with all email addresses, phone numbers, postal addresses, web sites and custom field values (field_name + value; a picklist value is an option id, see clio_list_custom_fields). Clio: GET /contacts/{id}.json.

NameTypeReqDescription
contact_idintegeryesThe contact's numeric Clio id.
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.

No output schema declared.

No examples provided.

clio_get_matter ~124

Fetch a single matter by id, with its client, practice area, stage, attorneys and custom field values (field_name + value; a picklist value is an option id, see clio_list_custom_fields). Clio: GET /matters/{id}.json.

NameTypeReqDescription
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
matter_idintegeryesThe matter's numeric Clio id.

No output schema declared.

No examples provided.

clio_list_activities ~347

List activities — time entries, expense entries and fixed fees — with hours, rate, total and billing status. Filter by matter, user, type, status or date range. `quantity` is in seconds; `quantity_in_hours` is hours. Clio: GET /activities.json.

NameTypeReqDescription
end_datestring–Only activities dated on or before this day (ISO-8601 date or timestamp).
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
limitinteger–Records per page, 1-200 (default 50).
matter_idinteger–Only this matter's activities.
offsetinteger–next_page.offset from the previous page (used when a custom order is set; capped at 10,000 records).
orderstring–Sort order. Default id(asc).
page_tokenstring–next_page.page_token from the previous page. Omit for the first page.
querystring–Wildcard search on the activity's note.
start_datestring–Only activities dated on or after this day (ISO-8601 date or timestamp).
statusstring–Only activities in this billing status.
typestring–Only this kind of activity.
updated_sincestring–Only records updated after this ISO-8601 timestamp, e.g. 2026-09-01T00:00:00Z.
user_idinteger–Only this user's activities.

No output schema declared.

No examples provided.

clio_list_bills ~373

List bills (invoices) with state, totals, amount due and dates. Filter by client, matter, state, overdue, or issue/due date. Clio: GET /bills.json.

NameTypeReqDescription
client_idinteger–Only this client's bills.
due_afterstring–Only bills due after this day (ISO-8601 date, YYYY-MM-DD).
due_beforestring–Only bills due before this day (ISO-8601 date, YYYY-MM-DD).
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
issued_afterstring–Only bills issued after this day (ISO-8601 date, YYYY-MM-DD).
issued_beforestring–Only bills issued before this day (ISO-8601 date, YYYY-MM-DD).
limitinteger–Records per page, 1-200 (default 50).
matter_idinteger–Only this matter's bills.
offsetinteger–next_page.offset from the previous page (used when a custom order is set; capped at 10,000 records).
orderstring–Sort order. Default id(asc).
overdue_onlyboolean–Only overdue bills.
page_tokenstring–next_page.page_token from the previous page. Omit for the first page.
statestring–Only bills in this state.
typestring–Only revenue or trust bills.
updated_sincestring–Only records updated after this ISO-8601 timestamp, e.g. 2026-09-01T00:00:00Z.

No output schema declared.

No examples provided.

clio_list_calendar_entries ~314

List calendar entries (hearings, meetings, deadlines) in a time window, optionally for one matter or calendar. Set expanded=true to get each occurrence of recurring events. Clio: GET /calendar_entries.json.

NameTypeReqDescription
calendar_idinteger–Only entries on this calendar.
expandedboolean–Return one record per occurrence of recurring events.
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
fromstring–Only entries ending on or after this ISO-8601 timestamp.
is_all_dayboolean–Only all-day (true) or timed (false) entries.
limitinteger–Records per page, 1-200 (default 50).
matter_idinteger–Only this matter's entries.
offsetinteger–next_page.offset from the previous page (used when a custom order is set; capped at 10,000 records).
page_tokenstring–next_page.page_token from the previous page. Omit for the first page.
querystring–Search text.
tostring–Only entries starting on or before this ISO-8601 timestamp.
updated_sincestring–Only records updated after this ISO-8601 timestamp, e.g. 2026-09-01T00:00:00Z.

No output schema declared.

No examples provided.

clio_list_communications ~371

List logged communications — phone calls and emails recorded on matters — with subject, body, date, senders and receivers. Filter by matter, contact, user, type or date range, or search subject and body. Clio: GET /communications.json.

NameTypeReqDescription
contact_idinteger–Only communications with this contact.
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
having_time_entriesboolean–Only communications with (true) or without (false) time entries.
limitinteger–Records per page, 1-200 (default 20: email bodies can be long).
matter_idinteger–Only this matter's communications.
offsetinteger–next_page.offset from the previous page (used when a custom order is set; capped at 10,000 records).
orderstring–Sort order. Default id(asc).
page_tokenstring–next_page.page_token from the previous page. Omit for the first page.
querystring–Wildcard search on subject and body.
received_beforestring–Only communications on or before this day (ISO-8601 date, YYYY-MM-DD).
received_sincestring–Only communications on or after this day (ISO-8601 date, YYYY-MM-DD).
typestring–Only phone calls or only emails.
updated_sincestring–Only records updated after this ISO-8601 timestamp, e.g. 2026-09-01T00:00:00Z.
user_idinteger–Only communications of this user.

No output schema declared.

No examples provided.

clio_list_contacts ~441

Search and list contacts — clients, prospective clients, companies, opposing parties and co-counsel. `query` wildcard-matches name, email, phone, address and more; custom_field_id + custom_field_value filter by one of the firm's custom fields. Clio: GET /contacts.json.

NameTypeReqDescription
client_onlyboolean–Only contacts who are clients.
custom_field_idinteger–Only records whose custom field with this id (from clio_list_custom_fields) matches custom_field_value.
custom_field_operatorstring–Required for currency, date, time and numeric fields (= for an exact match); leave it out for every other field type.
custom_field_valuestring–The value to match. Checkbox: true or false; picklist: the option id; contact or matter field: the record id; date: YYYY-MM-DD. Text, checkbox, picklist, contact and matter fields always match exactl…
email_onlyboolean–Only contacts that have an email address.
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
initialstring–Only contacts whose last name or company name starts with this letter (A-Z).
limitinteger–Records per page, 1-200 (default 50).
offsetinteger–next_page.offset from the previous page (used when a custom order is set; capped at 10,000 records).
orderstring–Sort order. Default id(asc).
page_tokenstring–next_page.page_token from the previous page. Omit for the first page.
querystring–Wildcard search across name, title, email, phone, address, web site and custom fields.
typestring–Only people or only companies.
updated_sincestring–Only records updated after this ISO-8601 timestamp, e.g. 2026-09-01T00:00:00Z.

No output schema declared.

No examples provided.

clio_list_custom_fields ~291

List the firm's custom fields for matters or contacts — name, type, whether required, and the options of picklist fields (option id + text). Use the ids to filter clio_list_matters / clio_list_contacts and to read the values that clio_get_matter / clio_get_contact return. Clio: GET /custom_fields.json.

NameTypeReqDescription
deletedboolean–Only fields deleted for future use (true) or active ones (false).
field_typestring–Only fields of this type.
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
limitinteger–Records per page, 1-200 (default 50).
offsetinteger–next_page.offset from the previous page (used when a custom order is set; capped at 10,000 records).
orderstring–Sort order. Default id(asc).
page_tokenstring–next_page.page_token from the previous page. Omit for the first page.
parent_typestring–Only matter fields or only contact fields.
querystring–Wildcard search on the field name.
visible_and_requiredboolean–Only fields that are visible and required.

No output schema declared.

No examples provided.

clio_list_documents ~307

List documents (metadata only: name, file name, type, size, category, dates) for a matter, a contact or a folder, or search them by name. Clio: GET /documents.json.

NameTypeReqDescription
contact_idinteger–Only this contact's documents.
document_category_idinteger–Only documents in this category.
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
limitinteger–Records per page, 1-200 (default 50).
matter_idinteger–Only this matter's documents.
offsetinteger–next_page.offset from the previous page (used when a custom order is set; capped at 10,000 records).
orderstring–Sort order. Default id(asc).
page_tokenstring–next_page.page_token from the previous page. Omit for the first page.
parent_idinteger–Only documents in this folder.
querystring–Wildcard search on the document name.
scopestring–With parent_id: direct children only (default) or everything beneath the folder.
updated_sincestring–Only records updated after this ISO-8601 timestamp, e.g. 2026-09-01T00:00:00Z.

No output schema declared.

No examples provided.

clio_list_matters ~510

Search and list matters (the firm's cases) with their client, practice area, responsible attorney and status. `query` wildcard-matches matter number or description and the client's name; custom_field_id + custom_field_value filter by one of the firm's custom fields (e.g. a court case number). Clio: GET /matters.json.

NameTypeReqDescription
billableboolean–Only billable (true) or non-billable (false) matters.
client_idinteger–Only this client's (contact id) matters.
custom_field_idinteger–Only records whose custom field with this id (from clio_list_custom_fields) matches custom_field_value.
custom_field_operatorstring–Required for currency, date, time and numeric fields (= for an exact match); leave it out for every other field type.
custom_field_valuestring–The value to match. Checkbox: true or false; picklist: the option id; contact or matter field: the record id; date: YYYY-MM-DD. Text, checkbox, picklist, contact and matter fields always match exactl…
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
limitinteger–Records per page, 1-200 (default 50).
offsetinteger–next_page.offset from the previous page (used when a custom order is set; capped at 10,000 records).
orderstring–Sort order. Default id(asc), the only order that allows unlimited cursor paging.
originating_attorney_idinteger–Only matters with this originating attorney (user id).
page_tokenstring–next_page.page_token from the previous page. Omit for the first page.
practice_area_idinteger–Only matters in this practice area.
querystring–Wildcard search on display number, number, description, or the client's name.
responsible_attorney_idinteger–Only matters with this responsible attorney (user id).
statusstring–open, closed or pending — or several comma-separated, e.g. open,pending.
updated_sincestring–Only records updated after this ISO-8601 timestamp, e.g. 2026-09-01T00:00:00Z.

No output schema declared.

No examples provided.

clio_list_notes ~277

List notes on a matter or a contact, with subject, body, date and author. Clio requires type; narrow to one matter or contact with matter_id or contact_id. Clio: GET /notes.json.

NameTypeReqDescription
contact_idinteger–For type Contact: the contact's id.
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
limitinteger–Records per page, 1-200 (default 50).
matter_idinteger–For type Matter: the matter's id.
offsetinteger–next_page.offset from the previous page (used when a custom order is set; capped at 10,000 records).
orderstring–Sort order. Default id(asc).
page_tokenstring–next_page.page_token from the previous page. Omit for the first page.
querystring–Wildcard search across subject and detail.
typestringyesMatter notes or contact notes.
updated_sincestring–Only records updated after this ISO-8601 timestamp, e.g. 2026-09-01T00:00:00Z.

No output schema declared.

No examples provided.

clio_list_tasks ~419

List tasks with status, priority, due date, matter and assignee. Filter by matter, assignee, status, priority or a due-date range — e.g. what is due this week. Clio: GET /tasks.json.

NameTypeReqDescription
assignee_idinteger–Only tasks assigned to this user or contact id. Requires assignee_type.
assignee_typestring–Whether assignee_id is a user or a contact.
completeboolean–Only complete (true) or incomplete (false) tasks.
due_at_fromstring–Start of a due-date range (ISO-8601 date, YYYY-MM-DD).
due_at_tostring–End of a due-date range (ISO-8601 date, YYYY-MM-DD).
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
limitinteger–Records per page, 1-200 (default 50).
matter_idinteger–Only this matter's tasks.
offsetinteger–next_page.offset from the previous page (used when a custom order is set; capped at 10,000 records).
orderstring–Sort order. Default id(asc).
page_tokenstring–next_page.page_token from the previous page. Omit for the first page.
prioritystring–Only tasks with this priority.
querystring–Wildcard search on the task's name or description.
statusstring–Only tasks in this status (without advanced tasks, only pending or complete).
statute_of_limitationsboolean–Only statute-of-limitations tasks (true) or others (false).
updated_sincestring–Only records updated after this ISO-8601 timestamp, e.g. 2026-09-01T00:00:00Z.

No output schema declared.

No examples provided.

clio_list_users ~188

List the firm's Clio users (attorneys and staff) — use their ids for responsible attorneys, time entries and task assignees. Clio: GET /users.json.

NameTypeReqDescription
enabledboolean–Only enabled (true) or disabled (false) users.
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
limitinteger–Records per page, 1-2000 (default 50).
namestring–Only users with this name.
page_tokenstring–next_page.page_token from the previous page. Omit for the first page.
rolestring–Only users with this role.
subscription_typestring–Only attorneys or non-attorneys.

No output schema declared.

No examples provided.

clio_log_communication ~248

WRITE: Record a phone call or an email on Clio's communication log, optionally on a matter, with who it was from and to. This only records it: Clio sends nothing. To bill the time, also use clio_create_time_entry. Clio: POST /communications.json.

NameTypeReqDescription
bodystringyesWhat was said or written (plain text).
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
matter_idinteger–The matter it belongs to.
received_atstringyesWhen it took place (ISO-8601 timestamp, e.g. 2026-10-02T09:30:00-07:00).
receiversarray–Who it went to: firm users and/or contacts.
sendersarray–Who it came from: firm users and/or contacts.
subjectstringyesSubject line, e.g. 'Call with client about settlement'.
typestringyesA phone call or an email.

No output schema declared.

No examples provided.

clio_update_task ~216

WRITE: Update a task — mark it complete, change its status, due date, priority, name or description, or reassign it. Only the fields given are changed. Clio: PATCH /tasks/{id}.json.

NameTypeReqDescription
assignee_idinteger–Reassign to this user or contact. Requires assignee_type.
assignee_typestring–Whether assignee_id is a User or a Contact.
descriptionstring–New description.
due_atstring–New due date (ISO-8601 date, YYYY-MM-DD).
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.
namestring–New name.
prioritystring–New priority.
statusstring–New status, e.g. complete.
task_idintegeryesThe task's numeric Clio id.

No output schema declared.

No examples provided.

clio_who_am_i ~110

Fetch the Clio user this access token belongs to — name, email, subscription type, time zone and default_calendar_id (needed to create calendar entries). A cheap way to confirm the token and region are right. Clio: GET /users/who_am_i.json.

NameTypeReqDescription
fieldsstring–Override the returned fields: a comma-separated list, nested resources in braces one level deep, e.g. id,name,matter{id,display_number}. Omit for a sensible default.

No output schema declared.

No examples provided.

Install

How do I install the Clio MCP by usefulapi server?

Clio MCP by usefulapi is a hosted endpoint at https://clio.usefulapi.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · clio.usefulapi.io

# add to Claude Code
claude mcp add --transport http io-usefulapi-clio 'https://clio.usefulapi.io/mcp'
Common questions

What is the Clio MCP by usefulapi server?

Clio MCP by usefulapi is listed in the public MCP registry as io.usefulapi/clio. Read Clio matters, contacts, time, tasks, calendar and bills; add matters, time entries, notes. This page covers its hosted endpoint (https://clio.usefulapi.io/mcp).

Is the Clio MCP by usefulapi server safe to use?

Clio MCP by usefulapi scores 62 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Clio MCP by usefulapi server expose?

Clio MCP by usefulapi exposes 23 tools: clio_who_am_i, clio_list_users, clio_list_matters, clio_get_matter, clio_list_contacts, and 18 more. Their descriptions and schemas cost roughly 6,208 tokens of context every time the server is loaded.

Does the Clio MCP by usefulapi server require authentication?

Yes. Clio MCP by usefulapi asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the Clio MCP by usefulapi server still maintained?

Clio MCP by usefulapi is still listed as active in the MCP registry. We last reached this channel on 25 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.