Congress について
Congress は、政策調査や立法情報の検索向けの MCP サーバーで、congress.gov、GovInfo などの情報源から米国連邦議会データを提供します。法案、法律、議員、委員会、記名投票を検索でき、無料の api.data.gov キーが必要です。
主な機能
- 01連邦法案の検索と詳細取得
- 02成立した公法の検索
- 03議員と委員会情報の検索
- 04上下両院の記名投票の取得
活用シーン
- 01法案の状況や提出者の追跡
- 02特定の議会期に成立した法律の確認
- 03議員や委員名簿の調査
- 04連邦議会の記名投票記録の確認
MCP 対応
米国連邦議会の法案、法律、議員、委員会、記名投票を検索するツールを MCP クライアントに公開します。Pipeworx ゲートウェイ経由では API キーが提供され、直接利用する場合は api.data.gov キーが必要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/congress/mcpclaude mcp add --transport http pipeworx-io-congress https://gateway.pipeworx.io/congress/mcp{"mcpServers":{"pipeworx-io-congress":{"type":"http","url":"https://gateway.pipeworx.io/congress/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-congress":{"type":"http","url":"https://gateway.pipeworx.io/congress/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-congress":{"type":"http","url":"https://gateway.pipeworx.io/congress/mcp"}}}{"mcpServers":{"pipeworx-io-congress":{"serverUrl":"https://gateway.pipeworx.io/congress/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
米国議会 — 法案、法律、議員(congress.gov)
米国の連邦法案(下院および上院)、成立した公法・私法、議員の情報を、米国議会図書館の公式 congress.gov API から提供します。また、同じ法案文書を対象とする GPO の GovInfo インデックスで全文キーワード検索もできます。法案の状況、提出者、成立した法律、議員名簿を確認できます。無料の api.data.gov キーが必要です。
Pipeworx の一部です。AI エージェントを 1875 以上の稼働中データソースに接続する MCP ゲートウェイです。これは独立した非公式の連携機能であり、上流のプロバイダーとは提携関係になく、同社の推奨を受けておらず、同社から公開されたものでもありません。
AI エージェントにとっての重要性
政策調査では、エージェントがどのような法案が存在するか、誰が提出を支援しているか、立法手続きのどの段階にあるか、実際にどの法案が成立したかを把握する必要があります。Congress.gov は公式記録です。Federal Register(法令を実施する規則)や USAspending(承認後の資金の行き先)と組み合わせてご利用ください。
よくあるワークフロー:
- 法案検索。「AI 規制に関して審議中の法案はありますか?」→ キーワードで検索し、議会で絞り込みます。
- 法案の詳細。「HR 9876 の状況は?」→ 提出者、現在の状況、法律として成立したかどうかを含む法案レコードを取得します。
- 公法。「第119議会ではいくつの法律が成立しましたか? 最も新しい法律は何ですか?」→
get_public_laws。 - 議員の検索。「現在の下院議員」→
get_members。
認証
API キーが必要です。 無料の api.data.gov キー(https://api.data.gov/signup/)で、このパックのすべてのツールを認証できます。同じキーを congress.gov と GovInfo の両方で使用できます。Pipeworx ゲートウェイ経由で呼び出す場合は自動的に渡されます。直接呼び出す場合は _apiKey として渡してください。
2026-10-16:GovTrack から移行
このパックは以前、GovTrack の公開 API を呼び出していました。現在 GovTrack は、法案、議員、投票など、すべてのエンドポイントで HTTP 403 の Cloudflare ボットチャレンジページを返すため、依存していたすべてのツールが呼び出しのたびに失敗していました。search_bills、get_bill、get_recent_bills、get_members は、公式ソース(congress.gov と、search_bills のキーワード検索用の GovInfo。詳細は以下を参照)を呼び出すようになりました。get_votes は、下院については congress.gov、上院については Congressional Record からデータを提供するようになりました(詳細は以下の「点呼投票」を参照)。congress.gov の点呼投票エンドポイントが下院のみを対象としていたため、#3164 から #3183 までの間、一時的に投票情報をまったく提供できませんでした。
検索の順位付け(search_bills)
congress.gov の法案一覧には自由入力の検索パラメーターがなく、議会、法案の種類、日付による閲覧・絞り込みのみ可能です。同じ法案文書を対象とする GPO の GovInfo インデックス(congress.gov の検索ボックスもこれに基づいています)ではキーワード検索が可能なため、search_bills はそこで検索し、結果をローカルで再順位付けします。
- 候補。 GovInfo の全文検索を1回実行し(最大100件)、妥当な関連度順で返される結果を取得します。
- 重複の除外。 法案は公開版(提出、委員会報告、審議完了、登録など)ごとに1回ずつ表示されます。これらを(議会、法案の種類、番号)ごとに1行にまとめ、最も高いスコアの版を残します。
- 順位付け。 各候補のタイトルをスコアリングします。タイトルの完全一致、フレーズを含むタイトル(短いものを優先)、検索語すべてを含むタイトル(前方一致に対応しているため、「lower」は「Lowering」に一致)、一部のみ一致の順です。返される各法案には
match(exact/phrase/all_words/partial/none)とmatched_titleが含まれます。 congressフィルター。 検索結果に対してローカルで適用されます(GovInfo に公式な検索フィールドとして記載されていません)。そのクエリで GovInfo の上位100件に入らない結果は見つからない場合があります。旧バージョンのように特定の議会の法案を網羅的に検索する保証はないため、結果を絞り込む目的で指定してください。- 各結果の提出者、状況、提出日は、候補ごとに追加検索して congress.gov から取得します。GovInfo の検索結果に含まれるのはタイトルと日付のみです。
公法(get_public_laws)— 新機能
GovTrack には制定法のエンドポイントがありませんでした。congress.gov にはあります。議会番号を渡すと(私法の場合は任意で law_type: "priv" を指定)、件数、最も新しい法律、一覧を新しい順に取得できます。
委員会と小委員会(committee_leadership、committee_members)
別のパブリックドメインのソース(github.com/unitedstates/congress-legislators)から取得しています。congress.gov にも GovTrack にも、委員会のメンバー構成や委員会の指導部のエンドポイントはありません。各レスポンスの data_as_of は、そのソース自体の最終更新日です。
committee_members は committee_id(完全一致)または name を使って、委員会または小委員会を特定します。名前検索(fleet #3203、2026-10-16)では、トップレベルの約230の委員会だけでなく、小委員会の名前も検索対象になります。「Cybersecurity」だけで上院軍事委員会のサイバーセキュリティ小委員会(SSAS21)が直接見つかり、より具体的な「Senate Armed Services Subcommittee on Cybersecurity」でも見つかります。これにより、下院軍事委員会にもあるサイバー関連の小委員会との曖昧さを解消できます。検索は単語トークン単位で行われます(クエリ内の各単語は、候補の単語に含まれるか、その単語の接頭辞または接尾辞である必要があります)。また、完全一致が優先されます。曖昧さのない完全一致があれば、より緩い一致が複数あってもそれが優先され、そうした候補は黙って除外されず alternatives として示されます。親委員会だけに一致する名前(小委員会には一致しない名前)は、parent_only_match: true と注記を付けて委員会として返されます。より具体的な小委員会であるかのように表示されることはありません。小委員会のレコードでは、親委員会を常に parent_committee_id/parent_committee_name で別途示します。その chair/ranking_member は親委員会のものではなく、小委員会自身の名簿から特定した小委員会独自のものです。
記名投票(get_votes)— 2つのソース、1つのツール
(fleet #3183、2026-10-16 — このツールが完全に拒否する状態を残した #3164 のフォローアップです。)chamber: "house" または "senate" を渡します。両院は記名投票にそれぞれ独自の番号を付けているため、統合された一覧はありません。
- 下院 — 下院書記官独自の記名投票記録を、congress.gov の公式 API 経由で取得します。このパックの他の機能と同じ API キーが必要です。
- 上院 — 米国政府出版局が発行する Congressional Record(このパックの他の機能と同じ API キーを使い、GovInfo 経由で取得します)。Record にはすべての上院記名投票について、集計と賛成/反対/出席/棄権の各議員リストが掲載されており、このパックはそれらを読み取ります。上院書記官独自のサイトは自動リクエストを拒否します(Web アプリケーションファイアウォールにより、ルートページを含め HTTP 403 が返されます)。また、congress.gov には上院の記名投票エンドポイントがないため、読み取り対象ではありません。
dateは Record の発行日、つまり上院の立法日です。深夜を過ぎる日程は前の日付で掲載されます(H.R. 1 に関する2025年7月1日の投票は6月30日付です)。questionとresultは Record に記載された文そのものです(The question is, Will the Senate advise and consent.../The nomination was confirmed.)。このツールが一致する結果文を Record から見つけられない場合、resultはnullとなり、result_noteが付されます。クローチャーや条約の投票には単純過半数以上の条件が必要なため、集計から結果を推測することはありません。- 記名投票のブロックは、Record が2か所で発表している数と賛成/反対の各リストが一致する場合にのみ返されます。一致しないものは理由とともに
unparsedに記載され、返された投票番号の範囲に欠落がある場合はnoteで示されます。 totalは、この会期でこれまでに印刷された記名投票番号の最大値(上院の投票番号は1からNまで)であり、この呼び出しで読み取った件数ではありません。- 議員ごとの投票の立場、出席状況、党議拘束に沿った投票の割合は、
chamber: "senate"を指定したcongress-member-votesで取得できます。 各レスポンスには、それぞれのchamber、congress、session、sourceが記載されます。CURRENT session の場合はcongress/sessionを省略します。session(1 または 2 — 各 Congress には暦年ごとに 1 つ、合計 2 つの session があります)を推測できるのは現在の Congress に限られます。別の過去の Congress を指定してsessionを省略すると、推測されるのではなく、名前付き引数エラーになります。何も公開されていない chamber/congress/session に対しては、黙って空のリストを返すのではなく、理由が明示されます。
total(House)は、congress.gov が示す session の投票数(pagination.count)で、limit の値にかかわらず同じです。House のリストエンドポイントには並べ替え機能がなく、このパックは limit を満たすのに必要な行だけを取得して再ランキングするため、total は API 自身の件数から取得します。この 1 回の呼び出しで取得した行数から補完することはありません(fleet #3215)。congress.gov がこの件数を返さない場合、取得行数を実際の合計として黙って報告するのではなく、note とともに total 自体を省略します。House の投票記録から other_votes は削除されました(fleet #3215)。これは present_votes + not_voting の合計でしたが、これまでに確認されたすべての実際の投票で not_voting 単独と同じ値でした(present votes はまれです)。この数値が必要な場合は、2 つを自分で合計してください。
House の投票は、オフセットにかかわらず、リストエンドポイントからは一切取得しません。2026-10-17 の実データで確認済みです。この修正を試みた当初の方法のように、リストの末尾からページを取得しても欠落が発生することがあります(実際のある session では、limit:10 の結果が 314..307, 304, 303 となり、roll 306 と 305 がそのページから単純に抜けていました)。House の roll-call 番号は session 内で 1..pagination.count の連番なので、最新の投票は番号(count、count-1、...)を指定し、単一投票の詳細エンドポイントから直接取得します。リストページも、揺らぎも、欠落もありません。House では各投票に独自の上流リクエストが必要なため、1 回の呼び出しにつき 25 件 が上限です。これを超える limit は note とともに上限値に調整されます。congress.gov に記録がない roll 番号(無効化/取り消され、再利用もされていないもの)はスキップされ、note に明記されます。total は取得成功件数の集計ではなく、すでに pagination.count から取得されているため、影響を受けません。
議員の統計(member_legislative_stats)
member_legislative_stats({ bioguide_id, congress? }) は、1 人の議員について、1 つの Congress における以下の情報を返します。
提出した法案、共同提出した法案、法律として成立した提出法案の数、および最新の提出法案(最大 60 件。bills_analysed として報告)のうち、少なくとも 1 人の他方の主要政党の共同提出者を得た割合です。これらは、Library of Congress の記録をもとに Pipeworx が算出する件数であり、公式スコアではありません。GovTrack のレポートカードの数値(他党から「参加」した法案の数、議員間での順位とパーセンタイル)は算出しません。全議員の記録が必要であり、GovTrack が自動アクセスをブロックしているためです。レスポンスの not_computed にその旨が記載されます。
Congress の番号
Congress は連番で付けられています。119th Congress = 2025-2027(2025 年 1 月に開始)、118th = 2023-2025 などです。法案には Congress 番号が付いているため、119th の HR1 は 118th の HR1 とは別の法案です。
法案の種類を示す接頭辞
| 接頭辞 | 内容 | 議院 |
|---|---|---|
| HR | House Bill | House |
| HRES | House Resolution(手続き上の決議) | House |
| HJRES | House Joint Resolution | House |
| HCONRES | House Concurrent Resolution | House |
| S | Senate Bill | Senate |
| SRES | Senate Resolution | Senate |
| SJRES | Senate Joint Resolution | Senate |
| SCONRES | Senate Concurrent Resolution | Senate |
「通常の立法」という観点では、意味があるのは HR と S です。決議には法的効力がないもの(HRES、SRES)や、適用範囲が限られるもの(HJRES、SJRES — 後者は批准されれば憲法を改正できます)があります。
よくある注意点
- 法案のステータスのニュアンス。 「提出」は始まりです。委員会での「報告」は重要な進展です。「一本化」/「議院通過」は重要です。「登録」/「大統領への送付」は最終段階に近い状態です。ほとんどの法案は委員会でひっそりと廃案になります。「提出」だけでは有力なシグナルとは言えません。各法案の
status_labelは、コード化されたステータスではなく、congress.gov の自由記述によるlatestActionです。パターンで判定せず、内容を読んでください。 - 上下両院に提出される同一法案。 同一の法案が、対となる法案(HR 1234 + S 567)として上下両院に提出されることがよくあります。両方が可決される必要があります。
- 記録投票のみ。
get_votesが対象とするのは記録された投票です。議会での決定の多くは発声投票や全会一致の同意によって行われ、いずれの院の記録投票記録にも残りません。 - 委員会への付託。 法案は複数の委員会に付託されることがあります(順次、合同、または分割)。次の段階に進むには、すべての委員会を通過する必要があります。提出よりも委員会の構成が重要です。
- 共同提案は簡単にできます。 議員は気軽に共同提案者になります。共同提案者が100人の法案には意味がありますが、435人の下院で共同提案者が5人の法案が必ずしもそうとは限りません。
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します:
{
"mcpServers": {
"congress": {
"url": "https://gateway.pipeworx.io/congress/mcp"
}
}
}
このエンドポイントが実際に提供するもの
https://gateway.pipeworx.io/congress/mcp の tools/list は、上記の表にあるツールに加えて、共有 Pipeworx メタツール(ask_pipeworx、
discover_tools、search_within、remember/recall など、ゲートウェイ全体で使えるツール一式)も返します。そのため、表示されるツール数はこの表より多くなります。単一パックのエンドポイントには現在、パック独自のツールに加えて共有ツールがおよそ30個表示されます。接続の initialize 応答には正確なスコープが記載され、その日の時点での正式な情報となります。
これは意図的な設計であり、偶然に多重化されているわけではありません。メタツールを使えば、このパックでは対応していない質問にも、カタログ全体を横断して振り分ける ask_pipeworx 経由で回答できるため、2つ目の MCP サーバーを追加する必要はありません。現在、これらを含めずにパックのエンドポイントを接続する方法はありません。追加スキーマによるコンテキストの消費がルーティングの利点を上回る場合は、複数のパックエンドポイントではなく、フルゲートウェイに一度だけ接続してください。
または、フル Pipeworx ゲートウェイに接続すると、このパックだけではなく、すべてのパックのツールが直接一覧表示されます:
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
どちらの URL も同じゲートウェイと同じ1875以上のデータソースにつながります。違いは、どのパックのツールが直接一覧表示されるかだけです。どちらからでも、ask_pipeworx を使えばすべてのツールにアクセスできます。
MCP クライアントがない場合:HTTP 経由で呼び出す
curl -X POST https://gateway.pipeworx.io/v1/tools/congress_search_bills \
-H 'Content-Type: application/json' \
-d '{"query":"Lower Energy Costs Act","limit":10}'
最初の呼び出しにアカウントは必要ありません。任意のツールを確認するには、GET https://gateway.pipeworx.io/v1/tools/congress_search_bills を実行します。ツールを探すには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を実行します。
単独での実行(ゲートウェイアカウント不要)
このパッケージはローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントもゲートウェイとの往復通信も必要ありません:
{
"mcpServers": {
"congress": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-congress"]
}
}
}
または、直接実行して起動することを確認できます:
npx -y @pipeworx/mcp-congress
stdin/stdout 経由で MCP を使用し、このパックのツールのみについて initialize/tools/list/tools/call に応答します。上記のゲートウェイ接続で追加される共有メタツールは含まれません。同じソース、同じツールで、ask_pipeworx によるルーティングはありません。
ask_pipeworx を使う
ツールを直接呼び出す代わりに、自然な英語で質問できます。この方法は、上記のパックエンドポイントでもフルゲートウェイでも利用できます:
ask_pipeworx({ question: "your question about Congress data" })
ゲートウェイが適切なツールを選び、引数を自動的に設定します。
その他
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。