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:

ClienteDónde se configuraNotas
Claude Codeclaude mcp add … o .mcp.json
ChatGPTModo desarrollador → URL del conectorsolo remoto — necesita modo HTTP
VS Code / GitHub Copilot.vscode/mcp.jsonusa servers + inputs
OpenAI Codex CLIcodex mcp add … o ~/.codex/config.tomlTOML
Cursor~/.cursor/mcp.json o .cursor/mcp.json
JetBrains AI Assistant / JunieConfiguración → AI Assistant → MCPpega el JSON de Claude Desktop
OpenCodeopencode.json → mcpcommand es un solo arreglo
Gemini CLIgemini mcp add … o ~/.gemini/settings.json
Claude.aiConectores → URL de conector personalizadosolo remoto — necesita modo HTTP
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json
Zedsettings.json → context_servers
Cline / Roo CodePanel de configuración de MCP → editar JSON
Goosegoose configure o ~/.config/goose/config.yamlYAML
Grok Buildgrok mcp add … o ~/.grok/config.tomlTOML; también importa automáticamente la configuración de Claude Code / Cursor
Hermes Agenthermes mcp add … o ~/.hermes/config.yamlYAML
OpenClawopenclaw mcp add … o ~/.openclaw/openclaw.jsonJSON5
Continue~/.continue/config.yamlYAML, solo modo agente
Open WebUIAdmin → Integraciones → URL del servidor MCPsolo remoto — necesita modo HTTP
LM StudioPestaña Programa → mcp.jsonJSON 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 herramientasOperacionesQué hace
Proyectos de ley15Búsqueda, detalles, texto, acciones, enmiendas, copatrocinadores, temas
Leyes2Leyes públicas/privadas promulgadas por congreso (get_laws, get_law_details)
Enmiendas7Búsqueda, detalles, acciones, patrocinadores, texto
Tratados y resúmenes5Búsqueda de tratados, acciones, comités, texto; resúmenes de proyectos de ley
Miembros y comités13Búsqueda de miembros por nombre/estado/distrito, legislación patrocinada, proyectos de ley/informes/comunicaciones de comités
Votaciones y nominaciones13Votos de la Cámara/Senado, nominaciones, votaciones nominales
Registros y audiencias10+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.

HerramientaQué hace
search_bill_textBusca en el texto completo del proyecto de ley y devuelve fragmentos direccionables clasificados con fragmentos, match_contexts, y banderas de enmienda
get_bill_sectionRecupera una sección calificada o un id de fragmento, con max_bytes medido contra los bytes UTF-8 del campo text devuelto
get_bill_tocDevuelve 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:

PlataformaRuta
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

VariableRequeridaPredeterminadoDescripción
CONGRESS_API_KEYSí—Tu clave gratuita de API de Congress.gov
GOVINFO_API_KEYNo—Anulación opcional para GovInfo; de lo contrario, CONGRESS_API_KEY se reutiliza
ENABLE_CACHINGNofalseAlmacenar en caché las respuestas de la API en memoria
CACHE_TIMEOUTNo300TTL de caché en segundos
LOG_LEVELNoWARNINGVerbosidad de registro en stderr (DEBUG, INFO, WARNING, ERROR)
CONGRESS_API_ENVNolocalEstablecer 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_ONLYNosin establecerSi es verdadero, registra solo las tres herramientas de texto de proyectos de ley (servidor independiente de texto de proyectos de ley)
CONGRESSMCP_TRACE_DIRNosin establecerSi 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_DIRNoRuta 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_BYTESNo524288000Límite de caché de texto de proyectos de ley (500 MB); evicción LRU después de cada escritura de índice
CONGRESSMCP_CACHE_ENABLEDNotruefalse desactiva la caché persistente: cada llamada vuelve a obtener y reanalizar el documento completo
CONGRESSMCP_VERSION_TTLNo86400Segundos que una respuesta de "última versión" con version omitido se reutiliza sin preguntar a congress.gov
CONGRESSMCP_REVALIDATE_DAYSNo30Dí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) o where uvx (Windows) como command.
  • Windows: si un cliente no puede iniciar uvx directamente, usa "command": "cmd", "args": ["/c", "uvx", "congressmcp"].
  • El primer inicio es lento: uvx descarga y almacena en caché el paquete en la primera ejecución; los inicios posteriores son rápidos. Fija una versión con uvx congressmcp@2.2.0 si 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.