CongressMCP
Acceda a datos completos del Congreso de EE. UU., incluyendo proyectos de ley, votaciones e información de miembros, a través de la API de Congress.gov.
Documentación
CongressMCP
Datos legislativos de EE. UU. en vivo para cualquier cliente MCP: Claude Code, ChatGPT, Copilot, Codex, Cursor, OpenCode, Gemini CLI, Grok Build y más.
Proyectos de ley, texto completo de proyectos de ley, votaciones, miembros, comités, audiencias, nominaciones y el Registro del Congreso — consultados en lenguaje natural a través del Protocolo de Contexto de Modelo. Se ejecuta localmente en tu máquina contra las API gratuitas de Congress.gov y GovInfo. Sin cuenta, sin servicio alojado, sin telemetría.
Inicio Rápido
1. Obtén una clave gratuita de la API de Congress.gov
Regístrate en api.congress.gov/sign-up — toma 30 segundos. La misma clave también funciona para GovInfo (texto completo de proyectos de ley).
2. Instala uv
CongressMCP está publicado en PyPI y se lanza con uvx, que se incluye con 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 y pipx install uv también funcionan.) ¿Prefieres pip? pip install congressmcp te da un comando congressmcp que puedes usar en lugar de uvx congressmcp a continuación.
3. Conecta tu cliente
Cada cliente necesita los mismos tres datos: comando uvx, argumentos ["congressmcp"], entorno CONGRESS_API_KEY. Los clientes están listados aproximadamente por cuántos desarrolladores profesionales los usan hoy en día (encuesta del Ecosistema de Desarrolladores de JetBrains, mediados de 2026, luego la encuesta de herramientas de 2026 de Pragmatic Engineer), así que el que buscas probablemente esté cerca de la parte superior:
| Cliente | Dónde se configura | Notas |
|---|---|---|
| Claude Code | claude mcp add … o .mcp.json | |
| ChatGPT | Modo desarrollador → URL del conector | solo remoto — necesita modo HTTP |
| VS Code / GitHub Copilot | .vscode/mcp.json | usa servers + inputs |
| OpenAI Codex CLI | codex mcp add … o ~/.codex/config.toml | TOML |
| Cursor | ~/.cursor/mcp.json o .cursor/mcp.json | |
| JetBrains AI Assistant / Junie | Configuración → AI Assistant → MCP | pega el JSON de Claude Desktop |
| OpenCode | opencode.json → mcp | command es un solo arreglo |
| Gemini CLI | gemini mcp add … o ~/.gemini/settings.json | |
| Claude.ai | Conectores → URL de conector personalizado | solo remoto — necesita modo HTTP |
| Claude Desktop | claude_desktop_config.json | |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | |
| Zed | settings.json → context_servers | |
| Cline / Roo Code | Panel de configuración de MCP → editar JSON | |
| Goose | goose configure o ~/.config/goose/config.yaml | YAML |
| Grok Build | grok mcp add … o ~/.grok/config.toml | TOML; también importa automáticamente la configuración de Claude Code / Cursor |
| Hermes Agent | hermes mcp add … o ~/.hermes/config.yaml | YAML |
| OpenClaw | openclaw mcp add … o ~/.openclaw/openclaw.json | JSON5 |
| Continue | ~/.continue/config.yaml | YAML, solo modo agente |
| Open WebUI | Admin → Integraciones → URL del servidor MCP | solo remoto — necesita modo HTTP |
| LM Studio | Pestaña Programa → mcp.json | JSON estilo Cursor |
Cualquier cosa no listada que hable MCP sobre stdio funcionará con los mismos tres 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
Pon el nombre del servidor antes de --env como se muestra — si --env viene primero, el CLI intenta analizar el nombre como otro par KEY=value. .mcp.json equivalente:
{
"mcpServers": {
"congressmcp": {
"type": "stdio",
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "${CONGRESS_API_KEY}" }
}
}
}
${VAR} / ${VAR:-default} se expanden desde tu entorno, así que la clave nunca tiene que ser confirmada.
VS Code / GitHub Copilot
Espacio de trabajo: .vscode/mcp.json (o Paleta de Comandos → MCP: Agregar Servidor / MCP: Abrir Configuración de Usuario para nivel de usuario). VS Code usa servers en lugar de mcpServers, y inputs le permite solicitar la clave y almacenarla de forma segura en lugar de escribirla en el 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}" }
}
}
}
VS Code muestra un aviso de confianza la primera vez que se inicia el servidor.
OpenAI Codex CLI
codex mcp add congressmcp --env CONGRESS_API_KEY=your-api-key-here -- uvx congressmcp
O en ~/.codex/config.toml (también leído por la extensión IDE de Codex y la aplicación de escritorio de ChatGPT; .codex/config.toml a nivel de proyecto funciona en proyectos de confianza):
[mcp_servers.congressmcp]
command = "uvx"
args = ["congressmcp"]
env_vars = ["CONGRESS_API_KEY"] # forward from your shell — nothing secret in the file
Para insertar la clave directamente, reemplaza la línea env_vars con una tabla [mcp_servers.congressmcp.env] que contenga CONGRESS_API_KEY = "…". Verifica con codex mcp list o /mcp dentro de una sesión.
Cursor
Global: ~/.cursor/mcp.json. Por proyecto: .cursor/mcp.json.
{
"mcpServers": {
"congressmcp": {
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "${env:CONGRESS_API_KEY}" }
}
}
}
${env:NAME} lee desde el entorno de tu shell; una cadena de clave literal también funciona.
JetBrains AI Assistant / Junie
AI Assistant: Configuración → Herramientas → AI Assistant → Protocolo de Contexto de Modelo (MCP) → Agregar → Como JSON y pega el bloque de Claude Desktop (también hay un botón Importar desde Claude que lee claude_desktop_config.json).
Junie: Configuración → Herramientas → Junie → Configuración de MCP, que edita ~/.junie/mcp/mcp.json (global) o .junie/mcp/mcp.json (proyecto) — misma forma mcpServers.
OpenCode
~/.config/opencode/opencode.json global o opencode.json / opencode.jsonc en la raíz del proyecto (el proyecto anula lo global). OpenCode pone el comando y sus argumentos en un solo arreglo y llama al mapa de entorno environment:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"congressmcp": {
"type": "local",
"command": ["uvx", "congressmcp"],
"environment": { "CONGRESS_API_KEY": "your-api-key-here" },
"enabled": true
}
}
}
No hay opencode mcp add; edita el archivo y luego verifica con opencode mcp list / opencode mcp debug congressmcp. Los servidores remotos usan "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 lo hace global; el alcance predeterminado es el proyecto actual.) O en ~/.gemini/settings.json / .gemini/settings.json:
{
"mcpServers": {
"congressmcp": {
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "$CONGRESS_API_KEY" }
}
}
}
Claude Desktop
Menú de Claude → Configuración… → Desarrollador → Editar Configuración, o edita el archivo directamente:
- 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" }
}
}
}
Reinicia Claude Desktop. Si el servidor no aparece, usa la ruta absoluta a uvx (which uvx / where uvx) — las aplicaciones GUI no siempre heredan tu PATH del shell. Registros: ~/Library/Logs/Claude/mcp*.log o %APPDATA%\Claude\logs.
Windsurf
Panel Cascade → icono de MCPs → configuración sin procesar, o edita ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"congressmcp": {
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "${env:CONGRESS_API_KEY}" }
}
}
}
Windsurf limita el total de herramientas en todos los servidores a 100; CongressMCP registra 24 (cada una agrupa operaciones relacionadas), así que cabe cómodamente.
Zed
Configuración → AI → Servidores MCP → Agregar Servidor Local, o edita settings.json (macOS ~/Library/Application Support/Zed/settings.json, Linux ~/.config/zed/settings.json, Windows %APPDATA%\Zed\settings.json; a nivel de proyecto .zed/settings.json):
{
"context_servers": {
"congressmcp": {
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "your-api-key-here" }
}
}
}
Cline / Roo Code
Cline: icono de Servidores MCP → Configurar → Configurar Servidores MCP (abre cline_mcp_settings.json; el CLI de Cline usa ~/.cline/mcp.json).
Roo Code: Servidores MCP → Editar MCP Global, o por proyecto .roo/mcp.json.
Ambos usan la forma de Claude Desktop más un par de campos específicos del cliente:
{
"mcpServers": {
"congressmcp": {
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "your-api-key-here" },
"disabled": false,
"autoApprove": []
}
}
}
En Windows, los documentos de Roo recomiendan envolver el comando: "command": "cmd", "args": ["/c", "uvx", "congressmcp"].
Goose
Interactivo: goose configure → Agregar Extensión → Extensión de Línea de Comandos (comando uvx congressmcp, luego agrega CONGRESS_API_KEY cuando se soliciten variables de entorno). Una sola vez: goose session --with-extension "CONGRESS_API_KEY=your-api-key-here uvx congressmcp". O en ~/.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
El agente de codificación de terminal de xAI. Si ya configuraste CongressMCP para Claude Code (~/.claude.json / .mcp.json) o Cursor (.cursor/mcp.json), Grok Build lo detecta automáticamente — no hay nada más que hacer. De lo contrario:
grok mcp add congressmcp -- uvx congressmcp # add --scope project for .grok/config.toml
luego establece la clave en ~/.grok/config.toml (o proyecto .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 en una sesión alterna servidores. Las herramientas aparecen como congressmcp__<tool>.
Hermes Agent
Hermes Agent de 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
O hermes mcp add congressmcp --command uvx --args congressmcp y luego agrega el bloque env: manualmente. hermes mcp test congressmcp verifica la conexión; /reload-mcp en una sesión recarga sin reiniciar. Las herramientas aparecen como mcp__congressmcp__<tool>.
OpenClaw
openclaw mcp add congressmcp --command uvx --arg congressmcp --env CONGRESS_API_KEY=your-api-key-here
O bajo mcp.servers en ~/.openclaw/openclaw.json (JSON5, así que los comentarios y las comas finales están bien):
{
mcp: {
servers: {
congressmcp: {
command: "uvx",
args: ["congressmcp"],
env: { CONGRESS_API_KEY: "your-api-key-here" },
},
},
},
}
openclaw mcp status / openclaw mcp probe congressmcp para verificar. OpenClaw no lee el registro de mcporter — usa mcp.servers. Para un servidor remoto, usa url con un transport: "streamable-http" explícito.
Continue
~/.continue/config.yaml, o un archivo por servidor bajo .continue/mcpServers/ en tu espacio de trabajo (Continue también acepta archivos JSON estilo Claude/Cursor colocados en esa carpeta). Las herramientas MCP están disponibles en modo agente.
mcpServers:
- name: congressmcp
type: stdio
command: uvx
args:
- congressmcp
env:
CONGRESS_API_KEY: ${{ secrets.CONGRESS_API_KEY }}
LM Studio
Pestaña Programa → Instalar → Editar mcp.json. LM Studio sigue el formato mcp.json de Cursor, así que el bloque de Cursor funciona tal cual — usa una cadena de clave literal en lugar de ${env:…}. Esto le da a cualquier modelo local que admita llamadas a herramientas acceso a datos legislativos.
Clientes remotos: ChatGPT, Claude.ai, Open WebUI
Estos clientes no pueden lanzar un proceso local; se conectan a un servidor MCP en una URL. Ejecuta CongressMCP en modo HTTP y dales la URL:
- ChatGPT (Plus/Pro/Business/Enterprise/Edu, web): Configuración → Seguridad e inicio de sesión → Modo desarrollador, luego agrega un conector con la URL de tu servidor. Requiere un endpoint HTTPS público (o un Secure MCP Tunnel).
- Claude.ai (web; sincronizado a móvil): Personalizar → Conectores → Agregar conector personalizado (Team/Enterprise: Configuración de la organización → Conectores). Debe ser accesible a través de internet público.
- Open WebUI: Configuración de administrador → Integraciones → + Agregar servidor → MCP (Streamable HTTP). Solo Streamable HTTP; puede estar en tu red local.
El endpoint en todos los casos es https://<your-host>/mcp. La mayoría de los clientes locales anteriores (OpenCode, Grok Build, Hermes, OpenClaw, Codex, Claude Code, Cursor, VS Code) también pueden conectarse a esa URL en lugar de iniciar uvx — útil para compartir una instalación entre un equipo.
4. Comienza a hacer preguntas
"Encuentra proyectos de ley recientes sobre cambio climático en el 119.º Congreso" "¿Dónde en el NDAA del FY2026 está la financiación del rompehielos de la Guardia Costera?" "¿Cómo votaron los senadores de California en el último proyecto de ley de defensa?" "¿Quiénes son los miembros del Comité Judicial del Senado?" "¿Cuál es la última acción sobre H.R. 1234?"
Modo remoto / HTTP
Para clientes que se conectan por URL (conectores de ChatGPT, Claude.ai, Open WebUI, o varios usuarios compartiendo una instalación), ejecuta el servidor sobre Streamable HTTP:
CONGRESS_API_KEY=your-key congressmcp --transport streamable-http --host 0.0.0.0 --port 8000
# MCP endpoint: http://<host>:8000/mcp
CongressMCP no tiene autenticación integrada. El servidor está diseñado para ejecutarse en tu propia máquina. Si lo expones más allá de localhost, colócalo detrás de algo que autentique — un proxy inverso con una política de acceso, un túnel HTTPS con una lista de permitidos, o una VPN — y recuerda que cualquiera que pueda alcanzarlo está gastando tu cuota de Congress.gov. ChatGPT y Claude.ai además requieren HTTPS en un nombre de host resoluble públicamente.
Herramientas
7 conjuntos de herramientas, más de 90 operaciones que cubren la API de Congress.gov, además de recuperación de texto completo de proyectos de ley desde GovInfo:
| Conjunto de herramientas | Operaciones | Qué hace |
|---|---|---|
| Proyectos de ley | 15 | Búsqueda, detalles, texto, acciones, enmiendas, copatrocinadores, temas |
| Leyes | 2 | Leyes públicas/privadas promulgadas por congreso (get_laws, get_law_details) |
| Enmiendas | 7 | Búsqueda, detalles, acciones, patrocinadores, texto |
| Tratados y resúmenes | 5 | Búsqueda de tratados, acciones, comités, texto; resúmenes de proyectos de ley |
| Miembros y comités | 13 | Búsqueda de miembros por nombre/estado/distrito, legislación patrocinada, proyectos de ley/informes/comunicaciones de comités |
| Votaciones y nominaciones | 13 | Votos de la Cámara/Senado, nominaciones, votaciones nominales |
| Registros y audiencias | 10+ | Registro del Congreso, audiencias, informes del CRS, impresiones de comités |
search_committees y search_summaries toman un argumento keywords opcional —
omítelo para explorar/listar (los comités también se pueden filtrar por chamber/committee_type).
Búsqueda de texto completo de proyectos de ley
Qué cambió: en lugar de actuar como proxy de las respuestas de la API, CongressMCP obtiene el XML DTD completo del proyecto de ley desde GovInfo, lo analiza localmente, construye un índice SQLite FTS5 a nivel de segmento por versión del proyecto de ley, y devuelve secciones de proyectos de ley específicas y direccionables en lugar de XML crudo de varios megabytes o páginas completas renderizadas. Los índices se persisten en disco y se reutilizan entre llamadas y reinicios.
| Herramienta | Qué hace |
|---|---|
search_bill_text | Busca en el texto completo del proyecto de ley y devuelve fragmentos direccionables clasificados con fragmentos, match_contexts, y banderas de enmienda |
get_bill_section | Recupera una sección calificada o un id de fragmento, con max_bytes medido contra los bytes UTF-8 del campo text devuelto |
get_bill_toc | Devuelve un árbol de navegación superficial para encontrar ids de sección |
No se necesita una nueva clave de API. GovInfo y Congress.gov están ambos detrás de api.data.gov, por lo que CongressMCP reutiliza tu CONGRESS_API_KEY existente para ambos; establece GOVINFO_API_KEY solo si quieres una clave separada de GovInfo. (La gente asume que se requiere una segunda clave. No es así.)
Dónde viven los datos. Un archivo SQLite por versión de proyecto de ley (<package_id>.v<N>.db, p. ej. BILLS-119s1071enr.v1.db) bajo packages/ en la raíz de caché, más un pequeño índice manifest.db. La raíz de caché es CONGRESSMCP_CACHE_DIR si está establecida, de lo contrario el valor predeterminado de la plataforma:
| Plataforma | Ruta |
|---|---|
| Linux | $XDG_CACHE_HOME/congressmcp, si no ~/.cache/congressmcp |
| macOS | ~/Library/Caches/congressmcp |
| Windows | %LOCALAPPDATA%\congressmcp\Cache |
Cuánto disco. Limitado a 500 MB por defecto (CONGRESSMCP_CACHE_MAX_BYTES, bytes), aplicado mediante evicción de menos recientemente usado después de cada escritura de índice. Un proyecto de ley inscrito a escala NDAA (S.1071/119, 1,448 unidades indexadas) construye un índice de 11 MB; la mayoría de los proyectos de ley son mucho más pequeños. Inspecciona o vacía la caché desde la línea de comandos — deliberadamente no es una herramienta MCP:
congressmcp cache info # path, cap, total bytes, one line per package
congressmcp cache clear --yes # remove every package file and the manifest
Eliminar el directorio de caché manualmente también es seguro en cualquier momento; los archivos son una caché, no un almacén.
Latencia de primera llamada — medida, no estimada. En frío (nada en caché) en S.1071/119: 4.1–6.8 s de extremo a extremo entre ejecuciones, de los cuales la resolución de versión de congress.gov + el resumen del paquete de GovInfo tomaron 3.0–3.4 s, la descarga XML 1.1–2.3 s, el análisis 0.75 s, y la construcción FTS5 0.31 s — las partes de red son las lentas y variables, y son la parte que la caché elimina. En caliente (índice y resolución de versión en caché): 30–60 ms, sin red. Cada respuesta lleva un bloque timing (resolve_ms, download_ms, parse_ms, index_ms, search_ms, total_ms; una etapa es null cuando no se ejecutó) y un bloque cache (index_hit, version_hit), para que puedas ver qué caso obtuviste. Implicación de tiempo de espera del cliente: establece el tiempo de espera por llamada de tu cliente MCP a al menos 30 s; una llamada en frío a escala NDAA bajo una red lenta puede exceder un valor predeterminado de 10 s y el trabajo parcial no se pierde — la siguiente llamada estará en caliente.
Comportamiento sin conexión. Una versión que hayas obtenido explícitamente (version="enr") es completamente consultable sin conexión mientras permanezca en la caché; las versiones explícitamente en caché se vuelven a verificar contra el lastModified de GovInfo solo cada CONGRESSMCP_REVALIDATE_DAYS (30) y se reconstruyen si el paquete fue reemitido. Con version omitido, la respuesta de "última versión" se almacena en caché durante CONGRESSMCP_VERSION_TTL (86400 s = 1 día; version_resolution: "cached"); pasado el TTL se vuelve a resolver, y si la red no está disponible, la última respuesta se sirve con el mejor esfuerzo y etiquetada version_resolution: "cached_offline" con la marca de tiempo de resolución y una nota de que puede existir una versión más nueva. Si no hay nada en caché y la red está caída, obtienes version_resolution_unavailable, que enumera las versiones de ese proyecto de ley que están en caché para que puedas fijar una.
Salida de red. Exactamente dos hosts: api.congress.gov (metadatos de proyecto de ley y versión de texto) y api.govinfo.gov (contenido del proyecto de ley). Ambos limitados de forma independiente por api.data.gov (20,000/h y 36,000/h), por lo que la indexación no puede agotar las otras herramientas.
Establecer CONGRESSMCP_CACHE_ENABLED=false desactiva todo esto: cada llamada vuelve a descargar, reanaliza y reindexa el documento completo en memoria — latencia a escala NDAA, cada vez. Existe para diagnóstico, no para uso normal.
La respuesta de búsqueda distingue coincidencias en segmentos operative, quoted y header. Si quoted aparece en match_contexts, la coincidencia puede incluir lenguaje que el proyecto de ley está eliminando, incluso cuando operative también aparece; recupera la sección antes de sacar conclusiones sobre lenguaje de tachar e insertar.
Cada coincidencia también lleva matched_queries — el subconjunto de tus consultas que la produjo. Léelo antes de razonar sobre el comportamiento de recuperación: en una llamada de múltiples consultas, atribuye cada coincidencia a su consulta de origen, por lo que un resultado inesperado se explica por el campo, no adivinando los internals del tokenizador.
amends resuelve solo citas del Código de los EE. UU. (la forma larga Section {sec} of title {title}, United States Code y la forma abreviada {title} U.S.C. {sec} cuando sigue un verbo de enmienda). No resuelve leyes nombradas, incluido el Código de Rentas Internas citado por número de sección desnudo — por lo que la mayoría de las unidades de impuestos del Título VII reportan is_amendatory: true con amends: []. Usa is_amendatory y match_contexts para identificar texto de enmienda; amends es una conveniencia, no una garantía de completitud.
Ejecución desde el código fuente
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
Apunta un cliente a un checkout del código fuente usando "command": "congressmcp" (con el venv activado o su bin/ en PATH) o "command": "/path/to/venv/bin/congressmcp" en lugar de uvx.
Configuración
| Variable | Requerida | Predeterminado | Descripción |
|---|---|---|---|
CONGRESS_API_KEY | Sí | — | Tu clave gratuita de API de Congress.gov |
GOVINFO_API_KEY | No | — | Anulación opcional para GovInfo; de lo contrario, CONGRESS_API_KEY se reutiliza |
ENABLE_CACHING | No | false | Almacenar en caché las respuestas de la API en memoria |
CACHE_TIMEOUT | No | 300 | TTL de caché en segundos |
LOG_LEVEL | No | WARNING | Verbosidad de registro en stderr (DEBUG, INFO, WARNING, ERROR) |
CONGRESS_API_ENV | No | local | Establecer a development/staging/production para cargar el archivo .env.* correspondiente; sin establecer, carga solo un .env simple. Los archivos nunca anulan variables exportadas |
CONGRESSMCP_BILL_TEXT_ONLY | No | sin establecer | Si es verdadero, registra solo las tres herramientas de texto de proyectos de ley (servidor independiente de texto de proyectos de ley) |
CONGRESSMCP_TRACE_DIR | No | sin establecer | Si se establece a un directorio, escribe un registro JSONL con clave redactada por llamada de herramienta de texto de proyectos de ley (depuración) |
CONGRESSMCP_CACHE_DIR | No | Ruta de caché de la plataforma (ver Búsqueda de texto completo de proyectos de ley) | Raíz de caché de paquetes de texto de proyectos de ley |
CONGRESSMCP_CACHE_MAX_BYTES | No | 524288000 | Límite de caché de texto de proyectos de ley (500 MB); evicción LRU después de cada escritura de índice |
CONGRESSMCP_CACHE_ENABLED | No | true | false desactiva la caché persistente: cada llamada vuelve a obtener y reanalizar el documento completo |
CONGRESSMCP_VERSION_TTL | No | 86400 | Segundos que una respuesta de "última versión" con version omitido se reutiliza sin preguntar a congress.gov |
CONGRESSMCP_REVALIDATE_DAYS | No | 30 | Días antes de que una versión explícitamente en caché se vuelva a verificar contra el lastModified de GovInfo |
CLI de caché (la caché se administra desde la línea de comandos, nunca a través de una herramienta MCP):
congressmcp cache info # exit 0
congressmcp cache clear --yes # exit 0; without --yes in a non-interactive shell it refuses with exit 1
Solución de problemas
- "command not found: uvx" en un cliente GUI (Claude Desktop, Zed, LM Studio, JetBrains): usa la ruta absoluta de
which uvx(macOS/Linux) owhere uvx(Windows) comocommand. - Windows: si un cliente no puede iniciar
uvxdirectamente, usa"command": "cmd", "args": ["/c", "uvx", "congressmcp"]. - El primer inicio es lento:
uvxdescarga y almacena en caché el paquete en la primera ejecución; los inicios posteriores son rápidos. Fija una versión conuvx congressmcp@2.2.0si quieres reproducibilidad. - 401 / 403 de la API: la clave falta o es incorrecta. Confirma que funciona con
curl "https://api.congress.gov/v3/bill?api_key=YOUR_KEY&limit=1". - Herramientas faltantes en el cliente: la mayoría de los clientes necesitan un reinicio o una recarga explícita de MCP después de editar la configuración.
Contribuir
Consulta CONTRIBUTING.md para el proceso completo: fork, rama, estilo de código, convenciones de commits y cómo enviar una solicitud de pull.
Licencia
Licencia de Uso Sostenible
Construido para la transparencia gubernamental y datos cívicos accesibles.