Congressmcp について
Congressmcpは、Congress.govとGovInfoの議会データを検索するMCPサーバーです。MCPクライアントやAIエージェントから、少数のツールを通じて自然言語で立法情報や関連記録を照会できます。
主な機能
- 01法案と全文の検索
- 02投票・議員・委員会の検索
- 03公聴会と指名の参照
- 04Congressional Recordの検索
活用シーン
- 01法案の進捗と本文の確認
- 02議員や委員会に関する情報の検索
- 03投票・公聴会・指名記録の調査
MCP 対応
法案、投票、議員、委員会、公聴会、指名、Congressional Recordを調べるツールをMCPクライアントに提供します。ローカルで動作し、Congress.govとGovInfoのAPIに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
CongressMCP
あらゆる MCP クライアント — Claude Code、ChatGPT、Copilot、Codex、Cursor、OpenCode、Gemini CLI、Grok Build など — で利用できる、米国議会のライブデータ。
法案、法案全文、投票、議員、委員会、公聴会、指名、および議会記録を、Model Context Protocol を通じて自然言語で検索できます。無料の Congress.gov API および GovInfo API に対して、お使いのマシン上でローカルに動作します。アカウント不要、ホスト型サービス不要、テレメトリなし。
クイックスタート
1. 無料の Congress.gov API キーを取得する
api.congress.gov/sign-up でサインアップしてください — 30 秒で完了します。同じキーは GovInfo(法案全文)でも使用できます。
2. uv をインストールする
CongressMCP は PyPI で公開されており、uv に同梱されている uvx で起動します。
# 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、pipx install uv も利用できます。)pip のほうがよければ、pip install congressmcp で congressmcp コマンドが使えるようになり、以下に示す uvx congressmcp の代わりに使用できます。
3. クライアントを接続する
どのクライアントでも必要な情報は同じ 3 つです。command は uvx、args は ["congressmcp"]、env は CONGRESS_API_KEY です。クライアントは、今日どれだけ多くのプロフェッショナル開発者が使用しているかのおおよその順に並べています(JetBrains Developer Ecosystem survey、2026 年半ば、続いて Pragmatic Engineer の 2026 年ツーリング調査)ので、お探しのものはおそらく上部のほうにあります:
| クライアント | 設定場所 | 備考 |
|---|---|---|
| Claude Code | claude mcp add … または .mcp.json | |
| ChatGPT | Developer mode → connector URL | リモートのみ — HTTP モードが必要 |
| VS Code / GitHub Copilot | .vscode/mcp.json | servers + inputs を使用 |
| OpenAI Codex CLI | codex mcp add … または ~/.codex/config.toml | TOML |
| Cursor | ~/.cursor/mcp.json または .cursor/mcp.json | |
| JetBrains AI Assistant / Junie | Settings → AI Assistant → MCP | Claude Desktop の JSON を貼り付け |
| OpenCode | opencode.json → mcp | command は単一の配列 |
| Gemini CLI | gemini mcp add … または ~/.gemini/settings.json | |
| Claude.ai | Connectors → custom connector URL | リモートのみ — HTTP モードが必要 |
| Claude Desktop | claude_desktop_config.json | |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | |
| Zed | settings.json → context_servers | |
| Cline / Roo Code | MCP 設定パネル → JSON を編集 | |
| Goose | goose configure または ~/.config/goose/config.yaml | YAML |
| Grok Build | grok mcp add … または ~/.grok/config.toml | TOML。Claude Code / Cursor の設定も自動インポート |
| Hermes Agent | hermes mcp add … または ~/.hermes/config.yaml | YAML |
| OpenClaw | openclaw mcp add … または ~/.openclaw/openclaw.json | JSON5 |
| Continue | ~/.continue/config.yaml | YAML、エージェントモードのみ |
| Open WebUI | Admin → Integrations → MCP server URL | リモートのみ — HTTP モードが必要 |
| LM Studio | Program タブ → mcp.json | Cursor 形式の JSON |
ここに記載されていないものでも、stdio 経由で MCP を話せるものは同じ 3 つの値で動作します。
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
図のように、サーバー名は --env の前に置いてください — --env が先に来ると、CLI は名前を別の KEY=value ペアとして解析しようとします。同等の .mcp.json:
{
"mcpServers": {
"congressmcp": {
"type": "stdio",
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "${CONGRESS_API_KEY}" }
}
}
}
${VAR} / ${VAR:-default} は環境から展開されるため、キーをコミットする必要はありません。
VS Code / GitHub Copilot
ワークスペース: `.vscode/mcp.json`(またはユーザーレベルの場合はコマンドパレット → **MCP: Add Server** / **MCP: Open User Configuration**)。VS Code は `mcpServers` ではなく `servers` を使用し、`inputs` を使うとキーをディスクに書き込む代わりにプロンプトで入力させて安全に保存できます:{
"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 はサーバーの初回起動時に信頼プロンプトを表示します。
OpenAI Codex CLI
codex mcp add congressmcp --env CONGRESS_API_KEY=your-api-key-here -- uvx congressmcp
または ~/.codex/config.toml に記述します(Codex IDE 拡張機能と ChatGPT デスクトップアプリもこのファイルを読み取ります。プロジェクトレベルの .codex/config.toml は信頼されたプロジェクトで機能します):
[mcp_servers.congressmcp]
command = "uvx"
args = ["congressmcp"]
env_vars = ["CONGRESS_API_KEY"] # forward from your shell — nothing secret in the file
キーを直接埋め込むには、env_vars の行を CONGRESS_API_KEY = "…" を含む [mcp_servers.congressmcp.env] テーブルに置き換えます。codex mcp list またはセッション内で /mcp を使って確認できます。
Cursor
グローバル: ~/.cursor/mcp.json。プロジェクト単位: .cursor/mcp.json。
{
"mcpServers": {
"congressmcp": {
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "${env:CONGRESS_API_KEY}" }
}
}
}
${env:NAME} はシェルの環境変数から読み取ります。キー文字列を直接記述しても機能します。
JetBrains AI Assistant / Junie
AI Assistant: 設定 → Tools → AI Assistant → Model Context Protocol (MCP) → Add → As JSON を選択し、Claude Desktop のブロックを貼り付けます(claude_desktop_config.json を読み取る Import from Claude ボタンもあります)。
Junie: 設定 → Tools → Junie → MCP Settings。これは ~/.junie/mcp/mcp.json(グローバル)または .junie/mcp/mcp.json(プロジェクト)を編集します — 同じ mcpServers 形式です。
OpenCode
グローバルの ~/.config/opencode/opencode.json、またはプロジェクトルートの opencode.json / opencode.jsonc(プロジェクトがグローバルを上書きします)。OpenCode はコマンドとその引数を 1 つの配列にまとめ、環境変数のマップを environment と呼びます:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"congressmcp": {
"type": "local",
"command": ["uvx", "congressmcp"],
"environment": { "CONGRESS_API_KEY": "your-api-key-here" },
"enabled": true
}
}
}
opencode mcp add は存在しません。ファイルを編集してから、opencode mcp list / opencode mcp debug congressmcp で確認します。リモートサーバーは "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 を付けるとグローバルになります。デフォルトのスコープは現在のプロジェクトです。)または ~/.gemini/settings.json / .gemini/settings.json に記述します:
{
"mcpServers": {
"congressmcp": {
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "$CONGRESS_API_KEY" }
}
}
}
Claude Desktop
Claude メニュー → Settings… → Developer → Edit Config、またはファイルを直接編集します:
- 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" }
}
}
}
Claude Desktop を再起動します。サーバーが表示されない場合は、uvx への絶対パス(which uvx / where uvx)を使用してください — GUI アプリはシェルの PATH を常に継承するわけではありません。ログ: ~/Library/Logs/Claude/mcp*.log または %APPDATA%\Claude\logs。
Windsurf
Cascade パネル → MCPs アイコン → raw config、または ~/.codeium/windsurf/mcp_config.json を編集します:
{
"mcpServers": {
"congressmcp": {
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "${env:CONGRESS_API_KEY}" }
}
}
}
Windsurf は全サーバーを通じたツールの総数を 100 に制限しています。CongressMCP は 24 個を登録するため(それぞれが関連する操作をまとめています)、余裕を持って収まります。
Zed
設定 → AI → MCP Servers → Add Local Server、または settings.json を編集します(macOS ~/Library/Application Support/Zed/settings.json、Linux ~/.config/zed/settings.json、Windows %APPDATA%\Zed\settings.json。プロジェクトレベルは .zed/settings.json):
{
"context_servers": {
"congressmcp": {
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "your-api-key-here" }
}
}
}
Cline / Roo Code
Cline: MCP Servers アイコン → Configure → Configure MCP Servers(cline_mcp_settings.json を開きます。Cline CLI は ~/.cline/mcp.json を使用します)。
Roo Code: MCP Servers → Edit Global MCP、またはプロジェクト単位で .roo/mcp.json。
どちらも Claude Desktop の形式に加えて、いくつかのクライアント固有のフィールドを使用します:
{
"mcpServers": {
"congressmcp": {
"command": "uvx",
"args": ["congressmcp"],
"env": { "CONGRESS_API_KEY": "your-api-key-here" },
"disabled": false,
"autoApprove": []
}
}
}
Windows では、Roo のドキュメントはコマンドをラップすることを推奨しています: "command": "cmd", "args": ["/c", "uvx", "congressmcp"]。
Goose
対話式: goose configure → Add Extension → Command-line Extension(コマンド uvx congressmcp、その後、環境変数を求められたら CONGRESS_API_KEY を追加します)。単発: goose session --with-extension "CONGRESS_API_KEY=your-api-key-here uvx congressmcp"。または ~/.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
xAI のターミナルコーディングエージェントです。すでに Claude Code(~/.claude.json / .mcp.json)または Cursor(.cursor/mcp.json)用に CongressMCP を設定済みであれば、Grok Build はそれを自動的に読み取ります — 追加の作業は不要です。それ以外の場合は:
grok mcp add congressmcp -- uvx congressmcp # add --scope project for .grok/config.toml
その後、~/.grok/config.toml(またはプロジェクトの .grok/config.toml)でキーを設定します:
[mcp_servers.congressmcp]
command = "uvx"
args = ["congressmcp"]
env = { CONGRESS_API_KEY = "${CONGRESS_API_KEY}" }
grok mcp list / grok mcp doctor congressmcp で確認します。セッション内の /mcps でサーバーを切り替えられます。ツールは congressmcp__<tool> として表示されます。
Hermes Agent
Nous Research の Hermes Agent です。~/.hermes/config.yaml:
mcp_servers:
congressmcp:
command: "uvx"
args: ["congressmcp"]
env:
CONGRESS_API_KEY: "${CONGRESS_API_KEY}" # or a literal key
enabled: true
または hermes mcp add congressmcp --command uvx --args congressmcp を実行し、その後 env: ブロックを手動で追加します。hermes mcp test congressmcp で接続を確認できます。セッション内の /reload-mcp で再起動せずに再読み込みできます。ツールは mcp__congressmcp__<tool> として表示されます。
OpenClaw
openclaw mcp add congressmcp --command uvx --arg congressmcp --env CONGRESS_API_KEY=your-api-key-here
または ~/.openclaw/openclaw.json の mcp.servers の下に記述します(JSON5 なので、コメントや末尾のカンマも問題ありません):
{
mcp: {
servers: {
congressmcp: {
command: "uvx",
args: ["congressmcp"],
env: { CONGRESS_API_KEY: "your-api-key-here" },
},
},
},
}
openclaw mcp status / openclaw mcp probe congressmcp で確認できます。OpenClaw は mcporter のレジストリを読み取りません — mcp.servers を使用してください。リモートサーバーの場合は、明示的な transport: "streamable-http" とともに url を使用します。
Continue
~/.continue/config.yaml、またはワークスペース内の .continue/mcpServers/ の下にサーバーごとに1ファイル(Continue はそのフォルダに置かれた Claude/Cursor 形式の JSON ファイルも受け付けます)。MCP ツールは エージェントモード で利用できます。
mcpServers:
- name: congressmcp
type: stdio
command: uvx
args:
- congressmcp
env:
CONGRESS_API_KEY: ${{ secrets.CONGRESS_API_KEY }}
LM Studio
Program タブ → Install → Edit mcp.json。LM Studio は Cursor の mcp.json 形式に従うため、Cursor ブロックがそのまま動作します — ${env:…} ではなくリテラルのキー文字列を使用してください。これにより、ツール呼び出しをサポートする任意のローカルモデルが議会データにアクセスできるようになります。
リモートクライアント: ChatGPT、Claude.ai、Open WebUI
これらのクライアントはローカルプロセスを起動できません。URL にある MCP サーバーに接続します。CongressMCP を HTTP モード で実行し、URL を指定してください:
- ChatGPT(Plus/Pro/Business/Enterprise/Edu、ウェブ): Settings → Security and login → Developer mode、その後、サーバー URL を指定してコネクターを追加します。公開 HTTPS エンドポイント(または Secure MCP Tunnel)が必要です。
- Claude.ai(ウェブ、モバイルに同期): Customize → Connectors → Add custom connector(Team/Enterprise: Organization settings → Connectors)。パブリックインターネット経由で到達可能である必要があります。
- Open WebUI: Admin Settings → Integrations → + Add Server → MCP (Streamable HTTP)。Streamable HTTP のみです。LAN 内にあってもかまいません。
いずれの場合もエンドポイントは https://<your-host>/mcp です。上記のローカルクライアントのほとんど(OpenCode、Grok Build、Hermes、OpenClaw、Codex、Claude Code、Cursor、VS Code)は、uvx を起動する代わりにその URL に接続することもできます — 1つのインストールをチーム全体で共有するのに便利です。
「第119議会における最近の気候変動法案を検索してください」 「FY2026 NDAA のどこに沿岸警備隊の砕氷船予算がありますか?」 「カリフォルニア州選出の上院議員は最新の国防法案にどう投票しましたか?」 「上院司法委員会の委員は誰ですか?」 「H.R. 1234 の最新のアクションは何ですか?」
リモート / HTTP モード
URL で接続するクライアント(ChatGPT、Claude.ai コネクター、Open WebUI、または1つのインストールを複数ユーザーで共有する場合)では、サーバーを 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 には組み込みの認証がありません。 このサーバーは自分のマシン上で実行するように設計されています。localhost を超えて公開する場合は、認証を行うものの背後に置いてください — アクセスポリシー付きのリバースプロキシ、許可リスト付きの HTTPS トンネル、または VPN などです。そして、そこに到達できる誰もがあなたの Congress.gov クォータを消費することを覚えておいてください。さらに ChatGPT と Claude.ai は、公開的に解決可能なホスト名での HTTPS を必要とします。
ツール
Congress.gov API をカバーする 7つのツールセット、90以上の操作、さらに GovInfo からの法案全文取得:
| ツールセット | 操作 | 機能 |
|---|---|---|
| Bills | 15 | 検索、詳細、テキスト、アクション、修正案、共同提案者、主題 |
| Laws | 2 | 議会ごとの制定された公法/私法(get_laws、get_law_details) |
| Amendments | 7 | 検索、詳細、アクション、提案者、テキスト |
| Treaties & Summaries | 5 | 条約の検索、アクション、委員会、テキスト、法案概要 |
| Members & Committees | 13 | 名前/州/選挙区による議員検索、提出法案、委員会の法案/報告書/通信 |
| Voting & Nominations | 13 | 下院/上院の投票、指名、記名投票 |
| Records & Hearings | 10+ | 議会記録、公聴会、CRS レポート、委員会刊行物 |
search_committees と search_summaries は オプション の keywords 引数を取ります —
省略すると閲覧/一覧表示になります(委員会は chamber/committee_type でも絞り込めます)。
法案全文検索
変更点: API レスポンスをプロキシする代わりに、CongressMCP は GovInfo から完全な Bill DTD XML を取得し、ローカルで解析し、法案バージョンごとにセグメントレベルの SQLite FTS5 インデックスを構築して、生の数メガバイトの XML やレンダリングされた法案ページ全体ではなく、対象を絞ったアドレス可能な法案セクションを返します。インデックスは ディスクに永続化 され、呼び出しや再起動をまたいで再利用されます。
| ツール | 機能 |
|---|---|
search_bill_text | 法案全文を検索し、スニペット、match_contexts、修正フラグ付きのランク付けされたアドレス可能なチャンクを返します |
get_bill_section | 修飾されたセクションまたはチャンク id を取得します。max_bytes は返される text フィールドの UTF-8 バイト数に対して測定されます |
get_bill_toc | セクション id を見つけるための浅いナビゲーションツリーを返します |
新しい API キーは不要です。 GovInfo と Congress.gov はどちらも api.data.gov の背後にあるため、CongressMCP は両方に対して既存の CONGRESS_API_KEY を再利用します。別の GovInfo キーが必要な場合にのみ GOVINFO_API_KEY を設定してください。(2つ目のキーが必要だと想定する人もいます。必要ありません。)
データの保存場所。 法案バージョンごとに1つの SQLite ファイル(<package_id>.v<N>.db、例:BILLS-119s1071enr.v1.db)がキャッシュルートの packages/ 配下に、加えて小さな manifest.db インデックスがあります。キャッシュルートは、設定されていれば CONGRESSMCP_CACHE_DIR、そうでなければプラットフォームのデフォルトです:
| プラットフォーム | パス |
|---|---|
| Linux | $XDG_CACHE_HOME/congressmcp、なければ ~/.cache/congressmcp |
| macOS | ~/Library/Caches/congressmcp |
| Windows | %LOCALAPPDATA%\congressmcp\Cache |
ディスク使用量。 デフォルトで 500 MB に制限されます(CONGRESSMCP_CACHE_MAX_BYTES、バイト単位)。インデックス書き込みのたびに、最も最近使われていないものから削除することで適用されます。NDAA 規模の制定法案(S.1071/119、1,448 のインデックス済みユニット)は 11 MB のインデックスを構築しますが、ほとんどの法案ははるかに小さいです。キャッシュはコマンドラインから検査または空にできます — これは意図的に MCP ツールにはなっていません:
congressmcp cache info # path, cap, total bytes, one line per package
congressmcp cache clear --yes # remove every package file and the manifest
キャッシュディレクトリを手動で削除するのもいつでも安全です。これらのファイルはストアではなくキャッシュです。
初回呼び出しのレイテンシ — 推定ではなく実測。 S.1071/119 でコールド状態(何もキャッシュされていない)の場合、実行全体でエンドツーエンド 4.1~6.8 秒、うち congress.gov のバージョン解決 + GovInfo パッケージサマリーに 3.0~3.4 秒、XML ダウンロードに 1.1~2.3 秒、パースに 0.75 秒、FTS5 構築に 0.31 秒かかります — ネットワーク区間が遅く変動しやすい部分であり、キャッシュが取り除くのもこの部分です。ウォーム状態(インデックスとバージョン解決がキャッシュ済み)では 30~60 ms で、ネットワークは使用しません。すべてのレスポンスには timing ブロック(resolve_ms、download_ms、parse_ms、index_ms、search_ms、total_ms。実行されなかった区間は null)と cache ブロック(index_hit、version_hit)が含まれるため、どちらのケースだったかを確認できます。クライアントのタイムアウトに関する注意: MCP クライアントの呼び出しごとのタイムアウトは少なくとも 30 秒に設定してください。低速なネットワークでのコールドの NDAA 規模の呼び出しはデフォルトの 10 秒を超えることがありますが、部分的な処理結果は失われません — 次の呼び出しはウォーム状態です。
オフラインでの動作。 明示的に取得したバージョン(version="enr")は、キャッシュに残っている限り完全にオフラインでクエリできます。明示的にキャッシュされたバージョンは、CONGRESSMCP_REVALIDATE_DAYS(30)ごとにのみ GovInfo の lastModified と照合して再チェックされ、パッケージが再発行されていれば再構築されます。version を省略した場合、「最新バージョン」の回答は CONGRESSMCP_VERSION_TTL(86400 秒 = 1 日、version_resolution: "cached")のあいだキャッシュされます。TTL を過ぎると再解決され、ネットワークが利用できない場合は最後の回答が ベストエフォートで提供され、version_resolution: "cached_offline" とラベル付けされ、解決のタイムスタンプと、より新しいバージョンが存在する可能性がある旨の注記が付きます。何もキャッシュされておらずネットワークがダウンしている場合は version_resolution_unavailable が返り、その法案でキャッシュされているバージョンが一覧されるので、いずれかを固定できます。
ネットワーク送信先。 ホストはちょうど 2 つです: api.congress.gov(法案およびテキストバージョンのメタデータ)と api.govinfo.gov(法案の内容)。どちらも api.data.gov によって個別にレート制限されるため(毎時 20,000 件と毎時 36,000 件)、インデックス作成が他のツールを枯渇させることはありません。
CONGRESSMCP_CACHE_ENABLED=false を設定すると、これらすべてが無効になります。すべての呼び出しでドキュメント全体を再ダウンロードし、再パースし、メモリ内で再インデックスします — 毎回 NDAA 規模のレイテンシになります。これは診断用であり、通常の使用を目的としたものではありません。
検索レスポンスは、operative、quoted、header の各セグメント内の一致を区別します。match_contexts に quoted が現れる場合、operative も同時に現れていても、そのヒットには法案が削除しようとしている文言が含まれている可能性があります。削除・挿入の文言について結論を出す前に、そのセクションを取得してください。
各ヒットには matched_queries も付随します — それを生成したクエリのサブセットです。検索の挙動を推論する前にこれを読んでください。マルチクエリ呼び出しでは、すべてのヒットをその発生元のクエリに紐付けるため、予期しない結果はトークナイザーの内部を推測するのではなく、このフィールドによって説明されます。
amends は米国法典の引用のみを解決します(長形式の Section {sec} of title {title}, United States Code と、修正動詞が続く場合の短縮形式 {title} U.S.C. {sec})。これは名前付きの法律を解決しません。素の条文番号で引用される Internal Revenue Code も含まれないため、ほとんどの Title VII の税務ユニットは is_amendatory: true と amends: [] を報告します。修正文言を特定するには is_amendatory と match_contexts を使用してください。amends は便利機能であり、完全性を保証するものではありません。
ソースからの実行
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
ソースチェックアウトをクライアントに指定するには、uvx の代わりに "command": "congressmcp"(venv を有効化するか、その bin/ を PATH に追加した状態)または "command": "/path/to/venv/bin/congressmcp" を使用します。
設定
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
CONGRESS_API_KEY | はい | — | 無料の Congress.gov API キー |
GOVINFO_API_KEY | いいえ | — | GovInfo 用の任意のオーバーライド。指定しない場合は CONGRESS_API_KEY が再利用されます |
ENABLE_CACHING | いいえ | false | API レスポンスをメモリにキャッシュします |
CACHE_TIMEOUT | いいえ | 300 | キャッシュの TTL(秒) |
LOG_LEVEL | いいえ | WARNING | stderr へのログ出力の詳細度(DEBUG、INFO、WARNING、ERROR) |
CONGRESS_API_ENV | いいえ | local | development/staging/production に設定すると、対応する .env.* ファイルを読み込みます。未設定の場合は通常の .env のみを読み込みます。ファイルがエクスポート済みの変数を上書きすることはありません |
CONGRESSMCP_BILL_TEXT_ONLY | いいえ | 未設定 | truthy の場合、3 つの bill-text ツールのみを登録します(スタンドアロンの bill-text サーバー) |
CONGRESSMCP_TRACE_DIR | いいえ | 未設定 | ディレクトリを指定すると、bill-text ツールの呼び出しごとにキーを伏せた JSONL レコードを 1 件書き込みます(デバッグ用) |
CONGRESSMCP_CACHE_DIR | いいえ | プラットフォームのキャッシュパス(Full Bill Text Search を参照) | bill-text パッケージのキャッシュルート |
CONGRESSMCP_CACHE_MAX_BYTES | いいえ | 524288000 | bill-text キャッシュの上限(500 MB)。インデックス書き込みごとに LRU で削除されます |
CONGRESSMCP_CACHE_ENABLED | いいえ | true | false にすると永続キャッシュが無効になり、呼び出しごとにドキュメント全体を再取得して再解析します |
CONGRESSMCP_VERSION_TTL | いいえ | 86400 | version を省略した「最新バージョン」の回答を、congress.gov に問い合わせずに再利用する秒数 |
CONGRESSMCP_REVALIDATE_DAYS | いいえ | 30 | 明示的にキャッシュされたバージョンを GovInfo の lastModified と再照合するまでの日数 |
キャッシュ CLI(キャッシュの管理はコマンドラインから行い、MCP ツール経由では決して行いません):
congressmcp cache info # exit 0
congressmcp cache clear --yes # exit 0; without --yes in a non-interactive shell it refuses with exit 1
トラブルシューティング
- GUI クライアント(Claude Desktop、Zed、LM Studio、JetBrains)で「command not found: uvx」:
which uvx(macOS/Linux)またはwhere uvx(Windows)で取得した絶対パスをcommandに指定してください。 - Windows: クライアントが
uvxを直接起動できない場合は、"command": "cmd", "args": ["/c", "uvx", "congressmcp"]を使用してください。 - 初回起動が遅い:
uvxは初回実行時にパッケージをダウンロードしてキャッシュします。以降の起動は高速です。再現性が必要な場合はuvx [email protected]でバージョンを固定してください。 - API からの 401 / 403: キーが欠落しているか誤っています。
curl "https://api.congress.gov/v3/bill?api_key=YOUR_KEY&limit=1"で動作を確認してください。 - クライアントにツールが表示されない: ほとんどのクライアントでは、設定変更後に再起動または明示的な MCP の再読み込みが必要です。
コントリビューション
フォーク、ブランチ、コードスタイル、コミット規約、プルリクエストの送信方法など、詳細な手順については CONTRIBUTING.md を参照してください。
ライセンス
Sustainable Use License
政府の透明性とアクセスしやすい市民データのために構築されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。