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:

ClienteOnde é configuradoObservações
Claude Codeclaude mcp add … ou .mcp.json
ChatGPTModo desenvolvedor → URL do conectorsomente remoto — precisa do modo HTTP
VS Code / GitHub Copilot.vscode/mcp.jsonusa servers + inputs
OpenAI Codex CLIcodex mcp add … ou ~/.codex/config.tomlTOML
Cursor~/.cursor/mcp.json ou .cursor/mcp.json
JetBrains AI Assistant / JunieConfigurações → AI Assistant → MCPcole o JSON do Claude Desktop
OpenCodeopencode.json → mcpcommand é um único array
Gemini CLIgemini mcp add … ou ~/.gemini/settings.json
Claude.aiConectores → URL do conector personalizadosomente remoto — precisa do modo HTTP
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json
Zedsettings.json → context_servers
Cline / Roo CodePainel de configurações MCP → editar JSON
Goosegoose configure ou ~/.config/goose/config.yamlYAML
Grok Buildgrok mcp add … ou ~/.grok/config.tomlTOML; também importa automaticamente a configuração do Claude Code / Cursor
Hermes Agenthermes mcp add … ou ~/.hermes/config.yamlYAML
OpenClawopenclaw mcp add … ou ~/.openclaw/openclaw.jsonJSON5
Continue~/.continue/config.yamlYAML, somente modo agente
Open WebUIAdmin → Integrações → URL do servidor MCPsomente remoto — precisa do modo HTTP
LM StudioAba Program → mcp.jsonJSON 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 ferramentasOperaçõesO que faz
Projetos de lei15Pesquisa, detalhes, texto, ações, emendas, co-patrocinadores, assuntos
Leis2Leis públicas/privadas promulgadas por congresso (get_laws, get_law_details)
Emendas7Pesquisa, detalhes, ações, patrocinadores, texto
Tratados e resumos5Pesquisa de tratados, ações, comitês, texto; resumos de projetos de lei
Membros e comitês13Pesquisa de membros por nome/estado/distrito, legislação patrocinada, projetos de lei/relatórios/comunicações de comitês
Votações e nomeações13Votações da Câmara/Senado, nomeações, chamadas nominais
Registros e audiências10+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.

FerramentaO que faz
search_bill_textPesquisa o texto completo do projeto de lei e retorna trechos classificados e endereçáveis com snippets, match_contexts, e sinalizadores de emenda
get_bill_sectionRecupera uma seção qualificada ou ID de trecho, com max_bytes medido em bytes UTF-8 do campo text retornado
get_bill_tocRetorna 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:

PlataformaCaminho
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ávelObrigatóriaPadrãoDescrição
CONGRESS_API_KEYSim—Sua chave gratuita da API do Congress.gov
GOVINFO_API_KEYNão—Substituição opcional para GovInfo; caso contrário, CONGRESS_API_KEY é reutilizada
ENABLE_CACHINGNãofalseArmazenar respostas da API em cache na memória
CACHE_TIMEOUTNão300TTL do cache em segundos
LOG_LEVELNãoWARNINGVerbosidade de log no stderr (DEBUG, INFO, WARNING, ERROR)
CONGRESS_API_ENVNãolocalDefina 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_ONLYNãonão definidoSe verdadeiro, registra apenas as três ferramentas de texto de projeto de lei (servidor standalone de texto de projeto de lei)
CONGRESSMCP_TRACE_DIRNãonão definidoSe 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_DIRNãoCaminho 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_BYTESNão524288000Limite do cache de texto de projeto de lei (500 MB); evicção LRU após cada gravação de índice
CONGRESSMCP_CACHE_ENABLEDNãotruefalse desativa o cache persistente: cada chamada re-busca e re-analisa o documento completo
CONGRESSMCP_VERSION_TTLNão86400Segundos que uma resposta de "versão mais recente" com version omitido é reutilizada sem perguntar ao congress.gov
CONGRESSMCP_REVALIDATE_DAYSNão30Dias 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) ou where uvx (Windows) como o command.
  • Windows: se um cliente não puder iniciar uvx diretamente, use "command": "cmd", "args": ["/c", "uvx", "congressmcp"].
  • Primeira inicialização é lenta: uvx baixa e armazena o pacote em cache na primeira execução; inicializações subsequentes são rápidas. Fixe uma versão com uvx congressmcp@2.2.0 se 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.