mcpField
O
OpenTK Model Context Protocol Server

OpenTK Model Context Protocol Server

ローカル
github.com/r-huijts法務・行政2352 週間前に更新

OpenTK Model Context Protocol Server について

OpenTK MCP Server は、オランダ下院(Tweede Kamer)の議会データにアクセスする MCP サーバーで、OpenTK プロジェクトをラップして構築されています。議会文書、活動、議員情報を検索・分析したい研究者や利用者を対象とし、AI アシスタントから標準的なインターフェースで利用できます。

主な機能

  1. 01引用符、NOT、OR、NEAR 演算子による文書検索
  2. 02議員情報と委員会の所属の確認
  3. 03ページ送りに対応した文書全文の読み取り
  4. 04NLP による関連度、キーワード、トピックの分析

活用シーン

  1. 01議会における AI 政策への各党の立場を比較する
  2. 02過去6か月の気候政策に関する議論を政党別に確認する

MCP 対応

本プロジェクトは MCP サーバーであり、オランダ議会データの検索、読み取り、分析のための 17 のツールを MCP クライアントに公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"opentk": {
"command": "npx",
"args": [
"-y",
"@r-huijts/opentk-mcp"
]
}
}
}
起動コマンドnpx -y @r-huijts/opentk-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@r-huijts/opentk-mcp

ツール

17

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
pagenumberいいえページ分割された結果のページ番号(デフォルト:1)。各ページには文書が 10 件含まれます。

詳細

OpenTK Model Context Protocol Server

重要な帰属表示:この MCP サーバーは、Bert Hubert が開発した優れた OpenTK プロジェクト をラッパーとして構築されています。OpenTK プロジェクトは、使いやすいインターフェースを通じて、オランダの議会データにかつてないほどアクセスしやすくします。プロジェクトの詳細は、Bert の記事「Welkom bij OpenTK」をご覧ください。基盤となるデータへのアクセスと処理に関する功績はすべて、Bert Hubert と、オープンガバメントデータへの貢献によるものです。

標準化されたインターフェースを通じて、大規模言語モデル(LLM)とオランダの議会データをつなぐブリッジです。この MCP サーバーは、Tweede Kamer のオランダ議会文書、討論、議員情報へのアクセスを提供します。

OpenTK Model Context Protocol Server MCP server

実際の自然言語でのやり取りの例

例 1:AI 政策に関する各党の立場を比較する

ユーザーの質問:「オランダ下院での AI 分野における野党 PvdA、GroenLinks、Volt の活動と、与党 BBB の活動を比較した場合、過去 1 年間に示された立場や見解に沿って、短期的に共同で取り組めることは何ですか?OpenTK の情報源を使用してください。」

例 2:気候政策に関する議会での議論を調査する

ユーザーの質問:「オランダの気候政策と排出削減目標に関する最近の議会討論を分析したいです。過去 6 か月間の主な議論と、各党が示した主な立場を特定するのを手伝ってもらえますか?」

例 3:特定の国会議員の投票記録に関する情報

ユーザーの質問:「Pieter Omtzigt 議員の医療制度改革法案に関する投票記録はどのようなものですか?また、他の無所属議員とは立場がどのように異なりますか?このテーマに関する動議を提出したことはありますか?」

例 4:最近の住宅関連法案の動向を探す

ユーザーの質問:「過去 1 年間の、手頃な価格の住宅に関する法案をめぐる議会文書や討論のうち、特に重要なものは何ですか?とりわけ、賃貸市場の危機に対処する提案に関心があります。」

例 5:複数の文書を効率的に優先順位付けする(新機能 - スマート分析)

ユーザーの質問:「先月の気候政策に関する文書を 15 件見つけました。すべてを最後まで読まずに、再生可能エネルギーへの補助金と風力発電に関する法案に最も関連する 3 件をすばやく特定できますか?」

例 6:議会文書から主要なトピックを抽出する(新機能 - スマート分析)

ユーザーの質問:「文書 2024D39058 で取り上げられている主なトピック、キーワード、政党は何ですか?全文を読み始める前に、内容を把握したいです。」

例 7:特定の委員会に所属する国会議員を探す

ユーザーの質問:「現在、財務委員会と経済問題委員会の両方に所属している国会議員は誰ですか?所属政党は何ですか?また、最近、共同で何かを提案しましたか?」

例 8:デジタルセキュリティに関する今後の議会活動を特定する

ユーザーの質問:「来月、サイバーセキュリティやデジタルインフラに関する委員会会合や討論の予定はありますか?参加する大臣と、取り上げられる具体的なトピックを教えてください。」

プロジェクトのコンセプト

OpenTK プロジェクトは、標準化されたインターフェースを通じてオランダ議会のデータにアクセスできる Model Context Protocol(MCP)サーバーです。LLM とオランダ議会の情報システムをつなぐ橋渡しとして機能し、AI アシスタントが議会の文書、討論、議員情報を検索、取得、分析できるようにします。

このサーバーは @modelcontextprotocol/sdk を使用して MCP 仕様を実装し、AI モデルと外部データソース間の構造化された通信を可能にします。明確に定義されたツールとエンドポイントを通じて議会データを公開することで、OpenTK は AI アシスタントに次の機能を提供します。

  1. 複雑なクエリを使用して議会の文書を検索する
  2. 国会議員に関する情報にアクセスする
  3. さまざまな形式の公式文書を取得し、文書の全文を読む
  4. 議会の活動や議事を分析する
  5. 立法案件や政府の公約を追跡する
  6. 全文を読み込む前に、NLP を使用して文書の関連性をインテリジェントに分析する(v1.0.16 の新機能)
  7. 効率的な文書トリアージのために、キーワード、エンティティ、トピックを抽出する(v1.0.16 の新機能)

このプロジェクトでは、主なデータソースとして Bert Hubert の tkconv サービスを利用しています。tkconv は、オランダ議会の公式 API よりもアクセスしやすい API を提供します。

機能

議会データへの基本アクセス
  • 高度なクエリ機能(引用符、NOT、OR、NEAR 演算子)を使って議会文書を検索
  • 国会議員の詳細情報と委員会への所属情報にアクセス
  • スマートな分割機能を使用して文書(PDF、Word)の全文を取得
  • 立法案件、政府の活動、投票結果を追跡
  • 議会の議事や今後の活動にリアルタイムでアクセス
スマートな文書分析(v1.0.16 の新機能) 🎯
  • NLP による関連性分析:全文を読み込む前に文書をインテリジェントに分析
  • TF-IDF キーワード抽出:文書内の特に重要な用語を 10~15 個特定
  • オランダ語に最適化されたエンティティ認識:人物(国会議員、閣僚)、政党(VVD、PVV、CDA、D66 など)、組織を自動検出
  • トピック分類:文書を 10 の主要な政治テーマ(気候、経済、医療、教育など)に分類
  • 関連性スコアリング:特定の検索語に対する関連性に基づいて文書をランク付け(0~100 点)
  • コンテキスト効率の高いトリアージ:複数の文書を評価する際のコンテキストウィンドウの使用量を 80~90%削減
高度な文書ナビゲーション
  • あいまい一致を使用して特定の人物の出現箇所を検索
  • あいまい一致を使用して政党への言及箇所を検索
  • 文字オフセットを使用して長い文書を効率的に移動
  • ページネーションに対応した順次読み込み

利用可能なツール

OpenTK は、オランダ議会のデータにアクセスするための 17 個の専用ツールを提供します。

概要と探索
  • get_overview:最近の議会活動と国会議員の誕生日の包括的な概要(ページネーション対応)
  • birthdays_today:今日誕生日を迎える国会議員の一覧
  • list_persons:所属政党を含む現職国会議員の完全な一覧
検索とフィルター
  • search_tk:高度なクエリ構文を使って、すべての議会データを包括的に検索
  • search_tk_filtered:特定のカテゴリ(Document、Activiteit、Zaak)内を検索
  • search_by_category:特定の文書タイプ(質問、動議、すべて)を検索
文書インテリジェンス(新機能) 🎯
  • analyze_document_relevance:キーワード抽出、エンティティ認識、関連性スコアリングを含む、NLP による文書分析
  • get_document_content:3 つの読み込みモード(対象指定、順次、全文)で文書の内容(PDF/DOCX)を取得
  • find_person_in_document:あいまい一致を使用して、文書内の人物の出現箇所をすべて特定
  • find_party_in_document:文書内の政党の出現箇所をすべて特定
ドキュメントのメタデータ
  • get_document_details:ドキュメントに関する構造化メタデータを取得します
  • get_document_links:ドキュメントの URL をクリック可能な Markdown リンクに変換します
議会の構成
  • get_committees:すべての議会委員会を一覧表示します
  • get_committee_details:特定の委員会に関する詳細情報を取得します
活動と投票
  • get_upcoming_activities:今後の議会討論と会議を取得します
  • get_voting_results:党の立場を含む、最近の投票結果を取得します
メディア
  • get_photo:国会議員の公式肖像写真を取得します

インストール

1. NPM パッケージですぐに始める(推奨)

公開済みの NPM パッケージを使用するのが、最も手早く始める方法です。

npx @r-huijts/opentk-mcp
2. NPM パッケージを使用して Claude Desktop を利用する

Claude の設定ファイル(~/Library/Application Support/Claude/claude_desktop_config.json)を更新します。

{
  "mcpServers": {
    "opentk": {
      "command": "npx",
      "args": [
        "-y",
        "@r-huijts/opentk-mcp"
      ]
    }
  }
}

設定の別の方法:

MultiServerMCPClient(Python)の場合:

mcp_client = MultiServerMCPClient({
    "opentk": {
        "command": "npx",
        "args": ["-y", "@r-huijts/opentk-mcp"],
        "transport": "stdio",
    }
})
3. ソースからインストールする(開発)

コードを変更する場合や、開発に貢献する場合は、次の手順に従ってください。

リポジトリをクローンする:

git clone https://github.com/r-huijts/opentk-mcp.git
cd opentk-mcp

依存関係をインストールする:

npm install

プロジェクトをビルドする:

npm run build

サーバーを起動する:

npm start

ローカル開発用に Claude Desktop を設定する:

Claude の設定ファイルを更新します。

{
  "mcpServers": {
    "opentk-local": {
      "command": "node",
      "args": [
        "/absolute/path/to/your/opentk-mcp/dist/index.js"
      ]
    }
  }
}

/absolute/path/to/your/opentk-mcp/ を、インストール先の実際のパスに置き換えてください。

4. 公開(メンテナー向け)

スコープ付きパッケージの新しいバージョンを公開するには:

npm run build
npm publish --access=public

注:スコープ付きパッケージを公開するには、一般公開を可能にする --access=public フラグが必要です。

検索機能

検索機能は特に高度で、以下に対応しています。

  • キーワード検索:kunstmatige intelligentie
  • 完全一致検索:"kunstmatige intelligentie"
  • 除外検索:Hubert NOT Bruls
  • ブール演算子:OR、NEAR()

実装では、さまざまな例外的なケースに対応しています。

  • 検索クエリ内の引用符を保持します
  • 適切なコンテンツタイプのヘッダーを使用します
  • API エラーに対するフォールバック機構を実装しています
  • 意味のあるエラーメッセージを提供します

エラー処理

API サービスには、堅牢なエラー処理が備わっています。

  • API エラー(4xx、5xx)を適切に処理します
  • 複雑なクエリが失敗した場合は、簡略化したクエリにフォールバックします
  • デバッグ用に詳細なエラーメッセージを提供します
  • 標準エラー出力(stderr)に適切にログを記録します(標準出力(stdout)に出力すると、stdio トランスポートが機能しなくなるためです)

設定

サーバーは、主要なデータソースとして Bert Hubert の tkconv サービスに接続します。このサービスは、オランダ議会の公式 API よりも使いやすい API を提供します。Bert Hubert が作成したこのサービスは、オランダの議会データの収集、整理、提供という複雑な処理を担い、開発者が使いやすい形式でデータを提供します。この基盤の上に構築された MCP サーバーは、AI アシスタントがこの貴重なデータを利用するための標準化されたインターフェースを提供します。

ライセンス

MIT

まとめ

OpenTK MCP サーバーは、オランダの議会データにアクセスするための堅牢で構造化されたインターフェースを提供し、Model Context Protocol を介して AI アシスタントから利用できるようにします。モジュール式の設計、包括的な API、NLP を活用したドキュメント分析(v1.0.16)、徹底したテストにより、AI を活用した調査、分析、情報検索において、議会情報への信頼性の高いアクセスを実現します。

設定が完了すると、Claude は OpenTK MCP サーバーを介して、検索、ドキュメント分析、国会議員情報、委員会の追跡、投票結果などに対応する 17 種類の専用ツールを利用し、オランダの議会データにアクセスできるようになります。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。