Deploy to Azure
One command provisions Container Apps, Key Vault, and a managed identity.
You get an HTTPS /mcp endpoint.
azd up
→ https://<your-app>.azurecontainerapps.io/mcp
Clio Manage MCP connects Clio Manage to Claude. Add it as a remote custom connector, sign in to your own Clio over OAuth, and ask for matters, time, billing, and documents — across 40+ tools.
one prompt → two audited Clio API calls → a real answer
Host the server once, add it to Claude as a custom connector, then sign in to Clio. Each user connects their own Clio account over OAuth — no API keys pasted into chat, ever.
One command provisions Container Apps, Key Vault, and a managed identity.
You get an HTTPS /mcp endpoint.
azd up
→ https://<your-app>.azurecontainerapps.io/mcp
In Claude, open Settings → Connectors → Add custom connector and paste your server URL.
Claude walks you through an OAuth login to your own Clio account. Approve once on Clio's own consent screen. The access tier (read only, read & write, or read, write & delete) comes from the scopes the client requests, clamped by the deployment. Tokens are encrypted and stored server-side.
Clio Manage MCP is requesting access to matters, contacts, activities, calendar, and documents.
Prefer to run it on your own machine for solo or dev use? The local (stdio) path authenticates once in your browser — no hosting required.
Secure by default, deployable in one command, and useful from the first prompt. Works with Claude, Claude Code, and any MCP client.
Each person signs in to their own Clio account via OAuth 2.1 with PKCE. No API keys pasted around chat — Claude handles the handshake.
Matters, contacts, time, tasks, notes, calendar, documents, bills, users, practice areas — every one Zod-validated and audit-logged.
azd up provisions Container Apps,
Key Vault, and managed identity. Secrets never live in your shell.
AES-256-GCM tokens at rest and an append-only audit log designed around ABA Formal Opinion 512.
US, CA, EU, and AU. Set CLIO_REGION to
match your firm — the server resolves the right endpoints automatically.
The HTTP transport is stateless and POST-only, so it scales horizontally (1 → 4 replicas) behind Container Apps autoscale.
Works as a remote connector in Claude, over stdio in Claude Code, and with any MCP-compatible client. Ships a plugin with 10 skills + 2 agents.
clio_api_request reaches any Clio v4
endpoint the typed tools don't cover yet — nothing is off-limits.
One composite tool chains client lookup, contact creation, matter, opening note, and intake task — a full intake from a single prompt.
Natural-language requests become typed, validated Clio calls — read and write — each one recorded to the audit log. Watch a few real prompts run.
Grouped by what they touch in Clio — each with an example of how you'd ask for it. Every call is validated and audit-logged.
“Show me open matters for Acme Corp.”
“Add Jane Smith as a new client contact.”
“Log 1.5 hours to matter 4821.”
“Draft an intake task due Friday.”
“Note that today's call confirmed the retainer.”
“Put the deposition on my calendar next Tuesday.”
“Find the engagement letter for this matter.”
“Which bills are over 60 days past due?”
“What's unbilled WIP by matter this month?”
“Who's the responsible attorney here?”
“List our practice areas for intake.”
“Am I still signed in to Clio?”
“Open a new matter for Jane Smith — flat fee $2,500.”
A composite intake flow, plus a generic escape hatch to any v4 endpoint.
Press / to focus the filter. Full list lives in the repository →
Host it on Azure for the whole firm as a remote connector, or run it locally over stdio for solo and dev use. Same binary, two transports.
With the Azure Developer CLI installed, one command builds the image, provisions infrastructure, and deploys the HTTPS endpoint.
az login
azd auth login
# choose your environment + Clio region
azd env new clio-manage-prod
azd env set CLIO_REGION us # us | ca | eu | au
# build image, provision, deploy
azd up
Outputs your connector URL: https://<your-app>.azurecontainerapps.io/mcp
# verify it's live
curl -sS https://<your-app>/healthz
# {"status":"ok","server":"clio-manage-mcp","region":"us"}
~$16–18 with light use. Scale-to-zero drops it to ~$5–6/mo (cold starts of a few seconds). Full walkthrough in deployment-azure.md.
For solo or dev use. Build once, wire it into Claude Code or Claude Desktop, and authenticate in your browser.
git clone https://github.com/patrickking67/clio-manage-mcp
cd clio-manage-mcp
npm install
npm run build
# run over stdio
npm run start:stdio
Then in a new chat say authenticate with Clio — a browser opens to Clio, you sign in once, and the token is encrypted to disk.
{
"mcpServers": {
"clio": {
"command": "node",
"args": ["/path/to/clio-manage-mcp/build/index.js", "--stdio"],
"env": { "CLIO_REGION": "us" }
}
}
}
Full steps & Claude Desktop config in deployment-local.md and oauth-setup.md.
Tokens never touch a chat window. The audit trail is designed to hold up under ABA Formal Opinion 512. Open source under MIT — read every line.
Per-user Clio sign-in with PKCE and a user-chosen access tier (read only, read & write, or read, write & delete). No client secrets or API keys ever pasted into chat.
Encrypted with a 12-byte IV and 16-byte auth tag. Plaintext credentials never hit disk.
Append-only JSONL of every call. Three modes — none,
metadata, full.
Secrets flow from Key Vault via managed identity. Least-privilege RBAC, no shell secrets.
Deploy in one command, add the connector, and sign in to your own Clio. Open source, MIT licensed, and ready today.