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.

Server endpointREST API docsSmithery listingVerify it yourself →Get an API key →

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:

Works in 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)

ToolWhat it doesCost
law.searchSearches 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_nodeReturns the full official text, citation, and hierarchy of one legal provision, by its node id (the UUID in search results).1 search*
law.list_coverageLists the covered jurisdictions (federal, state, and municipal) with per-jurisdiction provision counts, searchable-chunk counts, GIS status, and a placeholder flag.1 search*
account.statusReports 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.requirementsReturns 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.compareCompares 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_naicsReturns 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.handoffValidates 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.checkoutCreates 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_statusReports 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.

DocumentWhat it is for
ARD manifestAgentic Resource Discovery v0.91 catalog of Corpus's agent resources, with representative queries.
AI CatalogThe same catalog at ARD's predecessor path (Lighthouse, MCP Server Card discovery).
MCP Server CardConnection 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.txtShort orientation for language models: what Corpus is and where everything lives.
llms-full.txtThe whole agent surface inlined into one document.
OpenAPI 3.1REST API contract — the same corpus and credits as the MCP server.
WebMCP manifestTools an in-browser agent can call on corpuslaw.us pages.
Agent Skills indexWell-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

  1. law.list_coverage — confirm the jurisdiction is searchable (a PLACEHOLDER row means an empty search is expected, not a bug).
  2. law.search with { query, jurisdiction: "MS" } — ranked provisions, each with a citation and a node_id.
  3. law.get_node with the node_id — the full section text, its effectiveDate when set, and a provenance array recording when Corpus last pulled each source.
  4. Answer citing the returned citation string 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.

  1. formation.requirements { entityType: "llc", state: "MS" } — the exact required-field checklist, the state's quirk questions (with the exact stateSpecificAnswers keys), 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.
  2. Collect the answers from your user in conversation — name, address, people, management style.
  3. formation.lookup_naics — e.g. "neighborhood bakery" → 311811 — Retail Bakeries; confirm with the user.
  4. formation.handoff with everything so far — the response lists exactly what's STILL MISSING. Keep collecting and call again (validation is free) until it reports ✓ Draft COMPLETE.
  5. 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.