MCP endpoint

The Iowa legal corpus, inside your AI tools.

The corpus behind Hudson research, exposed as a production MCP endpoint at https://app.hudsonlegal.tech/mcp. Ten grounded, read-only tools for Claude Desktop, Claude Code, and any MCP-capable agent.

Claude Code — one commandapp.hudsonlegal.tech/mcp
claude mcp add --transport http hudson-corpus \
  https://app.hudsonlegal.tech/mcp --header "X-API-Key: <your key>"

Overview

One endpoint, ten grounded tools.

Everything the research product knows how to do against the Iowa corpus — resolve a citation, search across statutes and decisions, walk a section's version history, audit a brief — offered to your own agent as tools it can call directly.

It is the same retrieval stack the browser product runs on, reached through the protocol instead of a page: stateless JSON over HTTPS, authenticated per call with an OAuth token or a key you create yourself, and read-only from end to end.

Connect

One config block away.

Two ways in. Clients that speak OAuth 2.0 discover the endpoint, register themselves, and send you through a consent screen — no key to copy. Everything else sends a key you create in your account. Either way the whole corpus shows up in your assistant's tool list.

Claude Desktop — claude_desktop_config.jsonapp.hudsonlegal.tech
{
  "mcpServers": {
    "hudson-corpus": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://app.hudsonlegal.tech/mcp",
               "--header", "X-API-Key:${HUDSON_CORPUS_KEY}"],
      "env": { "HUDSON_CORPUS_KEY": "<your key>" }
    }
  }
}
Claude Code — one commandapp.hudsonlegal.tech
claude mcp add --transport http hudson-corpus \
  https://app.hudsonlegal.tech/mcp --header "X-API-Key: <your key>"

Every request carries either an OAuth Bearer token or an X-API-Key — stateless JSON over HTTPS, so it works the same from a laptop, a CI job, or an agent fleet.

The tools

Ten tools. All read-only. All grounded.

Every response carries an official-source URL and an as-of-date stamp, so an agent can't accidentally cite stale text — the same discipline the human-facing product holds itself to.

lookup_citation

A precise citation — '714.16', '§ 714.16(2)(a)', 'Chapter 232' — returns the current text. Ambiguous cites return candidates, never a silent substitute.

search_statutes

Hybrid semantic search across the Code, court rules, and caselaw — full-text + fuzzy + vector, reranked. Case hits carry good-law treatment flags.

get_version_history

Every version of a section with effective dates and the session law that enacted each change.

get_section_at_date

The text of a section as it stood on a given date — for the facts as they were, not as they are.

get_cross_references

Every provision that cites a section, so a change's blast radius is one call away.

get_definitions

Defined terms in scope for a chapter or across the Code — the statutory meaning, not the dictionary's.

list_recent_amendments

Everything that changed since a date — the current-awareness sweep, as a tool call.

validate_citations

Every citation in a block of text, checked against the corpus and flagged valid, repealed, or unresolvable.

verify_quote

A quoted passage checked verbatim against the cited source — the anti-hallucination primitive.

audit_brief

The full pass over a brief: citations validated, quotes verified, currency checked — one call.

Reliability

Built so agents can't go wrong quietly.

Stamped, sourced responses

official_url, as_of_date, and effective dates on every response — the provenance travels with the data.

Treatment-aware caselaw

Case hits carry good-law flags — overruled and superseded decisions are marked before your agent relies on them.

Candidates, not guesses

When a citation doesn't resolve unambiguously, the tool returns the candidate list. A silent substitution is a bug class we refuse by design.

Stateless by design

Plain JSON over HTTPS, no sessions to manage — every call independently authenticated and safe to retry.

OAuth 2.0 or a key

A full OAuth 2.0 authorization server — dynamic client registration, PKCE, a consent screen, refresh and revocation — or a static key you create and revoke in your account.

Read-only surface

Every tool is a read-only query over the corpus. There is no write path — nothing an agent can break.

Use cases

What people point at it.

In your editor

Research without leaving the draft.

Claude Code and Claude Desktop pick the tools up from your config, so a citation check is a question in the window you are already in.

Firm automation

Audit every brief on the way out.

audit_brief validates the citations, verifies the quotations, and checks currency in one call — a pass a script can run on every filing.

Current awareness

Know what changed since last week.

list_recent_amendments turns the sweep somebody used to do by hand into a scheduled job that reports only what moved.

Product teams

Ground your own assistant in real law.

Stateless JSON over HTTPS, authenticated per call and safe to retry — the retrieval layer you would otherwise have to build and keep current.

Pricing

Included with your plan.

The MCP endpoint is not billed separately — every plan includes the connector, keys you create and revoke yourself, and the same corpus the browser product reads.

7-day free trial

Solo

$49/ month

or $490 / year — two months free

For the individual practitioner who lives in research.

7-day free trial

Firm

$149/ month

includes 3 seats · $39 / month per added seat

For firms standardizing how the team does research.

Custom

Enterprise

Custom

Bar associations, county attorneys, legal aid & government.

These are announced launch prices. Billing hasn't started: beta access is open, and current users get clear notice well before anything is charged.

Point your agent at the corpus.

Create a key, paste the config, and your assistant is doing grounded Iowa research in minutes. Building something bigger on it? We should talk.