LexAtlas
MCP · Model Context Protocol

Let your assistant look the law up itself

LexAtlas speaks the Model Context Protocol. An AI assistant — Claude, Cursor or any MCP-capable client — calls the corpus as a set of tools and gets the act itself: text, status, revision date, official source and licence. Eleven tools, one key, the same corpus our own products run on.

What the door is

The MCP door is a thin server between your assistant and the LexAtlas API. It holds no data of its own: every call goes through your API key, with your rate limits and your jurisdiction scope, exactly as a direct API call would. A refusal stays a refusal — 403, 429, 404 and 503 reach the assistant with their code and our wording, so “not allowed” is never mistaken for “not found”.

Transport today is stdio: your MCP client starts the server on your host and talks to it locally; the server reaches the corpus through the same tunnel as the API (access model). Your key stays on your side.

A hosted endpoint that clients join by URL (Streamable HTTP) is in preparation. If your client can only connect by URL, say so in your request.

Tools

Two tools carry most of the work: one finds the provisions, the other reads them.

Hybrid search across the corpus: full-text and vector channels fused, across jurisdictions and languages. Use it when the assistant holds a question or a situation rather than a citation.

argumenttypemeaning
querystring, requiredthe question or the wording, in any language the corpus holds
jurstringjurisdictions, comma-separated: ru, kz, by, …
kintegerhow many rows to return; up to 20 on a pilot key

Each row carries the citation (cite), act code and title, act kind, status, language and which search channels matched. Pass the cite to lexatlas_get to read the article.

// arguments the assistant sends
{ "query": "penalty for late payment under a supply contract", "jur": "ru", "k": 5 }

toollexatlas_get — read the article

One article in full: the text, the act it belongs to, status (in force or repealed), how fresh our copy is, and provenance — the official source, its URL and the licence for reuse. With as_of it returns the text as it stood on that date, together with the amending law that set it (point-in-time; available for Russian codes).

argumenttypemeaning
citestring, requiredjurisdiction:act_code:article, e.g. ru:gk_rf_1:395
langru | enlanguage of the trust envelope around the text
as_ofYYYY-MM-DDthe date to read the article on
// arguments the assistant sends
{ "cite": "ru:gk_rf_1:395", "as_of": "2024-01-01" }

Act codes are ours and have changed before. If you keep citations long-term, keep the act's requisites (date and number) next to them — requisites do not age.

All eleven tools

toolwhat it answers
lexatlas_verifyIs the article real, in force or repealed, and how fresh is our copy.
lexatlas_getFull text with the act, status and provenance — or as it stood on a chosen date.
lexatlas_historyWhen the article was changed and by which law, from the first version onwards.
lexatlas_searchProvisions across jurisdictions, found by wording or by the situation described.
lexatlas_screenA name, alias or registered ID against official sanctions lists, quoted verbatim.
lexatlas_changesEverything amended since a date you name — for monitoring, not re-reading.
lexatlas_citecheckEvery legal reference in a draft checked at once, so invented citations surface.
lexatlas_pipelineDraft laws by stage — introduced, read, signed, published.
lexatlas_coverageHow complete a jurisdiction is, counted against the source's own register.
lexatlas_calendarProvisions coming into force in the weeks ahead, with dates.
lexatlas_relatedWhat an article relies on and what relies on it — with the meaning of each link.

Get a key

Write to us through the contact form: choose Legal-AI / data integration and add a line about what you are building. Keys are issued per client. Pilot key on request. Pricing on request.

With the key you receive the tunnel kit and the MCP server — one Python 3 file that uses only the standard library.

Configure your client

Claude Desktop, Cursor and most MCP clients read the same mcpServers block (Claude Desktop — claude_desktop_config.json; Cursor — .cursor/mcp.json):

{
  "mcpServers": {
    "lexatlas": {
      "command": "python3",
      "args": ["/path/to/lexatlas_mcp.py"],
      "env": {
        "LEXATLAS_API": "http://127.0.0.1:8788",
        "LEXATLAS_API_KEY": "lxa_…"
      }
    }
  }
}

Claude Code adds the same server with one command:

claude mcp add lexatlas \
  -e LEXATLAS_API=http://127.0.0.1:8788 \
  -e LEXATLAS_API_KEY=lxa_… \
  -- python3 /path/to/lexatlas_mcp.py

Other clients: any client that can launch a stdio MCP server — give it the same command and the same two environment variables. LEXATLAS_API is your end of the tunnel; LEXATLAS_API_KEY is the key we issue you.

Check the connection

From the host, without a key: curl -s http://127.0.0.1:8788/v1/health — the tunnel answers. Then ask the assistant to verify ru:gk_rf_1:196: it should call lexatlas_verify and report that the article exists and is in force. A wrong key comes back as a refusal with its code, not as an empty answer.

Limits

pilot keyceiling
calls per minute60
tool calls per day1 000
rows per searchup to 20
rows returned per daya daily ceiling, set per key

The exact ceilings, jurisdiction scope and expiry date of your key are served at /v1/limits. A call over a ceiling returns 429 with the reason. Load tests are agreed in advance: the rate window is shared by all your workers.

What to keep out of queries

Every call is recorded in our request log together with your key and the time — for quotas, abuse control and diagnosing your integration. Search and screening queries are stored as text, up to 300 characters.

What this is not

The tools answer specific questions — an article, a check, a list of changes. They are not a way to download the database: responses are bounded, and sequential enumeration of the corpus is watched. If you need the data itself rather than answers, tell us — that is a different conversation, and a fair one.

Request a key — pilot key on request, pricing on request.