Knesset MCP Server について
Knesset MCP Serverは、イスラエル国会のODataサービスを通じて、AIアシスタントから議会情報を検索できるMCPサーバーです。法案、委員会、議員、会派を扱い、立法状況や段階、現職かどうかで絞り込めます。
主な機能
- 01キーワードによる法案検索
- 02法案の詳細と提案者の取得
- 03状況・段階・種類による法案の絞り込み
- 04委員会一覧と詳細の取得
- 05議員と会派の閲覧
活用シーン
- 01立法段階ごとの法案の追跡
- 02政策テーマに関する法案の検索
- 03委員会情報の確認
- 04会派の現職議員一覧の取得
MCP 対応
MCPクライアント向けに専用ツールを公開し、Knesset ODataサービスから法案、委員会、議員、会派の情報を検索できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Knesset MCP Server
イスラエルのクネセトの議会情報 API にアクセスするための Model Context Protocol(MCP)サーバーです。AI アシスタントが、クネセトの OData サービスから法案、委員会、議員の情報を照会できるよう、用途を絞ったツールを提供します。
要件
- Node.js >= 20.10.0(古いバージョンでは、
knesset.gov.ilへの接続時にSELF_SIGNED_CERT_IN_CHAINエラーが発生します)
インストール
git clone https://github.com/yourusername/knesset-mcp-server.git
cd knesset-mcp-server
npm install
npm run build
使い方
サーバーの起動
npm start # run the built server
npm run dev # run TypeScript directly via ts-node
Claude Desktop での使用
- Claude Desktop をインストールします。
- Claude Desktop の設定ファイルを編集します。場所は、macOS では
~/Library/Application Support/Claude/claude_desktop_config.json、Windows では%APPDATA%\Claude\claude_desktop_config.jsonです。
{
"mcpServers": {
"knesset": {
"command": "npx",
"args": ["-y", "knesset-mcp"]
}
}
}
- Claude Desktop を再起動すると、Knesset のツールが利用できるようになります。
npx -y フラグを指定すると、初回実行時にパッケージが自動でインストールされ、キャッシュされます。Node.js >= 20.10.0 が必要です。
ツール
法案
get-bill-info—BillIDで法案の詳細情報を取得します。発議者も含まれます。search-bills-by-name— 法案名をキーワードで検索します(最新の一致結果を最大 20 件取得)。任意でknessetNumによる絞り込みもできます。list-bills-by-status—KNS_Statusの生のStatusIDで法案を絞り込み、LastUpdatedDateの降順で並べます。list-recent-bills-by-stage— 指定した立法段階の法案を取得します:first-reading-approved、first-reading-plenum、second-third-approved、second-third-plenum、third-reading-plenum、passed。 注:クネセトでは第 2 読会と第 3 読会をまとめて 1 回の採決で行うため、second-third-approvedは「第 2 読会を通過した」法案に最も近いものです。passedは法案が法律になったことを意味します。list-bills-by-type— 法案を提出元別に取得します:private、government、committee。任意でknessetNumを指定できます。
委員会
get-committee-info—CommitteeIDで委員会の詳細を取得します。list-committees— 指定したクネセト番号の委員会を取得します。任意でonlyCurrentによる絞り込みもできます。
議員と会派
list-factions— 指定したクネセトの政党(会派)を一覧表示します。まずこのツールを使って、調べたい政党のFactionIDを確認してください。解散または合併した会派を除外するには、任意でonlyCurrentによる絞り込みができます。list-knesset-members— 所属政党とともにクネセト議員(MK)を一覧表示します。任意でfactionIdを指定すると、特定の政党の議員のみを取得できます(list-factionsと併用して ID を確認してください)。任意のonlyCurrentを指定すると、現職の所属のみを対象にできます。
政党の議員名簿を取得する方法:
- クネセト番号を指定して
list-factionsを呼び出し、政党のFactionIDを確認します。 - その
knessetNumとfactionIdを指定してlist-knesset-membersを呼び出し、議員一覧を取得します。
注:任期中に政党を移った議員は、所属期間ごとに 1 回ずつ表示されます。現職の所属のみを表示するには、onlyCurrent: true を指定してください。
プロンプトの例
サーバーを接続した後に試せる、ヘブライ語のプロンプト例です。それぞれ特定のツール、またはツールの組み合わせを使用します。
単一ツールのプロンプト
list-factions
- 「現在、第25期クネセトで活動している会派はどれですか?」
- 「第24期クネセトにあった会派をすべて表示してください。分裂または合併した会派も含めてください。」
list-knesset-members
- 「現在のクネセトで、リクード会派に所属する議員は誰ですか?」
- 「現在、第25期クネセトで在職中の全議員のリストをください。」
list-committees
- 「現在クネセトで活動している委員会はどれですか?」
- 「第24期クネセトで活動していた委員会をすべて教えてください。」
get-committee-info
- 「財務委員会の詳細を教えてください。」
- 「IDが2010の委員会の情報を教えてください。」
search-bills-by-name
- 「「年金」という語を含む法案を検索してください。」
- 「第25期クネセトで「公営住宅」に関する法案を探してください。」
list-bills-by-type
- 「第25期クネセトで最近提出された政府法案を表示してください。」
- 「最新の議員提出法案を20件教えてください。」
list-bills-by-status
- 「最近、第三読会を通過した法案はどれですか(ステータス118)?」
- 「第25期クネセトで、委員会により第二読会および第三読会に付託された法案を教えてください。」
list-recent-bills-by-stage
- 「最近、可決されて法令集に掲載された法律はどれですか?」
- 「現クネセトで第一読会を通過した法案を教えてください。」
get-bill-info
- 「IDが2145694の法案について、詳細と提案者をすべて教えてください。」
- 「この法案を提案したのは誰で、現在のステータスは何ですか?(BillID: ...)」
複数ツールのプロンプト
2つのツール
- 「第25期クネセトの超正統派会派をすべて表示し、その後「ユダヤ教連合」の議員を一覧にしてください。」 →
list-factions+list-knesset-members - 「現クネセトで「家庭内暴力」に関する法案を検索し、最も関連性の高い法案の詳細と提案者をすべて教えてください。」 →
search-bills-by-name+get-bill-info - 「クネセトで活動中の委員会をすべて表示し、その後、憲法委員会の詳細情報を教えてください。」 →
list-committees+get-committee-info - 「最近、第三読会を通過した法律はどれですか?最も重要なものを3件選び、それぞれの詳細を教えてください。」 →
list-recent-bills-by-stage+get-bill-info
3つのツール
- 「第25期クネセトの「イェシュ・アティッド」会派を探し、所属議員を確認してから、そのうち1人の名前に言及している法案を検索してください。例としてメラヴ・ミカエリを選んでください。」 →
list-factions+list-knesset-members+search-bills-by-name - 「最近の政府法案を10件、議員提出法案を10件表示し、その後、立法手続きが最も進んでいる議員提出法案の詳細を教えてください。」 →
list-bills-by-type(×2) +get-bill-info - 「「公共交通機関」に関する法案を検索し、第一読会を通過したもの(ステータス109)に絞り込んでから、最も活発な法案の詳細を教えてください。」 →
search-bills-by-name+list-bills-by-status+get-bill-info
4つ以上のツール
- 「第25期クネセトの「労働党」会派について、議員の一覧、各議員が活動している委員会、彼らが提案した法案の例を含む完全なプロフィールを作成してください。まず会派IDを探してください。」 →
list-factions+list-knesset-members+list-committees+search-bills-by-name+get-bill-info - 「現クネセトについて、最近可決された法律を5件、第二読会・第三読会に付託された法案を5件、第一読会に付託された法案を5件まとめた立法概要を作成してください。可決された法律のうち最も重要なものについて、詳細を教えてください。」 →
list-recent-bills-by-stage(×3) +get-bill-info - 「環境に関する立法に関心があります。「気候」と「汚染」に関する法案を検索し、提案者を含む各法案の詳細を教えてください。また、各提案者がどの会派に所属しているかを調べ、連立与党と野党をまたいでいるか確認してください。」 →
search-bills-by-name+get-bill-info+list-factions+list-knesset-members
API
以下のクネセト OData サービスを利用しています。
https://knesset.gov.il/Odata/ParliamentInfo.svc
OData API は KNS_Bill の各段階への移行日を公開していないため、並べ替えには LastUpdatedDate を使用します。
開発
サーバーのアドホックなテストには、MCP Inspector を使用できます。
npx @modelcontextprotocol/inspector node build/knesset-mcp-server.js
最小限のスモークテストが含まれています。
node test-mcp.mjs
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。