{"name":"io.github.oktopeak/clio-mcp","slug":"oktopeak-clio-mcp","title":null,"description":"Connect Claude to Clio: 34 tools for matters, custom fields, notes, documents, folders, billing.","url":"https://mcp.market/server/oktopeak-clio-mcp","rating":null,"grade":"A","score":85,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":43,"stars":24,"forks":12,"downloads_week":230,"last_push_at":"2026-09-10T08:11:29.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/oktopeak/clio-mcp","website":"https://oktopeak.com/clio-mcp/","version":"2.2.0","remotes":[],"packages":[{"registryType":"npm","identifier":"@oktopeak/clio-mcp","version":"2.2.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Client ID from your Clio developer application (Settings → Developer Applications)","isRequired":true,"format":"string","name":"CLIO_CLIENT_ID"},{"description":"Client Secret from your Clio developer application","isRequired":true,"format":"string","isSecret":true,"name":"CLIO_CLIENT_SECRET"},{"description":"Optional. Leave unset to auto-generate a key stored in the OS keychain (or ~/.clio-mcp/key.hex as fallback on headless Linux/WSL2). If set, must be a 64-character hex string — it will be migrated to the OS keychain on first use.","format":"string","isSecret":true,"name":"ENCRYPTION_KEY"},{"description":"Local port for the OAuth callback listener (default: 5678). Change if 5678 is in use.","format":"string","name":"CLIO_REDIRECT_PORT"},{"description":"Clio data region: 'us' (default, app.clio.com), 'eu' (eu.app.clio.com), 'au' (au.app.clio.com), or 'ca' (ca.app.clio.com). Controls the API and OAuth base URLs. Fixed at Clio account creation; must match the server your firm logs in to. Any other value stops startup.","format":"string","name":"CLIO_REGION"},{"description":"Optional. 'true', '1' or 'yes' leaves the nine write tools (create_matter, create_note, create_task, update_task, complete_task, create_calendar_entry, log_time_entry, create_activity, upload_document) unregistered so Claude can read Clio but never change it. Works on both transports.","format":"string","name":"READ_ONLY"},{"description":"Advanced override for the Clio API base URL (e.g. https://eu.app.clio.com/api/v4). Takes precedence over CLIO_REGION.","format":"string","name":"CLIO_API_BASE"},{"description":"Override the OAuth authorization endpoint (e.g. https://eu.app.clio.com/oauth/authorize).","format":"string","name":"CLIO_AUTH_URL"},{"description":"Override the OAuth token endpoint (e.g. https://eu.app.clio.com/oauth/token).","format":"string","name":"CLIO_TOKEN_URL"}]},{"registryType":"npm","identifier":"@oktopeak/clio-mcp","version":"2.2.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"URL of Oktopeak's hosted token broker for the Clio App Directory listed install. Do not set CLIO_CLIENT_ID/CLIO_CLIENT_SECRET alongside this — the shared app's secret lives only on the broker, never on this machine.","isRequired":true,"format":"string","name":"TOKEN_BROKER_URL"},{"description":"Optional. Leave unset to auto-generate a key stored in the OS keychain (or ~/.clio-mcp/key.hex as fallback on headless Linux/WSL2). If set, must be a 64-character hex string — it will be migrated to the OS keychain on first use.","format":"string","isSecret":true,"name":"ENCRYPTION_KEY"}]}],"tools":[{"name":"auth_status","description":"Check whether the connector is authenticated with Clio and when the token expires","write_action":false,"price_micros":0,"input_schema":null},{"name":"authenticate","description":"Trigger the Clio OAuth login flow","write_action":false,"price_micros":0,"input_schema":null},{"name":"complete_task","description":"Mark a Clio task as complete","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_activity","description":"Create a Clio activity — TimeEntry, ExpenseEntry, HardCostEntry, or SoftCostEntry. For time entries on a matter, prefer log_time_entry.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_calendar_entry","description":"Create a calendar entry (hearing, deadline, meeting) in Clio","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_folder","description":"Create a folder in Clio under a matter's document root or under an existing folder. Set if_not_exists for bulk work: the check then happens inside this call, so a repeated run cannot create duplicates.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_matter","description":"Create a new matter in the connected Clio account. Requires numeric IDs: look up client_id via search_contacts, attorney IDs via list_users or get_user.","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_note","description":"Create a note on a matter in Clio","write_action":true,"price_micros":0,"input_schema":null},{"name":"create_task","description":"Create a task on a matter in Clio","write_action":true,"price_micros":0,"input_schema":null},{"name":"export_audit_log","description":"Export audit log entries for bar review and ABA Opinion 512 compliance. Supports filtering by date range and matter. Results are paginated (default 500 per page).","write_action":false,"price_micros":0,"input_schema":null},{"name":"folder_exists","description":"Check whether a folder with the given exact name already exists under a matter's document root or under a parent folder. Fully paginates and never relies on parent-type filtering, so it won't false-negative on matters whose document root is itself a Folder node.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_billing_summary","description":"Get a billing summary for a matter — total billed, outstanding balance, and last invoice date","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_contact","description":"Get full detail for a single contact by ID","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_document","description":"Get metadata and download URL for a single Clio document","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_matter","description":"Get full detail for a single matter by ID","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_user","description":"Get details for a single Clio user by their user ID","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_calendar_entries","description":"List calendar entries in Clio for a given date range","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_calendars","description":"List calendars available in Clio — use the returned id as calendar_owner_id when creating entries","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_custom_fields","description":"List the custom field definitions configured on this Clio account, with their types and (for picklists) their allowed options. Call this before reading or writing custom fields so you know what exists, what type each field is, and which option IDs a picklist accepts.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_documents","description":"List documents in Clio, filtered by matter or folder","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_folders","description":"List folders in Clio, filtered by matter or parent folder","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_matter_relationships","description":"List the contacts attached to a matter and the role each one plays (co-counsel, expert, fact witness, opposing counsel, and any other relationship types the firm has configured). The matter's own client is a separate field on the matter and is not returned here.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_matters","description":"List matters from the connected Clio account","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_notes","description":"List notes on a matter or contact in Clio. Notes carry the narrative record (intake interviews, call summaries, case history), so this is usually where the detail behind a matter lives. Provide exactly one of matter_id or contact_id.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_tasks","description":"List tasks from Clio with optional filters","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_time_entries","description":"List time entries (billable hours) from Clio","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_users","description":"List Clio firm users (attorneys and staff) with their IDs. Use this to look up user IDs needed for create_matter (responsible_attorney_id, originating_attorney_id) and other tools.","write_action":false,"price_micros":0,"input_schema":null},{"name":"log_time_entry","description":"Create a new billable (or non-billable) time entry on a Clio matter. Use for time entries only; for expenses, hard costs, or soft costs use create_activity.","write_action":true,"price_micros":0,"input_schema":null},{"name":"logout","description":"Log out of Clio (clears local tokens)","write_action":false,"price_micros":0,"input_schema":null},{"name":"matter_activity_summary","description":"Activity snapshot for every open matter in one call: last note, last time entry, next calendar entry, open task count, and days since anything happened. Sorted by staleness, so matters with no recent file activity come first. Use this as the cheap first pass of a case-monitoring sweep, then look closely only at what it flags.","write_action":false,"price_micros":0,"input_schema":null},{"name":"search_contacts","description":"Search Clio contacts by name, email, or company","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_matter","description":"Update one or more fields on an existing Clio matter","write_action":true,"price_micros":0,"input_schema":null},{"name":"update_task","description":"Update one or more fields on an existing Clio task","write_action":true,"price_micros":0,"input_schema":null},{"name":"upload_document","description":"Upload a local file to a Clio matter as a document","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":85,"grade":"A","scanned_at":"2026-09-20T20:08:52.311Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T20:08:52.163Z","components":{"code":{"score":25,"max":25,"notes":["65 source files scanned","65 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 10 days ago"]},"identity":{"score":9,"max":10,"notes":["registry namespace matches repository owner","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@oktopeak/clio-mcp","version":"2.2.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":6,"publishedAt":"2026-09-02T11:48:26.391Z","repositoryUrl":"git+https://github.com/oktopeak/clio-mcp.git","weeklyDownloads":115},{"registryType":"npm","identifier":"@oktopeak/clio-mcp","version":"2.2.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":6,"publishedAt":"2026-09-02T11:48:26.391Z","repositoryUrl":"git+https://github.com/oktopeak/clio-mcp.git","weeklyDownloads":115}],"repo":{"found":true,"owner":"oktopeak","repo":"clio-mcp","archived":false,"pushedAt":"2026-09-10T08:11:29Z","stars":24,"forks":12,"openIssues":2,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/198822640?v=4","ownerCreatedAt":"2025-02-11T21:18:37Z","license":"MIT"},"icon":{"url":"https://oktopeak.com/favicon.ico","source":"site","width":64,"height":64},"presence":{"stars":24,"forks":12,"downloadsWeek":230,"license":"MIT","lastPushAt":"2026-09-10T08:11:29.000Z","score":43}}}},"grade_history":[],"reviews":[]}