A Model Context Protocol (MCP) server exposing Juro CLM as read-mostly tools to Claude Desktop / Claude Code / any MCP-compatible client. Five read tools cover the daily contracts questions (“which agreements are renewing in the next 60 days?”, “what’s the status of the Acme deal?”, “show me this contract’s redline history”) and one cautious write tool for note-attaching to contract records. Designed for the legal-ops lead or contracts engineer who lives in Claude and wants Juro state without context-switching, complementing the Ironclad MCP for firms running Juro alongside or instead of Ironclad.
The scaffold ships as a Python package importable from disk. It is NOT runtime-tested against a live Juro tenant. The disclaimer is repeated in the README and at the top of server.py. Production use requires the contracts engineer to wire credentials, validate the GraphQL queries against the team’s Juro instance, and pace against the contracted rate limits.
When to use
- The legal-ops lead or contracts engineer wants Juro state available in Claude conversations and is willing to install an MCP server.
- The team has Juro API access (Juro’s API is GraphQL — confirm your plan tier includes API).
- Read-mostly access fits the use case. The server’s writes are limited to one cautious tool (
attach_note); no contract-state mutations are exposed by default. - The contracts engineering or IT team has the security posture for handling Juro API credentials with read scope.
When NOT to use
- Production-ready, runtime-tested setup needed today. This is a scaffold.
- Multi-tenant SaaS use. Single-tenant by design; multi-tenant requires non-trivial reshape.
- Write-heavy workflows. The server is intentionally read-mostly. Mutating contract state needs separate per-tool security review per the CLM engineer cursor rule.
- Bypassing dual-control. Juro contracts include executed records of legal obligation. Mutations through MCP would compromise the firm’s dual-control posture; the scaffold doesn’t expose mutation tools beyond the
attach_noteexception.
Setup
- Install the package. From
apps/web/public/artifacts/mcp-server-juro-clm/:pip install -e . - Set credentials.
JURO_API_KEY(from Juro Settings → API; see your tenant admin) andJURO_USER_EMAIL(the user the writes will be attributed to). - Register with the MCP client. Same shape as the Greenhouse MCP; see that workflow’s setup section for Claude Desktop / Claude Code config patterns.
- Sanity check against staging. Juro doesn’t always offer staging tenants — if not available, the recommended path is to register with production credentials but limit the scope to read tools first (the server makes this easy: read tools require only the read-scope key).
- Production move. After verifying read tools, optionally enable the write tool. The write key has a separate scope; rotate quarterly.
What the server exposes
Six tools — five read, one cautious write.
Read tools
list_contracts— list contracts filtered by status (draft, in_negotiation, executed, expired), counterparty, or owner.get_contract— full contract record by ID, including current document version, custom fields, and party data.list_renewing_soon— contracts where renewal date falls within N days. Default N=60.get_redline_history— version history for a contract, including author and timestamp per version.search_contracts_by_clause— search across contracts for a clause-pattern (e.g. “force majeure”, “limitation of liability”). Useful for finding all contracts affected by a precedent change.
Write tool
attach_note— add a private note to a contract record. Audit-attributed via theJURO_USER_EMAILconfigured at startup. Used to log “Claude flagged this contract for renewal review” so the action is visible in Juro’s audit trail.
Cost reality
- Juro API quota — varies by plan tier. The server includes a token-bucket rate limiter (default 30 req/min; tighten if other systems share the API key).
- LLM tokens — depend on the calling Claude session’s prompt budget.
- Server hosting — runs locally; zero ongoing cost for single-user setups.
- Setup time — 60 minutes including credentials and MCP client registration.
Success metric
- MCP-using session count per week — qualitative signal; if the legal-ops lead isn’t using it ≥5 times/week after a month, the use case isn’t there.
- Contracts engineer’s Claude-session efficiency — the qualitative read of “how often does the engineer pull Juro state directly during a Claude session vs. context-switching.”
vs alternatives
- vs Juro’s UI directly. UI is right when the user is already in Juro. The MCP earns its setup cost when the user is in Claude (drafting a redline, summarizing matter status) and pulling CLM state would be a context switch.
- vs Juro’s Slack integration. Pick Slack-native if the team lives in Slack. Pick the MCP if the team lives in Claude.
- vs DIY Python script against Juro’s GraphQL. Same data, but the MCP makes it available to ANY MCP client.
Watch-outs
- Not runtime-tested. Guard: explicitly disclaimed in the README and
server.py. Production deployment requires per-tool validation against the firm’s Juro tenant. - Rate limit exhaustion. Guard: token-bucket at 30 req/min default.
- Contract-confidential content in chat-model context. Guard: the server returns Juro’s data including contract terms, which are commercial-confidential. The session’s data-handling posture is the legal-ops lead’s responsibility. README explicitly says: don’t paste session transcripts into shared Slack channels.
- Write-tool drift. Guard: only
attach_noteis exposed as write. New write tools require per-tool justification per the CLM engineer cursor rule guidance. - API-key scope creep. Guard: README documents the minimum Juro scopes needed.
- GraphQL schema drift. Guard: server uses Pydantic schemas to validate GraphQL responses; schema drift fails-loud rather than silently corrupting.
Stack
The bundle lives at apps/web/public/artifacts/mcp-server-juro-clm/:
pyproject.tomlREADME.mdsrc/juro_clm_mcp/__init__.pysrc/juro_clm_mcp/server.py
Tools: Juro (the CLM), Claude (the MCP client). For broader CLM-engineering guardrails, see the CLM engineer cursor rule. For the parallel Ironclad MCP, see the Ironclad MCP server.
Related: contract lifecycle management, clm vs cms, contract review SOP.