German public procurement data (OCDS) — semantic search, tender matching, company profiles について
vergabe-mcpは、ドイツの公共調達データを検索し、入札案件を企業プロフィールと照合するローカルMCPサーバーです。検索文とプロフィールの埋め込みをローカルで計算し、ベクトルとフィルター値をVergabe Dashboard APIに送信します。
主な機能
- 01入札案件のセマンティック検索
- 02入札案件の絞り込みと閲覧
- 03企業プロフィールとの案件照合
- 04ローカル企業プロフィールの管理
- 05埋め込みのローカル計算
活用シーン
- 01意味や条件で入札案件を検索
- 02企業プロフィールに合う案件を特定
- 03調達公告と関連履歴を確認
MCP 対応
MCPクライアントに、入札検索、絞り込み、公告取得、企業プロフィール管理など11種類のツールを公開します。サーバーはローカルで動作してVergabe Dashboard APIに接続し、検索文とプロフィールのテキストはローカルに保ったまま、ベクトルや選択したデータをAPIに送信します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
vergabe-mcp
ドイツの公共調達を検索するローカル MCP サーバーです。AI アシスタント(Claude、GPT など)を Vergabe Dashboard API に接続し、セマンティック検索、入札案件とのマッチング、企業プロフィールの管理を行います。
検索クエリや企業プロフィールがマシンの外に送信されることはありません。 多言語対応の ONNX モデルを使用してローカルで埋め込みを生成し、API に送信するのは生成された埋め込みベクトル、OCID、フィルター値のみです。データ最小化を設計段階から徹底しています。
ホスト型の代替手段: AI アシスタントで検索するだけであれば、インストール不要のホスト型 MCP コネクター(OAuth サインイン)をご利用いただけます。詳しくはセットアップガイドをご覧ください。このローカルサーバーは、ご自身の環境でクライアントを実行するためのものです。検索クエリとプロフィールはローカルで埋め込みに変換され、マシンの外に送信されるのはベクトルとフィルター値のみです。また、API キー機能も利用できます。
ドイツの公共調達について初めて知る方へ:Vergabe Dashboard ナレッジベースでは、eForms、EU の基準額、入札のライフサイクルについて解説しています。また、KI für Vergabeでは、このサーバーのホスト型 AI 側について紹介しています。
クイックスタート
1. API キーを取得する
vergabe-dashboard.qune.deで登録し、API キーを作成してください。API キーの利用には有効な Pro プラン(月額 €99)が必要です(ローカルサーバー自体は無料のオープンソースです。API の利用制限はキーの発行に適用されます)。
2. インストールする
npx を使用する場合(最も簡単 — 適切なバイナリが自動的にダウンロードされます):
npx @qune-tech/vergabe-mcp --api-key sk_live_YOUR_KEY_HERE
または、ビルド済みバイナリを GitHub Releases からダウンロードします:
| プラットフォーム | ダウンロード |
|---|---|
| Linux x86_64 | vergabe-mcp-linux-x86_64.tar.gz |
| macOS Apple Silicon | vergabe-mcp-macos-arm64.tar.gz |
| Windows x86_64 | vergabe-mcp-windows-x86_64.zip |
Linux / macOS:
# Example for Linux x86_64 — adjust the filename for your platform
tar xzf vergabe-mcp-linux-x86_64.tar.gz
sudo mv vergabe-mcp /usr/local/bin/vergabe-mcp
Windows: zip を展開し、vergabe-mcp.exe を PATH 上の任意の場所に移動します。
または、ソースからビルドします:
git clone https://github.com/qune-tech/vergabe-mcp.git
cd vergabe-mcp
cargo build --release
# Binary at target/release/vergabe-mcp
3. AI クライアントを設定する
Claude Desktop — claude_desktop_config.json を編集します:
npx を使用する場合:
{
"mcpServers": {
"vergabe": {
"command": "npx",
"args": ["-y", "@qune-tech/vergabe-mcp", "--api-key", "sk_live_YOUR_KEY_HERE"]
}
}
}
バイナリを直接使用する場合:
{
"mcpServers": {
"vergabe": {
"command": "vergabe-mcp",
"args": ["--api-key", "sk_live_YOUR_KEY_HERE"]
}
}
}
Claude Code — プロジェクトのルートに .mcp.json を追加します:
npx を使用する場合:
{
"mcpServers": {
"vergabe": {
"command": "npx",
"args": ["-y", "@qune-tech/vergabe-mcp", "--api-key", "sk_live_YOUR_KEY_HERE"]
}
}
}
バイナリを直接使用する場合:
{
"mcpServers": {
"vergabe": {
"command": "vergabe-mcp",
"args": ["--api-key", "sk_live_YOUR_KEY_HERE"]
}
}
}
Cursor — Settings → MCP Servers → Add:
npx を使用する場合:
- Command:
npx - Args:
-y @qune-tech/vergabe-mcp --api-key sk_live_YOUR_KEY_HERE
バイナリを直接使用する場合:
- Command:
vergabe-mcp - Args:
--api-key sk_live_YOUR_KEY_HERE
LM Studio — Settings → MCP → Add Server:
- + Add Server をクリックし、STDIO を選択します
- 次の項目を入力します:
npx を使用する場合:
- Name:
vergabe - Command:
npx - Arguments:
-y @qune-tech/vergabe-mcp --api-key sk_live_YOUR_KEY_HERE
バイナリを直接使用する場合:
- Name:
vergabe - Command:バイナリのフルパス(例:
/usr/local/bin/vergabe-mcp) - Arguments:
--api-key sk_live_YOUR_KEY_HERE
- Save をクリックします
- チャットでツールの使用に対応したモデルを選択し、
vergabeサーバーを有効にします
LM Studio で使用するには、ツール呼び出しに対応したモデル(Qwen 2.5、Mistral、Llama 3.1 以降など)が必要です。 小型モデルでは 11 個すべてのツールを安定して使用できない場合があります。7B 以上を推奨します。
sk_live_YOUR_KEY_HERE を実際の API キーに置き換えてください。VERGABE_API_KEY 環境変数を使ってキーを渡すこともできます。
利用可能なツール(11)
| ツール | 説明 |
|---|---|
search_text | すべての入札案件を意味検索します(クエリはローカルで埋め込み処理されます) |
list_releases | フェーズ、CPV プレフィックス、国、金額範囲、締切、発注者、調達方式で入札案件を絞り込み、閲覧します |
get_release | 1 つの OCID に対応する未加工の eForms XML エンベロープです(省略可能な notice_id で関連する通知を選択します) |
linked_notices | 調達案件の通知の系譜(PIN→CN→CAN)を {ocid, notice_id} 参照として取得します |
get_index_info | API の健全性とバージョン、埋め込み処理の状態、埋め込みコントラクトの確認情報を取得します |
create_company_profile | 自社のマッチング用プロフィールを作成します(ローカルに保存されます) |
update_company_profile | 既存のプロフィールを更新します |
get_company_profile | プロフィールの詳細を表示します |
list_company_profiles | すべてのプロフィールを一覧表示します |
delete_company_profile | プロフィールを削除します |
match_tenders | 意味的類似度に基づき、すべての入札案件とプロフィールを照合します(ベクトルの埋め込み処理はローカルで行われます) |
CLI オプション
Usage: vergabe-mcp [OPTIONS]
Options:
--db <DB> Local profiles database [default: profiles.db]
--data-dir <DIR> Data directory [default: data]
--api-url <URL> Vergabe Dashboard API [default: https://vergabe-dashboard.qune.de]
--api-key <KEY> API key [env: VERGABE_API_KEY]
-h, --help Print help
仕組み
LLM ←stdio→ vergabe-mcp (local)
│ Local: company profiles (SQLite) + sentence embedder (ONNX)
│ HTTPS: vectors, OCIDs, filter values, API key
└──HTTPS──→ Vergabe Dashboard API (/api/v1)
MCP サーバーはお使いのマシン上でローカルに実行されます。
- 会社プロフィール(名称、説明、CPV への関心、所在地)はローカルの SQLite データベースに保存され、ネットワークの外部に送信されることはありません。
- テキストの埋め込み処理は、多言語 ONNX モデル(multilingual-e5-small、384 次元)を使用してローカルで実行されます。検索クエリには
query:プレフィックスが使用され、POST /api/v1/search/vectorに送信されます。プロフィールの説明にはpassage:プレフィックスが使用され、POST /api/v1/match/vectorに送信されます。 - API に送信されるのは、埋め込みベクトル(384 個の浮動小数点数)、取得する OCID、フィルター値、および API キーのみです。クエリとプロフィールのテキストはローカルにとどまります。
プライバシーとデータフロー
お使いのマシン上に保持される情報:プロフィールのテキスト、検索クエリのテキスト、CPV への関心、所在地。
API から確認できる情報:埋め込みベクトル、閲覧した OCID、使用したフィルター値、API キーです。これらからは商業的関心(確認したセクター、発注者、金額帯、入札案件)が明らかになりますが、元のテキストは明らかになりません。埋め込みベクトルは派生した仮名化表現であり、データの最小化であって、完全な排除ではありません。
初回実行時のモデルダウンロード: 初回使用時に、サーバーは埋め込みモデルを huggingface.co からダウンロードします。
- 内容:
model.onnxとtokenizer.json、合計約 118 MB。 - タイミング: 埋め込み処理が初めて実行されるときです。その後は
~/.cache/vergabe/models/multilingual-e5-smallにキャッシュされます。 - 取得元:
huggingface.co(米国で運営されているサードパーティー)。このダウンロードでユーザーデータが送信されることはありません。通常のモデルダウンロードのみが行われます。
エアギャップ環境やエンタープライズ環境にインストールする場合は、上記のキャッシュディレクトリに model.onnx と tokenizer.json を配置してください。これにより、実行時のダウンロードがスキップされます。
要件
- Pro プラン(月額 €99)の vergabe-dashboard.qune.de API キー
- ONNX モデル用に約 120 MB のディスク容量(初回実行時に自動でダウンロードされます)
- API に接続するためのインターネット接続
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。