CongressMCP
Acesse dados abrangentes do Congresso dos EUA, incluindo projetos de lei, votações e informações de membros, por meio da API do Congress.gov.
Documentação
CongressMCP
Dados legislativos dos EUA em tempo real para qualquer cliente MCP — Claude Code, ChatGPT, Copilot, Codex, Cursor, OpenCode, Gemini CLI, Grok Build e outros.
Projetos de lei, texto completo de projetos, votações, membros, comissões, audiências, nomeações e o Congressional Record — consultados em linguagem natural por meio do Model Context Protocol. Executa localmente na sua máquina usando as APIs gratuitas Congress.gov e GovInfo. Sem conta, sem serviço hospedado, sem telemetria.
Início Rápido
1. Obtenha uma chave gratuita da API Congress.gov
Cadastre-se em api.congress.gov/sign-up — leva 30 segundos. A mesma chave também funciona para GovInfo (texto completo de projetos).
2. Instale o uv
O CongressMCP é publicado no PyPI e iniciado com uvx, que acompanha o uv:
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
(brew install uv, winget install astral-sh.uv e pipx install uv também funcionam.) Prefere pip? O pip install congressmcp fornece um comando congressmcp que você pode usar no lugar de uvx congressmcp abaixo.
3. Conecte seu cliente
Todo cliente precisa dos mesmos três dados: comando uvx, argumentos ["congressmcp"], variáveis de ambiente CONGRESS_API_KEY. Os clientes estão listados aproximadamente pela quantidade de desenvolvedores profissionais que os usam hoje (pesquisa JetBrains Developer Ecosystem, meados de 2026, depois pesquisa de ferramentas do Pragmatic Engineer de 2026), então o que você procura provavelmente está perto do topo:
| Cliente | Onde é configurado | Observações |
|---|---|---|
| Claude Code | claude mcp add … ou .mcp.json | |
| ChatGPT | Modo desenvolvedor → URL do conector | somente remoto — precisa do modo HTTP |
| VS Code / GitHub Copilot | .vscode/mcp.json | usa servers + inputs |
| OpenAI Codex CLI | codex mcp add … ou ~/.codex/config.toml | TOML |
| Cursor | ~/.cursor/mcp.json ou .cursor/mcp.json | |
| JetBrains AI Assistant / Junie | Configurações → AI Assistant → MCP | cole o JSON do Claude Desktop |
| OpenCode | opencode.json → mcp | command é um único array |
| Gemini CLI | gemini mcp add … ou ~/.gemini/settings.json | |
| Claude.ai | Conectores → URL do conector personalizado | somente remoto — precisa do modo HTTP |
| Claude Desktop | claude_desktop_config.json | |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | |
| Zed | settings.json → context_servers | |
| Cline / Roo Code | Painel de configurações MCP → editar JSON | |
| Goose | goose configure ou ~/.config/goose/config.yaml | YAML |
| Grok Build | grok mcp add … ou ~/.grok/config.toml | TOML; também importa automaticamente a configuração do Claude Code / Cursor |
| Hermes Agent | hermes mcp add … ou ~/.hermes/config.yaml | YAML |
| OpenClaw | openclaw mcp add … ou ~/.openclaw/openclaw.json | JSON5 |
| Continue | ~/.continue/config.yaml | YAML, somente modo agente |
| Open WebUI | Admin → Integrações → URL do servidor MCP | somente remoto — precisa do modo HTTP |
| LM Studio | Aba Program → mcp.json | JSON estilo Cursor |
Qualquer coisa não listada que fale MCP via stdio funcionará com os mesmos três valores.
Claude Code
# just for you
claude mcp add congressmcp --env CONGRESS_API_KEY=your-api-key-here -- uvx congressmcp
# shared with your team via .mcp.json in the repo root
claude mcp add --scope project congressmcp --env CONGRESS_API_KEY='${CONGRESS_API_KEY}' -- uvx congressmcp
Coloque o nome do servidor antes de --env como mostrado — se --env vier primeiro, a CLI tenta interpretar o nome como outro par KEY=value. .mcp.json equivalente:
{
"mcpServers": {
"congressmcp": {
"type": "stdio",
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "${CONGRESS_API_KEY}" }
}
}
}
${VAR} / ${VAR:-default} são expandidos a partir do seu ambiente, então a chave nunca precisa ser commitada.
VS Code / GitHub Copilot
Workspace: .vscode/mcp.json (ou Paleta de Comandos → MCP: Adicionar Servidor / MCP: Abrir Configuração do Usuário para nível de usuário). O VS Code usa servers em vez de mcpServers, e inputs permite que ele solicite a chave e a armazene com segurança em vez de gravá-la em disco:
{
"inputs": [
{
"type": "promptString",
"id": "congress-api-key",
"description": "Congress.gov API key",
"password": true
}
],
"servers": {
"congressmcp": {
"type": "stdio",
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "${input:congress-api-key}" }
}
}
}
O VS Code mostra um aviso de confiança na primeira vez que o servidor inicia.
OpenAI Codex CLI
codex mcp add congressmcp --env CONGRESS_API_KEY=your-api-key-here -- uvx congressmcp
Ou em ~/.codex/config.toml (também lido pela extensão IDE do Codex e pelo aplicativo desktop do ChatGPT; .codex/config.toml em nível de projeto funciona em projetos confiáveis):
[mcp_servers.congressmcp]
command = "uvx"
args = ["congressmcp"]
env_vars = ["CONGRESS_API_KEY"] # forward from your shell — nothing secret in the file
Para inserir a chave diretamente, substitua a linha env_vars por uma tabela [mcp_servers.congressmcp.env] contendo CONGRESS_API_KEY = "…". Verifique com codex mcp list ou /mcp dentro de uma sessão.
Cursor
Global: ~/.cursor/mcp.json. Por projeto: .cursor/mcp.json.
{
"mcpServers": {
"congressmcp": {
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "${env:CONGRESS_API_KEY}" }
}
}
}
${env:NAME} lê do ambiente do seu shell; uma string de chave literal também funciona.
JetBrains AI Assistant / Junie
AI Assistant: Configurações → Tools → AI Assistant → Model Context Protocol (MCP) → Add → As JSON e cole o bloco do Claude Desktop (também há um botão Import from Claude que lê claude_desktop_config.json).
Junie: Configurações → Tools → Junie → MCP Settings, que edita ~/.junie/mcp/mcp.json (global) ou .junie/mcp/mcp.json (projeto) — mesma estrutura mcpServers.
OpenCode
~/.config/opencode/opencode.json global ou opencode.json / opencode.jsonc na raiz do projeto (projeto sobrepõe global). O OpenCode coloca o comando e seus argumentos em um único array e chama o mapa de ambiente de environment:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"congressmcp": {
"type": "local",
"command": ["uvx", "congressmcp"],
"environment": { "CONGRESS_API_KEY": "your-api-key-here" },
"enabled": true
}
}
}
Não há opencode mcp add; edite o arquivo e depois verifique com opencode mcp list / opencode mcp debug congressmcp. Servidores remotos usam "type": "remote", "url": "https://<host>/mcp".
Gemini CLI
gemini mcp add -s user -e CONGRESS_API_KEY=your-api-key-here congressmcp uvx congressmcp
(-s user torna global; o escopo padrão é o projeto atual.) Ou em ~/.gemini/settings.json / .gemini/settings.json:
{
"mcpServers": {
"congressmcp": {
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "$CONGRESS_API_KEY" }
}
}
}
Claude Desktop
Menu Claude → Settings… → Developer → Edit Config, ou edite o arquivo diretamente:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"congressmcp": {
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "your-api-key-here" }
}
}
}
Reinicie o Claude Desktop. Se o servidor não aparecer, use o caminho absoluto para uvx (which uvx / where uvx) — aplicativos GUI nem sempre herdam o PATH do seu shell. Logs: ~/Library/Logs/Claude/mcp*.log ou %APPDATA%\Claude\logs.
Windsurf
Painel Cascade → ícone MCPs → configuração bruta, ou edite ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"congressmcp": {
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "${env:CONGRESS_API_KEY}" }
}
}
}
O Windsurf limita o total de ferramentas em todos os servidores a 100; o CongressMCP registra 24 (cada uma agrupando operações relacionadas), então cabe confortavelmente.
Zed
Configurações → AI → MCP Servers → Add Local Server, ou edite settings.json (macOS ~/Library/Application Support/Zed/settings.json, Linux ~/.config/zed/settings.json, Windows %APPDATA%\Zed\settings.json; nível de projeto .zed/settings.json):
{
"context_servers": {
"congressmcp": {
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "your-api-key-here" }
}
}
}
Cline / Roo Code
Cline: ícone MCP Servers → Configure → Configure MCP Servers (abre cline_mcp_settings.json; a CLI do Cline usa ~/.cline/mcp.json).
Roo Code: MCP Servers → Edit Global MCP, ou por projeto .roo/mcp.json.
Ambos usam a estrutura do Claude Desktop mais alguns campos específicos do cliente:
{
"mcpServers": {
"congressmcp": {
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "your-api-key-here" },
"disabled": false,
"autoApprove": []
}
}
}
No Windows, a documentação do Roo recomenda envolver o comando: "command": "cmd", "args": ["/c", "uvx", "congressmcp"].
Goose
Interativo: goose configure → Add Extension → Command-line Extension (comando uvx congressmcp, depois adicione CONGRESS_API_KEY quando solicitado as variáveis de ambiente). Uso único: goose session --with-extension "CONGRESS_API_KEY=your-api-key-here uvx congressmcp". Ou em ~/.config/goose/config.yaml:
extensions:
congressmcp:
name: congressmcp
type: stdio
cmd: uvx
args: [congressmcp]
envs: { "CONGRESS_API_KEY": "your-api-key-here" }
enabled: true
timeout: 300
Grok Build
O agente de codificação de terminal da xAI. Se você já configurou o CongressMCP para Claude Code (~/.claude.json / .mcp.json) ou Cursor (.cursor/mcp.json), o Grok Build detecta automaticamente — nada mais a fazer. Caso contrário:
grok mcp add congressmcp -- uvx congressmcp # add --scope project for .grok/config.toml
depois defina a chave em ~/.grok/config.toml (ou projeto .grok/config.toml):
[mcp_servers.congressmcp]
command = "uvx"
args = ["congressmcp"]
env = { CONGRESS_API_KEY = "${CONGRESS_API_KEY}" }
grok mcp list / grok mcp doctor congressmcp para verificar; /mcps em uma sessão alterna servidores. As ferramentas aparecem como congressmcp__<tool>.
Hermes Agent
Hermes Agent da Nous Research. ~/.hermes/config.yaml:
mcp_servers:
congressmcp:
command: "uvx"
args: ["congressmcp"]
env:
CONGRESS_API_KEY: "${CONGRESS_API_KEY}" # or a literal key
enabled: true
Ou hermes mcp add congressmcp --command uvx --args congressmcp e depois adicione o bloco env: manualmente. hermes mcp test congressmcp verifica a conexão; /reload-mcp em uma sessão recarrega sem reiniciar. As ferramentas aparecem como mcp__congressmcp__<tool>.
OpenClaw
openclaw mcp add congressmcp --command uvx --arg congressmcp --env CONGRESS_API_KEY=your-api-key-here
Ou em mcp.servers dentro de ~/.openclaw/openclaw.json (JSON5, então comentários e vírgulas finais são aceitos):
{
mcp: {
servers: {
congressmcp: {
command: "uvx",
args: ["congressmcp"],
env: { CONGRESS_API_KEY: "your-api-key-here" },
},
},
},
}
openclaw mcp status / openclaw mcp probe congressmcp para verificar. O OpenClaw não lê o registro de mcporter — use mcp.servers. Para um servidor remoto, use url com um transport: "streamable-http" explícito.
Continue
~/.continue/config.yaml, ou um arquivo por servidor em .continue/mcpServers/ no seu workspace (o Continue também aceita arquivos JSON estilo Claude/Cursor colocados nessa pasta). As ferramentas MCP estão disponíveis no modo agente.
mcpServers:
- name: congressmcp
type: stdio
command: uvx
args:
- congressmcp
env:
CONGRESS_API_KEY: ${{ secrets.CONGRESS_API_KEY }}
LM Studio
Aba Program → Install → Edit mcp.json. O LM Studio segue o formato mcp.json do Cursor, então o bloco do Cursor funciona como está — use uma string de chave literal em vez de ${env:…}. Isso dá a qualquer modelo local que suporte chamada de ferramentas acesso aos dados legislativos.
Clientes remotos: ChatGPT, Claude.ai, Open WebUI
Esses clientes não podem iniciar um processo local; eles se conectam a um servidor MCP em uma URL. Execute o CongressMCP no modo HTTP e forneça a URL a eles:
- ChatGPT (Plus/Pro/Business/Enterprise/Edu, web): Configurações → Segurança e login → Modo de desenvolvedor, depois adicione um conector com a URL do seu servidor. Requer um endpoint HTTPS público (ou um Secure MCP Tunnel).
- Claude.ai (web; sincronizado com mobile): Personalizar → Conectores → Adicionar conector personalizado (Team/Enterprise: Configurações da organização → Conectores). Deve ser acessível pela internet pública.
- Open WebUI: Configurações do administrador → Integrações → + Adicionar servidor → MCP (Streamable HTTP). Apenas Streamable HTTP; pode estar na sua rede local.
O endpoint em todos os casos é https://<your-host>/mcp. A maioria dos clientes locais acima (OpenCode, Grok Build, Hermes, OpenClaw, Codex, Claude Code, Cursor, VS Code) também pode se conectar a essa URL em vez de iniciar uvx — útil para compartilhar uma instalação entre uma equipe.
4. Comece a fazer perguntas
"Encontre projetos de lei recentes sobre mudanças climáticas no 119º Congresso" "Onde no NDAA do FY2026 está o financiamento do quebra-gelo da Guarda Costeira?" "Como os senadores da Califórnia votaram no projeto de lei de defesa mais recente?" "Quem são os membros do Comitê Judiciário do Senado?" "Qual é a ação mais recente sobre o H.R. 1234?"
Modo remoto / HTTP
Para clientes que se conectam por URL (conectores do ChatGPT, Claude.ai, Open WebUI, ou vários usuários compartilhando uma instalação), execute o servidor via Streamable HTTP:
CONGRESS_API_KEY=your-key congressmcp --transport streamable-http --host 0.0.0.0 --port 8000
# MCP endpoint: http://<host>:8000/mcp
O CongressMCP não possui autenticação integrada. O servidor foi projetado para rodar na sua própria máquina. Se você o expor além do localhost, coloque-o atrás de algo que autentique — um proxy reverso com política de acesso, um túnel HTTPS com lista de permissões, ou uma VPN — e lembre-se de que qualquer pessoa que conseguir acessá-lo estará gastando sua cota do Congress.gov. ChatGPT e Claude.ai também exigem HTTPS em um hostname publicamente resolvível.
Ferramentas
7 conjuntos de ferramentas, 90+ operações cobrindo a API do Congress.gov, além de recuperação de texto completo de projetos de lei do GovInfo:
| Conjunto de ferramentas | Operações | O que faz |
|---|---|---|
| Projetos de lei | 15 | Pesquisa, detalhes, texto, ações, emendas, co-patrocinadores, assuntos |
| Leis | 2 | Leis públicas/privadas promulgadas por congresso (get_laws, get_law_details) |
| Emendas | 7 | Pesquisa, detalhes, ações, patrocinadores, texto |
| Tratados e resumos | 5 | Pesquisa de tratados, ações, comitês, texto; resumos de projetos de lei |
| Membros e comitês | 13 | Pesquisa de membros por nome/estado/distrito, legislação patrocinada, projetos de lei/relatórios/comunicações de comitês |
| Votações e nomeações | 13 | Votações da Câmara/Senado, nomeações, chamadas nominais |
| Registros e audiências | 10+ | Registro do Congresso, audiências, relatórios do CRS, impressões de comitês |
search_committees e search_summaries aceitam um argumento keywords opcional —
omitir para navegar/listar (comitês também podem ser filtrados por chamber/committee_type).
Pesquisa de texto completo de projetos de lei
O que mudou: em vez de fazer proxy das respostas da API, o CongressMCP busca o XML DTD completo do projeto de lei do GovInfo, analisa localmente, constrói um índice SQLite FTS5 por versão do projeto de lei, e retorna seções direcionadas e endereçáveis em vez de XML bruto de vários megabytes ou páginas inteiras renderizadas. Os índices são persistidos em disco e reutilizados entre chamadas e reinicializações.
| Ferramenta | O que faz |
|---|---|
search_bill_text | Pesquisa o texto completo do projeto de lei e retorna trechos classificados e endereçáveis com snippets, match_contexts, e sinalizadores de emenda |
get_bill_section | Recupera uma seção qualificada ou ID de trecho, com max_bytes medido em bytes UTF-8 do campo text retornado |
get_bill_toc | Retorna uma árvore de navegação superficial para encontrar IDs de seção |
Nenhuma nova chave de API é necessária. GovInfo e Congress.gov estão ambos atrás de api.data.gov, então o CongressMCP reutiliza sua CONGRESS_API_KEY existente para ambos; defina GOVINFO_API_KEY apenas se quiser uma chave GovInfo separada. (As pessoas assumem que uma segunda chave é necessária. Não é.)
Onde os dados ficam. Um arquivo SQLite por versão de projeto de lei (<package_id>.v<N>.db, ex.: BILLS-119s1071enr.v1.db) em packages/ na raiz do cache, além de um pequeno índice manifest.db. A raiz do cache é CONGRESSMCP_CACHE_DIR se definido, caso contrário o padrão da plataforma:
| Plataforma | Caminho |
|---|---|
| Linux | $XDG_CACHE_HOME/congressmcp, senão ~/.cache/congressmcp |
| macOS | ~/Library/Caches/congressmcp |
| Windows | %LOCALAPPDATA%\congressmcp\Cache |
Quanto espaço em disco. Limitado a 500 MB por padrão (CONGRESSMCP_CACHE_MAX_BYTES, bytes), aplicado por evicção de menos usados recentemente após cada gravação de índice. Um projeto de lei promulgado em escala NDAA (S.1071/119, 1.448 unidades indexadas) constrói um índice de 11 MB; a maioria dos projetos de lei é muito menor. Inspecione ou esvazie o cache pela linha de comando — deliberadamente não é uma ferramenta MCP:
congressmcp cache info # path, cap, total bytes, one line per package
congressmcp cache clear --yes # remove every package file and the manifest
Excluir o diretório de cache manualmente também é seguro a qualquer momento; os arquivos são um cache, não um armazenamento.
Latência da primeira chamada — medida, não estimada. Frio (nada em cache) em S.1071/119: 4,1–6,8 s de ponta a ponta entre execuções, dos quais a resolução de versão do congress.gov + o resumo do pacote GovInfo levaram 3,0–3,4 s, o download do XML 1,1–2,3 s, a análise 0,75 s, e a construção do FTS5 0,31 s — as etapas de rede são a parte lenta e variável, e são a parte que o cache remove. Quente (índice e resolução de versão em cache): 30–60 ms, sem rede. Cada resposta carrega um bloco timing (resolve_ms, download_ms, parse_ms, index_ms, search_ms, total_ms; uma etapa é null quando não foi executada) e um bloco cache (index_hit, version_hit), para que você possa ver qual caso obteve. Implicação de timeout do cliente: defina o timeout por chamada do seu cliente MCP para pelo menos 30 s; uma chamada fria em escala NDAA sob uma rede lenta pode exceder o padrão de 10 s e o trabalho parcial não é perdido — a próxima chamada será quente.
Comportamento offline. Uma versão que você buscou explicitamente (version="enr") é totalmente consultável offline enquanto permanecer no cache; versões explicitamente em cache são re-verificadas contra o lastModified do GovInfo apenas a cada CONGRESSMCP_REVALIDATE_DAYS (30) e reconstruídas se o pacote foi reemitido. Com version omitido, a resposta de "versão mais recente" é armazenada em cache por CONGRESSMCP_VERSION_TTL (86400 s = 1 dia; version_resolution: "cached"); após o TTL, é re-resolvida, e se a rede estiver indisponível, a última resposta é servida melhor esforço e rotulada version_resolution: "cached_offline" com o timestamp de resolução e uma nota de que uma versão mais recente pode existir. Se nada estiver em cache e a rede estiver fora, você recebe version_resolution_unavailable, listando as versões desse projeto de lei que estão em cache para que você possa fixar uma.
Egresso de rede. Exatamente dois hosts: api.congress.gov (metadados de projeto de lei e versão de texto) e api.govinfo.gov (conteúdo do projeto de lei). Ambos limitados independentemente por api.data.gov (20.000/h e 36.000/h), então a indexação não pode esgotar as outras ferramentas.
Definir CONGRESSMCP_CACHE_ENABLED=false desativa tudo isso: cada chamada re-baixa, re-analisa e re-indexa o documento completo em memória — latência em escala NDAA, toda vez. Existe para diagnóstico, não para uso normal.
A resposta de pesquisa distingue correspondências em segmentos operative, quoted e header. Se quoted aparecer em match_contexts, a correspondência pode incluir linguagem que o projeto de lei está removendo, mesmo quando operative também aparece; recupere a seção antes de tirar conclusões sobre linguagem de substituição e inserção.
Cada correspondência também carrega matched_queries — o subconjunto de suas consultas que a produziu. Leia antes de raciocinar sobre o comportamento de recuperação: em uma chamada multi-consulta, atribui cada correspondência à sua consulta de origem, então um resultado inesperado é explicado pelo campo, não por adivinhar internals do tokenizador.
amends resolve apenas citações do Código dos EUA (a forma longa Section {sec} of title {title}, United States Code e a forma abreviada {title} U.S.C. {sec} quando um verbo de emenda segue). Não resolve Atos nomeados, incluindo o Internal Revenue Code citado por número de seção simples — então a maioria das unidades fiscais do Título VII reporta is_amendatory: true com amends: []. Use is_amendatory e match_contexts para identificar texto de emenda; amends é uma conveniência, não uma garantia de completude.
Executando a partir do código-fonte
git clone https://github.com/amurshak/congressMCP
cd congressMCP
pip install -e .
# stdio (default — for MCP clients)
CONGRESS_API_KEY=your-key congressmcp
# HTTP (for self-hosting / remote access)
CONGRESS_API_KEY=your-key congressmcp --transport streamable-http --port 8000
Aponte um cliente para um checkout do código-fonte usando "command": "congressmcp" (com o venv ativado ou seu bin/ no PATH) ou "command": "/path/to/venv/bin/congressmcp" no lugar de uvx.
Configuração
| Variável | Obrigatória | Padrão | Descrição |
|---|---|---|---|
CONGRESS_API_KEY | Sim | — | Sua chave gratuita da API do Congress.gov |
GOVINFO_API_KEY | Não | — | Substituição opcional para GovInfo; caso contrário, CONGRESS_API_KEY é reutilizada |
ENABLE_CACHING | Não | false | Armazenar respostas da API em cache na memória |
CACHE_TIMEOUT | Não | 300 | TTL do cache em segundos |
LOG_LEVEL | Não | WARNING | Verbosidade de log no stderr (DEBUG, INFO, WARNING, ERROR) |
CONGRESS_API_ENV | Não | local | Defina como development/staging/production para carregar o arquivo .env.* correspondente; não definido carrega apenas um .env simples. Arquivos nunca substituem variáveis exportadas |
CONGRESSMCP_BILL_TEXT_ONLY | Não | não definido | Se verdadeiro, registra apenas as três ferramentas de texto de projeto de lei (servidor standalone de texto de projeto de lei) |
CONGRESSMCP_TRACE_DIR | Não | não definido | Se definido para um diretório, grava um registro JSONL com chave redigida por chamada de ferramenta de texto de projeto de lei (depuração) |
CONGRESSMCP_CACHE_DIR | Não | Caminho de cache da plataforma (veja Pesquisa de texto completo de projetos de lei) | Raiz do cache de pacotes de texto de projeto de lei |
CONGRESSMCP_CACHE_MAX_BYTES | Não | 524288000 | Limite do cache de texto de projeto de lei (500 MB); evicção LRU após cada gravação de índice |
CONGRESSMCP_CACHE_ENABLED | Não | true | false desativa o cache persistente: cada chamada re-busca e re-analisa o documento completo |
CONGRESSMCP_VERSION_TTL | Não | 86400 | Segundos que uma resposta de "versão mais recente" com version omitido é reutilizada sem perguntar ao congress.gov |
CONGRESSMCP_REVALIDATE_DAYS | Não | 30 | Dias antes de uma versão explicitamente em cache ser re-verificada contra o lastModified do GovInfo |
CLI de cache (o cache é administrado pela linha de comando, nunca via ferramenta MCP):
congressmcp cache info # exit 0
congressmcp cache clear --yes # exit 0; without --yes in a non-interactive shell it refuses with exit 1
Solução de problemas
- "command not found: uvx" em um cliente GUI (Claude Desktop, Zed, LM Studio, JetBrains): use o caminho absoluto de
which uvx(macOS/Linux) ouwhere uvx(Windows) como ocommand. - Windows: se um cliente não puder iniciar
uvxdiretamente, use"command": "cmd", "args": ["/c", "uvx", "congressmcp"]. - Primeira inicialização é lenta:
uvxbaixa e armazena o pacote em cache na primeira execução; inicializações subsequentes são rápidas. Fixe uma versão comuvx congressmcp@2.2.0se quiser reprodutibilidade. - 401 / 403 da API: a chave está ausente ou errada. Confirme que funciona com
curl "https://api.congress.gov/v3/bill?api_key=YOUR_KEY&limit=1". - Ferramentas ausentes no cliente: a maioria dos clientes precisa de reinicialização ou recarga explícita do MCP após editar a configuração.
Contribuindo
Veja CONTRIBUTING.md para o processo completo: fork, branch, estilo de código, convenções de commit e como enviar um pull request.
Licença
Licença de Uso Sustentável
Construído para transparência governamental e dados cívicos acessíveis.