MCP server for Brazilian federal law: legislation, DataJud, STJ, CARF, TST, TCU citations.
Br MCP server is a locally run integration for AI assistants that speak the Model Context Protocol. MCP server for Brazilian federal law: legislation, DataJud, STJ, CARF, TST, TCU citations.
MCP server for eight keyless, no-registration Brazilian open-data APIs:
Once Br is connected, these are the calls the assistant has available:
br_search_proposicoes — List bills by type (PL, PLP, PEC, ...) and yearbr_get_proposicao — Full detail + current status for one bill by idbr_get_norma — Resolve an enacted Norma Juridica by URN Lex - identification, DOU provenance, amendment history, STF notesbr_get_norma_index — List the addressable structure of a Norma (parts, books, titles, chapters, sections, articles)br_get_norma_texto — Fetch the real text of one article (dispositivo) of a Normabr_search_processos — Search court dockets (metadata only) in one tribunal's DataJud CNJ indexbr_get_processo — Fetch one court docket by exact CNJ unified process numberbr_search_case_stj — Search STJ acordaos (real ruling text) by process number or free textbr_get_case_stj — Fetch one STJ acordao by exact process number - ementa + ruling body textbr_get_case_carf — Fetch one CARF tax acordao by exact docket or decision number - ementa + ruling body textbr_search_case_tst — Search TST labor-court rulings by free text (real ruling text; 3.75M acordaos)br_get_case_tst — Fetch one TST ruling by exact CNJ unified process number - ementa + inteiro teorYou will need 8 environment variables: BR_ELI_BASE_URL, BR_ELI_NORMA_BASE_URL, BR_ELI_TEXT_BASE_URL, BR_ELI_DATAJUD_BASE_URL, BR_ELI_STJ_BASE_URL, BR_ELI_CARF_BASE_URL, BR_ELI_TST_BASE_URL, BR_ELI_TCU_BASE_URL. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.
br-eli-mcp on PyPI is all you need. Most clients run it directly, so configuration is a few lines and a restart.
Among the developer tooling options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. Br's toolset — br_search_proposicoes, br_get_proposicao, br_get_norma and 11 more — is a fair guide to whether it matches your workflow. It is maintained by matematicsolutions; worth a glance at recent repository activity before you build anything load-bearing on it.
SyncDev reviews every entry in this directory against the project's own documentation before publishing, and revisits them as servers change.
| Tool | What it does |
|---|---|
| br_search_proposicoes | List bills by type (PL, PLP, PEC, ...) and year |
| br_get_proposicao | Full detail + current status for one bill by id |
| br_get_norma | Resolve an enacted Norma Juridica by URN Lex - identification, DOU provenance, amendment history, STF notes |
| br_get_norma_index | List the addressable structure of a Norma (parts, books, titles, chapters, sections, articles) |
| br_get_norma_texto | Fetch the real text of one article (dispositivo) of a Norma |
| br_search_processos | Search court dockets (metadata only) in one tribunal's DataJud CNJ index |
| br_get_processo | Fetch one court docket by exact CNJ unified process number |
| br_search_case_stj | Search STJ acordaos (real ruling text) by process number or free text |
| br_get_case_stj | Fetch one STJ acordao by exact process number - ementa + ruling body text |
| br_get_case_carf | Fetch one CARF tax acordao by exact docket or decision number - ementa + ruling body text |
| br_search_case_tst | Search TST labor-court rulings by free text (real ruling text; 3.75M acordaos) |
| br_get_case_tst | Fetch one TST ruling by exact CNJ unified process number - ementa + inteiro teor |
| br_search_case_tcu | Search TCU (Federal Court of Accounts) acordaos by free text (525K acordaos) |
| br_get_case_tcu | Fetch one TCU acordao by (numero, ano, colegiado) - deliberation + report + vote text |
{
"mcpServers": {
"br-eli": {
"command": "uvx",
"args": ["br-eli-mcp"],
"env": {
"BR_ELI_BASE_URL": "your-value",
"BR_ELI_NORMA_BASE_URL": "your-value",
"BR_ELI_TEXT_BASE_URL": "your-value",
"BR_ELI_DATAJUD_BASE_URL": "your-value",
"BR_ELI_STJ_BASE_URL": "your-value",
"BR_ELI_CARF_BASE_URL": "your-value",
"BR_ELI_TST_BASE_URL": "your-value",
"BR_ELI_TCU_BASE_URL": "your-value"
}
}
}
}Add to claude_desktop_config.json, then restart Claude Desktop.
| Variable | Description | Required |
|---|---|---|
| BR_ELI_BASE_URL | Endpoint or connection string the server talks to. | Yes |
| BR_ELI_NORMA_BASE_URL | Endpoint or connection string the server talks to. | Yes |
| BR_ELI_TEXT_BASE_URL | Endpoint or connection string the server talks to. | Yes |
| BR_ELI_DATAJUD_BASE_URL | Endpoint or connection string the server talks to. | Yes |
| BR_ELI_STJ_BASE_URL | Endpoint or connection string the server talks to. | Yes |
| BR_ELI_CARF_BASE_URL | Endpoint or connection string the server talks to. | Yes |
| BR_ELI_TST_BASE_URL | Endpoint or connection string the server talks to. | Yes |
| BR_ELI_TCU_BASE_URL | Endpoint or connection string the server talks to. | Yes |
Kill hallucinated APIs — version-accurate, up-to-date library documentation injected straight into context.
Microsoft's official browser automation server — drive a real browser through the accessibility tree, no screenshots needed.
GitHub's official server — repos, issues, pull requests, Actions and code security, straight from your assistant.
Issue tracking at the speed of conversation — Linear's official hosted server with OAuth and zero install.
Local repository surgery — status, diffs, commits, branches and history for any repo on disk.
Timezone sanity for AI — current time anywhere and correct conversions, without the model doing date math.