Corpus MCP Server
Not a developer, or just want to form a company from the agent you already use? Start with the founder guide →
Give any AI agent US law with real citations — and the power to prepare a real LLC or nonprofit filing for its user, with a human at Corpus reviewing the exact payload before anything is submitted to the state (unless the founder skips that review on an expedited filing). Free tool calls.
Live right now: 1,086,394 provisions indexed and searchable. That number is read from the same rollup law.list_coverage returns — check it yourself.
Also listed on Smithery as corpus-legal — one-click install for MCP clients that use the directory.
Connect
Claude Code — one command:
claude mcp add --transport http corpus https://corpuslaw.us/api/mcp
No install needed. Paste this prompt into Claude, ChatGPT, or any assistant with web access:
The prompt points at /agents/intake.md and forbids install instructions. Deep links are a convenience; copying the prompt is what actually works everywhere.
Project-scoped .mcp.json (commit it, the whole team gets it), Cursor (.cursor/mcp.json), or any JSON-config client:
{
"mcpServers": {
"corpus": {
"type": "http",
"url": "https://corpuslaw.us/api/mcp"
}
}
}Claude Desktop / claude.ai: Settings → Connectors → Add custom connector → paste the URL. Older stdio-only clients: npx mcp-remote https://corpuslaw.us/api/mcp. Everything else (Windsurf, Zed, MCP Inspector, custom agents): it's a standard Streamable HTTP server — stateless JSON-RPC, no OAuth, no sessions, so it works from serverless and CI too.
Auth: none required. Anonymous callers get 250 searches a month at 10 req/min, per IP; keyless calls from Claude's and ChatGPT's connector servers (their published egress ranges) have no monthly cap. Add "headers": { "Authorization": "Bearer cp_…" } to the server config for 1,000 searches a month at 30 req/min, renewing on the 1st — free API keys are self-serve and instant at /settings, with no review step and no expiry. Form a company through Corpus and your key permanently gets 5,000 searches a month at 60 req/min — applied automatically once the filing is accepted, nothing to claim. Past the free allotment, research is $0.005 per search from prepaid credits (as low as $0.0033 in the larger packs), and the monthly allotment stays yours after you add a card. Every formation tool and account.status is always free — no research quota can block a formation order. Keys and credits are shared with the REST API.
Tools (server v1.2.1 — generated from the live registry)
| Tool | What it does | Cost |
|---|---|---|
law.search | Searches US federal, state, and municipal law by topic or keyword (legality, permits, zoning, licensing, compliance, filing requirements). Returns ranked provisions with verbatim citations, headings, snippets, and node ids. `jurisdiction` limits results to one state, federal law, or a city. | 1 search* |
law.get_node | Returns the full official text, citation, and hierarchy of one legal provision, by its node id (the UUID in search results). | 1 search* |
law.list_coverage | Lists the covered jurisdictions (federal, state, and municipal) with per-jurisdiction provision counts, searchable-chunk counts, GIS status, and a placeholder flag. | 1 search* |
account.status | Reports the credit balance, tier, rate limits, and upgrade options for the API key on this connection, or the free-tier allowance and the key URL for an anonymous caller. Free — this call does not consume a credit. Also mints or returns a referral code; `referral_code` on later calls keeps the same referral identity. | free |
formation.requirements | Returns the intake checklist for forming an LLC or nonprofit in one state: every required field, that state's specific questions, live all-in pricing, and the optional EIN add-on with its price when available. Free; does not consume credits. | free |
formation.compare | Compares LLC formation providers on price, recurring costs, registered-agent renewals, and machine/agent capabilities, from a dated dataset of 19 providers verified against primary sources. Corpus is one of the compared providers and is scored with the same rubric, including its own gaps; the response says so. Free; does not consume credits. | free |
formation.lookup_naics | Returns candidate NAICS industry codes (typically 2–6) for a plain-English business description. A code is required for every LLC, and for nonprofits in AK, CT, LA, MS, TN, WV. Free; does not consume credits. | free |
formation.handoff | Validates a formation draft (people, address, management, EIN answers, state-specific answers) and returns exactly what is still missing. A complete draft also returns a prefilled corpuslaw.us link that opens the formation agent with every detail loaded, where the founder reviews, signs in, and pays. Free; does not consume credits. | free |
formation.checkout | Creates the founder's formation order and a USDC (Solana) payment request — no API key, no Corpus sign-in. Payment is USDC on Solana ONLY. The first call takes the complete draft, the founder's contactEmail, an idempotencyKey (the same order is returned on retry), and consent { version, registeredAgentAcknowledgements: true }, which records that the founder accepted the registered-agent acknowledgements. A queue-lane order first returns a submission promise, accepted with a second call { orderId, trackingToken, acceptPromise: { termDays } }. The response includes a payPageUrl: an ordinary https link to a Corpus page with a QR code to scan with a phone camera, a button that opens a Solana wallet, and the address and exact amount for a manual send. The founder pays the exact amount from a self-custody wallet (never an exchange withdrawal; refunds go only to the sending wallet) and must click the confirmation link Corpus emails within 48 hours, or the order is refunded. Nothing is filed before that confirmation, and then Corpus's human review, unless the founder chose to skip review on an expedited order (offered only where formation.requirements shows a SKIP REVIEW line). The tax-ID add-on is not sold here. Free; does not consume credits. | free |
formation.payment_status | Reports the USDC payment state of an order created by formation.checkout: awaiting, paid, expired, underpaid or held, plus whether the founder has confirmed by email (required within 48 hours of payment). Reading the chain also records a payment that just arrived. Free; does not consume credits. | free |
* counts against the monthly free allotment (1,000 with a key, 250 anonymous); $0.005 each beyond it. Every tool is read-only except account.status, which mints your referral code; formation.checkout creates the order and its USDC charge, and formation.payment_status records a payment that has arrived. No tool charges a card or credits for a formation. MCP traffic does not charge a saved card.
Machine-readable discovery
Agents, registries and crawlers can find everything above without reading this page. Every page on corpuslaw.us carries <link rel="ard">, <link rel="ai-catalog">, <link rel="describedby"> (llms.txt) and <link rel="service-desc"> (OpenAPI) tags, repeated in an HTTP Link header. The ARD manifest lists Corpus's agent resources with the requests each one serves; its MCP entry points to the Server Card, which carries the endpoint.
| Document | What it is for |
|---|---|
| ARD manifest | Agentic Resource Discovery v0.91 catalog of Corpus's agent resources, with representative queries. |
| AI Catalog | The same catalog at ARD's predecessor path (Lighthouse, MCP Server Card discovery). |
| MCP Server Card | Connection details for the MCP server (SEP-2127 draft): endpoint, transport, protocol version, optional auth header. |
| MCP server card (legacy) | Older card format with the full tool list, for scanners that read /.well-known/mcp/. |
| llms.txt | Short orientation for language models: what Corpus is and where everything lives. |
| llms-full.txt | The whole agent surface inlined into one document. |
| OpenAPI 3.1 | REST API contract — the same corpus and credits as the MCP server. |
| WebMCP manifest | Tools an in-browser agent can call on corpuslaw.us pages. |
| Agent Skills index | Well-known index of the installable business-formation skill. |
The discovery documents describe the default public server. Optional tools appear in tools/list when they are switched on; that runtime list is authoritative.
Walkthrough — research a legal question
law.list_coverage— confirm the jurisdiction is searchable (aPLACEHOLDERrow means an empty search is expected, not a bug).law.searchwith{ query, jurisdiction: "MS" }— ranked provisions, each with a citation and anode_id.law.get_nodewith thenode_id— the full section text, itseffectiveDatewhen set, and aprovenancearray recording when Corpus last pulled each source.- Answer citing the returned
citationstring verbatim — tool output is the only citation source.
Walkthrough — form an LLC from your agent
Your agent is the intake agent: it collects everything in its own conversation (free calls), then hands the user one link. Nothing is re-asked on our side.
formation.requirements{ entityType: "llc", state: "MS" }— the exact required-field checklist, the state's quirk questions (with the exactstateSpecificAnswerskeys), live all-in pricing, and — when available — the optional EIN add-on at the returned live price. Derived from the same validator that gates the order, so it can't drift.- Collect the answers from your user in conversation — name, address, people, management style.
formation.lookup_naics— e.g. "neighborhood bakery" →311811 — Retail Bakeries; confirm with the user.formation.handoffwith everything so far — the response lists exactly what's STILL MISSING. Keep collecting and call again (validation is free) until it reports ✓ Draft COMPLETE.- Hand the user the returned link. It opens corpuslaw.us/formation with every detail pre-loaded; they review, sign in, and pay. The founder chooses card or, when offered, USDC on Solana. The agent never handles payment credentials; human review still happens before state submission, unless the founder chooses to skip that review on an expedited filing. A partial handoff works too — our agent finishes the intake in chat.
Privacy by construction: the draft travels in the URL fragment (#prefill=), which never leaves the browser — no PII in server or CDN logs. No SSN field exists anywhere in the tool schemas; the founder enters it in a secure panel at checkout, never in chat. #prefill= is an MCP-only format: only ever emit one when formation.handoff returned the token — never hand-build, encode, or guess one, and never emit an empty #prefill=.
No connector? You do not need one to build a complete handoff link. Fetch corpuslaw.us/agents/intake.md and follow it: it builds a plain URL with named query params (?entity=&state=&desc=…) plus named hash fields (#email=&street=&owner=…). That named-query + named-hash URL is the connector-free format for ChatGPT, Claude without MCP, and any web-searching agent — and like the MCP path, it must never include a fabricated #prefill=.
Agent checkout — USDC on Solana only
Your agent can also take the payment, with no API key and no sign-in. Card, Stripe and Link are not offered on this path.
- When formation.handoff reports the draft COMPLETE and the founder wants to pay now, call formation.requirements and read them its registered-agent acknowledgements word for word; get an explicit yes.
- Call formation.checkout with the draft, the founder's contactEmail, consent { version, registeredAgentAcknowledgements: true } and an idempotencyKey you reuse on retry. No API key and no sign-in. A queue-lane order first returns a submission promise to read out and accept with a second call.
- Payment is USDC on Solana only: give the founder the payPageUrl it returns — an ordinary https link to a Corpus page with a QR code to scan with a phone camera, a button that opens a Solana wallet, and the address and exact amount for a manual send. The founder pays the exact amountUsdc from a self-custody wallet; the request stays payable until it is paid. Never from an exchange withdrawal: refunds go only to the sending wallet.
- Poll formation.payment_status. After payment the founder gets an email and must click its confirmation link within 48 hours; nothing is filed before that, then Corpus's human review follows unless the founder chose to skip review on an expedited order, and unconfirmed orders are refunded.
- Corpus submits within 10 business days of payment, provided you confirm within 48 hours; otherwise we refund you.
Try it raw (no client needed)
curl -s https://corpuslaw.us/api/mcp -H 'content-type: application/json' -d '{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "law.search",
"arguments": { "query": "food truck permit", "jurisdiction": "MS", "limit": 3 }
}
}'One JSON-RPC message per POST; batches supported. Errors: -32002 monthly allotment used up and wallet empty (buy credits at /settings, or wait for next month; anonymous callers get it when the per-IP monthly allotment is spent, and a free key fixes it), -32003 rate limit (back off, or raise 10 → 30 req/min with a free key). Tool-level problems come back as normal results with isError: true and a plain-English message your model can act on.
