Italy Tenders について
Italy Tendersは、ANACの月次オープンデータを使い、直近の期間を対象にイタリアの公共調達公告を検索するMCPサーバーです。キーワード、CPV、発注者、地域、日付による検索と、CIGによる詳細取得に対応します。
主な機能
- 01キーワード、CPV、発注者、県で検索
- 02公告日による期間指定
- 03CIGによる公告詳細の取得
- 04金額、状態、期限、結果の表示
- 05読み込み済みデータ期間の表示
活用シーン
- 01発注者や県を指定した公告の検索
- 02CPV分類による入札案件の絞り込み
- 03CIGを使った公告と結果の確認
- 04該当なしと未収録期間の区別
MCP 対応
MCPクライアント向けに、ANACのイタリア調達公告の検索と詳細取得ツールを提供します。Pipeworxゲートウェイ内のデータストアに依存し、単独インストールでは検索できるデータがありません。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/italy-tenders/mcpclaude mcp add --transport http pipeworx-io-italy-tenders https://gateway.pipeworx.io/italy-tenders/mcp{"mcpServers":{"pipeworx-io-italy-tenders":{"type":"http","url":"https://gateway.pipeworx.io/italy-tenders/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-italy-tenders":{"type":"http","url":"https://gateway.pipeworx.io/italy-tenders/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-italy-tenders":{"type":"http","url":"https://gateway.pipeworx.io/italy-tenders/mcp"}}}{"mcpServers":{"pipeworx-io-italy-tenders":{"serverUrl":"https://gateway.pipeworx.io/italy-tenders/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
43| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| q | string | いいえ | question の別名。 |
| ask | string | いいえ | question の別名。 |
| text | string | いいえ | question の別名。 |
| input | string | いいえ | question の別名。 |
| packs | array | いいえ | 任意。ルーティング対象をこれらのパックスラッグに限定します(例:["sec-form-d","sec-13f"])。その場合、ルーターは該当パック内のツールのみを選択します。省略すると、デフォルトの全カタログへのルーティングになります。スラッグは list_packs / search_packs / https://pipeworx.io/directory から取得できます。リストにない、または不明なスラッグは無視され、_meta.pack_scope.ignored に記載されます。該当するスラッグが 1 つもない場合は、カタログ全体にルーティングし、_meta.pack_scope.full_catalog:true を設定します(空の回答にはなりません)。 |
| query | string | いいえ | question の別名。 |
| prompt | string | いいえ | question の別名。 |
| message | string | いいえ | question の別名。 |
| question | string | はい | 自然言語での質問またはリクエスト。query、q、prompt、text、input、ask、message をエイリアスとして使用できます。 |
詳細
@pipeworx/italy-tenders
イタリアの公共調達入札公告。ANAC(Autorità Nazionale Anticorruzione)は、イタリアの入札・契約登録簿を運営する全国反汚職機関です。Fleet #3091。
Pipeworx の一部です。AI エージェントを1807以上の稼働中データソースに接続するMCPゲートウェイです。これは独立した非公式の統合であり、上流プロバイダーとは提携関係になく、承認も受けておらず、公開もされていません。
ツール
it_tender_search(query?, cpv?, buyer?, province?, date_from?, date_to?, limit?)-- 自由入力キーワード(タイトル+CPVカテゴリの説明)、CPV分類コード/プレフィックス、発注者(契約当局)名の部分文字列、イタリアの県、公開日の範囲(デフォルトは過去90日間)で入札公告を検索します。各公告のCIG、タイトル、発注者、県/州、契約種別、金額(EUR)、ステータス、CPV、公開日、入札期限、およびANACに記録がある場合は結果を返します。it_tender_detail(cig)-- CIG(Codice Identificativo Gara)で指定した公告の完全な記録を返します。発注者の納税者番号、コストセンター、手続き種別、実施方式、ロット数、結果の通知日が含まれます。
すべての応答には、source、source_url、licence、data_as_of が含まれます。また、(it_tender_search/該当なしの応答には)window_from/window_to も含まれ、このパックが現在保持している月の範囲を示します。これにより、呼び出し元は「このトピックの入札がない」のか、「その日付範囲のデータが読み込まれていない」のかを区別できます。
認証
キーは不要です。ツールはデータを保持するPipeworxゲートウェイ経由でのみ応答します。単独でインストールしても読み取れるデータはなく、その場合、すべてのツールは空のリストを返すのではなく、「store is not bound in this runtime」という明確なエラーを返します。
データソース
-
Autorità Nazionale Anticorruzione (ANAC) -- イタリアの全国反汚職機関で、国内の公共調達公告登録簿を運営しています。ANACは登録簿をオープンデータとして公開しています(dati.anticorruzione.it、CKANポータル)が、月次の一括ダンプのみです。すべての契約リソースで
datastore_active: false(サーバー側の検索/フィルタリングなし)となっているため、このパックはリクエストごとにプロキシするのではなく、ANAC独自の月次CSV「cig-YYYY」からデータストアを構築します(scripts/italy-tenders/load-data.mjs)。ANACが公開しているライブエンドポイントは、CIGを1件指定する検索のみで、検索対象を見つける方法がありません。このため、このパックが提供するキーワード/発注者/CPV/日付による検索には役立ちません。ライセンス(ANAC独自のCKAN
package_showAPIからの原文引用。2026-10-15にライブで確認):cig-YYYYパッケージには"license_title": "Creative Commons Attribution Share-Alike 4.0"、"license_id": "CC-BY-SA-4.0"と記載されています。各月のリソースにも"license_type": "https://w3id.org/italia/controlled-vocabulary/licences/A31_CCBYSA40"が付与されています。 CC-BY-SA-4.0では、クレジット表示と継承を条件に、再利用と再配布が明示的に認められています。このケースには「ミラーには再利用許諾が必要」というルール(mirror-needs-grant-proxy-does-not、Bruce、2026-09-08)は当てはまりません。すでにライセンスで許諾されているためです。クレジット表示は、すべての応答のsource/source_urlフィールドに含まれています。
既知の不足点――このパックを拡張する前にお読みください
このパックに含まれるのは、直近の期間を切り取ったデータであり、ANAC の全履歴ではありません。 cig 登録は 2007 年まで遡ります(ANAC のポータルでは cig-2007 から cig-2025 まで、年ごとに別々のデータセットとして公開されています)。1 か月分の CSV だけで約 11 万 5,000~12 万行、非圧縮で約 100MB になります(2025 年 9 月のデータで実測)。約 19 年分の全履歴を 1 つの D1 データベースに読み込むと、ここにある他のストアベースのパックをすべてはるかに上回る規模になります。it_tender_search/it_tender_detail は、結果が見つからなかった場合の応答ごとに、読み込み済みの期間(it_meta テーブルの window_from/window_to)を返します。そのため、呼び出し元は本当に該当する結果がない場合と、読み込み済みの期間外の日付を指定した場合を区別できます。
このデータを ANAC が OCDS 形式で提供するもの(ocds-appalti-ordinari-YYYY、こちらも月次更新)も確認しましたが、このパックの更新には採用しませんでした。月ごとの JSON リリースパッケージは 748MB~3.1GB に達し(2026-03 と 2025-09 のデータで実測)、同じ公告に対応する、ここで使用している CSV の cig-YYYY リソースよりはるかに大きいためです。また、ANAC/イタリアのデータは、すでに mcps/open-contracting に別途、更新頻度の低い形で含まれています(OCP Data Registry が管理する、18 か国の OCDS ミラーを毎週更新)。このカバレッジは実際に確認できましたが、このパックの作成時点では古い状態でした(oc_coverage にイタリアの latest_release の記録がなく、サンプルの行も 2021~2022 年のもの)。このパックが解消するのは、まさにその不足、すなわち ANAC/イタリアの直近のデータを含む期間です。
it_tender_detail のライブ情報拡充機能(getSmartCig)は接続されていません。 以前に取り下げられたビルド(fleet #3088)では、api.anticorruzione.it/apicig/.../getSmartCig/{cig} による単一の CIG のライブ検索が記載されていました。このビルド中に推測したパスの候補はすべて 404 を返し、ANAC 自身の API ゲートウェイ(api.anticorruzione.it/apicig/swagger/v1/swagger.json)も 404 を返したため、正確なライブパスを確認できませんでした。これは重要な問題ではありません。読み込み済みの cig-YYYY CSV には、CIG ごとの公告詳細(ステータス、結果、取り消しに関する項目)がすでにすべて含まれているため、it_tender_detail はストアのデータだけで完全に応答できます。後に有効なライブエンドポイントが見つかった場合に追加されるのは、月次更新の合間に ANAC が伝える情報の拡充のみです。
データの更新
node scripts/italy-tenders/load-data.mjs --months 2026-09,2026-10 [--retain-from 2025-11] [--init-schema on the very first run]
-- ANAC から指定した各月の cig-YYYY CSV zip をダウンロードし、行をストリーム処理して D1 に upsert します(cig をキーにした INSERT OR REPLACE です。すでに存在する月を再読み込みすると、ANAC が更新した行だけが再更新されます。たとえば、公告の数週間後に結果が伝えられた場合などです)。Pipeworx Cloudflare アカウントにログイン済みの wrangler と、unzip CLI が必要です。
GitHub ワークフロー .github/workflows/italy-tenders-refresh.yml は毎月実行され、直近の結果更新を取り込むために当月と過去 2 か月分を再取得し、テーブルが際限なく増えないよう --retain-from を先に進めます。
デプロイ前のスモークテスト(本番用 D1 は不要)
node --experimental-strip-types scripts/italy-tenders/build-local-sqlite.mjs \
--csv <a downloaded cig_csv_YYYY_MM.csv> --ym YYYY-MM --out /tmp/italy-tenders.sqlite
node --experimental-strip-types scripts/italy-tenders/smoke-local.mjs /tmp/italy-tenders.sqlite
実際の ANAC 月次 CSV から構築したローカル SQLite ファイルに対して、D1Like アダプターを使い、パックの実際の callTool() を実行します。構成は scripts/fracfocus/{build-local-sqlite,smoke-local}.mjs と同じです。
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します。
{
"mcpServers": {
"italy-tenders": {
"url": "https://gateway.pipeworx.io/italy-tenders/mcp"
}
}
}
このエンドポイントが実際に提供するもの
https://gateway.pipeworx.io/italy-tenders/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 も、同じゲートウェイと同じ1807以上のデータソースにアクセスします。異なるのは、どのパックのツールが直接一覧表示されるかだけです。どちらからでも ask_pipeworx を使ってすべてのツールにアクセスできます。
MCP クライアントがない場合:HTTP 経由で呼び出す
curl -X POST https://gateway.pipeworx.io/v1/tools/it_tender_search \
-H 'Content-Type: application/json' \
-d '{"buyer":"COMUNE DI MILANO","date_from":"2025-12-01","date_to":"2025-12-31","limit":5}'
最初の呼び出しにアカウントは不要です。任意のツールの情報を確認するには、GET https://gateway.pipeworx.io/v1/tools/it_tender_search を実行します。ツールを探すには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を実行します。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージは、ローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントも、ゲートウェイとの往復通信も不要です。
{
"mcpServers": {
"italy-tenders": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-italy-tenders"]
}
}
}
または、起動を確認するために直接実行します。
npx -y @pipeworx/mcp-italy-tenders
stdin/stdout 経由で MCP を使用し、このパックのツールのみについて initialize/tools/list/tools/call に応答します。上記のゲートウェイ接続で追加される共有メタツールは含まれません。同じソース、同じツールで、ask_pipeworx によるルーティングはありません。
ask_pipeworx の使用
ツールを直接呼び出す代わりに、自然な英語で質問できます。上記のパックエンドポイントでも、フルゲートウェイでも利用できます。
ask_pipeworx({ question: "your question about Italy Tenders data" })
ゲートウェイが適切なツールを選択し、引数を自動的に設定します。
詳細
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。