MCP · no account

For agents: Mexican tax law over MCP, no account

What an agent can use from Cumplida without signing up: a read-only MCP server with Mexican tax law by version and date and Mexican case law with its validity. The first request that works, the 8 tools, limits and how to cite.

What can be used without an account

The open library of Cumplida is an MCP server over HTTP (Streamable HTTP) at https://mcp.cumplida.com/mcp: read-only, free, with no account, no API key and no sign-in. It serves Mexican tax law (laws, regulations, the RMF and its annexes, customs rules, social security, anti-money-laundering, treaties) with each approved version, its DOF publication and its validity, and Mexican case law (SCJN, Plenary and Collegiate courts, TFJA, PRODECON) with its validity and whom it binds. It reads no data from any firm or taxpayer.

  • Address: https://mcp.cumplida.com/mcp
  • Transport: MCP Streamable HTTP; requests are POST with JSON-RPC 2.0.
  • Authentication: none.
  • Limits: 20 calls per minute and 400 per day per connection.
  • Language: with Accept-Language: en (as in the examples below), the server's instructions, tool descriptions and error messages come in English; the legal content stays in Spanish, as published in Mexico.
  • Terms of use (in Spanish): https://cumplida.com/legal/biblioteca-abierta

The first request

Each request below works on its own from a terminal. The Accept header must list both application/json and text/event-stream (without it the server answers 406). The answer comes as text/event-stream: the JSON-RPC result is on the data: line.

1 · initialize

curl -sS https://mcp.cumplida.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'Accept-Language: en' \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"su-agente","version":"1.0"}}}'

2 · tools/list

curl -sS https://mcp.cumplida.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'Accept-Language: en' \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'

3 · tools/call (leer_disposicion)

curl -sS https://mcp.cumplida.com/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -H 'Accept-Language: en' \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"leer_disposicion","arguments":{"referencia":"CFF 69-B"}}}'

The result of tools/call carries the readable text in result.content and the data in result.structuredContent. The answer to initialize carries the Mcp-Session-Id header: an MCP client sends it back on the following requests (a hosted client, such as claude.ai, needs it so the limit counts per conversation).

How to add it

The 8 tools

normativa_vigente · Law in force on the date of the event
To find the provision in force on a date, by topic or by reference («CFF 46-A», «RMF 2.7.1.21»). Takes consulta.
leer_disposicion · Read a provision in full
To read the full text of the version in force on the date of the event, with its DOF publication and validity, before stating anything about it. Takes referencia o version_id.
que_cambio_en_la_norma · What changed in the rule
To see what changed in a provision: the version of a date against the previous one, paragraph by paragraph, with the DOF of each and the list of its versions. Takes referencia.
buscar_jurisprudencia · Search precedents
To search precedents by topic, in words (SCJN, Plenary and Collegiate courts, TFJA and PRODECON): binding ones first, only those in force. Takes consulta.
leer_precedente · Read a precedent
To read a precedent in full by its number or registry («2a./J. 22/98», «registro 2031002»), with its validity, whom it binds and its formal citation, before citing it. Takes referencia.
precedentes_de_un_articulo · Precedents on an article
To gather the precedents that apply or interpret an article («CFF 42») and whether the text they interpreted is the one in force on the date of the event. Takes articulo.
vigencia_de_un_criterio · Is this criterion still valid?
To know whether a criterion is still valid or was overruled or interrupted, and by which one, before saying so. Takes referencia.
verificar_citas · Verify the citations in a text
Before delivering a text that cites theses, judgments or articles: checks each citation against the library and returns its color (green, amber or red), the reason and the corrected formal citation. Takes texto.

The current list, with every parameter and examples, is what tools/list returns. The server's instructions (in the answer to initialize) say which tool to use for what.

Limits and errors

  • 20 calls per minute and 400 per day per connection. On a 429 or a «busy» answer, wait for what Retry-After says and retry.
  • Lists say how many results there are and how to ask for more (limite, desde); each error says whether to retry and what to change.
  • Queries go by POST: a GET to https://mcp.cumplida.com/mcp answers 405 with the explanation, and https://mcp.cumplida.com/ is the connector's own short guide.
  • Use is free, and queries are logged without personal data to improve the library.

How to cite

Cite «Cumplida · cumplida.com» with the link of the result and the date of the query. Each answer carries its formal citation, the official source (DOF, SJF) and the validity. Read the full text before stating anything about it, and run verificar_citas before citing a thesis or an article.

With an account: Magda in the firm's Claude

With the firm's account, a second MCP server (https://app.cumplida.com/api/mcp, OAuth per person) gives Magda each person's portfolio, figures and cases, with their role; it reads and proposes, and nothing there files, signs or pays. How to connect it: https://cumplida.com/en/claude#con-su-cuenta

Machine-readable