procureport について
procureportは、韓国の公共調達データをCLIとstdio MCPサーバー経由で提供し、入札、落札、契約、統計、商品、公共ショッピングモールの調査に使えます。簡易検索に加え、汎用APIアクセスとローカルのAPI探索ツールを備えています。
主な機能
- 01入札公告、落札、契約の検索
- 02調達統計の照会
- 03商品カタログとモールの閲覧
- 04API結果のページングと集約
- 05サービスと操作の探索
- 06CLIとstdio MCPサーバー
活用シーン
- 01業種別の最近の入札公告の検索
- 02年度別調達統計の確認
- 03商品名または会社名での商品検索
- 04照会前のAPI操作の探索
MCP 対応
stdio MCPサーバーは、調達検索、統計、カタログ、ショッピングモール、汎用API、ページング、ローカルAPI探索のツールを公開します。API呼び出しツールにはNARAMARKET_SERVICE_KEYが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
15掲載時のツール一覧 · 1 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| page | number | いいえ | 返すページ番号。 |
| query | string | いいえ | 商品リストを絞り込む検索クエリテキスト。 |
| page_size | number | いいえ | 1ページあたりの項目数。 |
詳細
procureport
procureport は、韓国の公共調達データ(Nara Market/data.go.kr API ファミリー)を、コマンドラインインターフェースと stdio MCP サーバーを提供する単一のバイナリで利用できるようにします。入札公告、落札情報(契約者決定)と契約、調達統計、登録製品カタログ、公共ショッピングモールを扱います。
設定
API 呼び出しツールにはサービスキーが必要です。
export NARAMARKET_SERVICE_KEY=<your data.go.kr service key>
呼び出し先は data.go.kr 形式のエンドポイントです。ベース URL は NARAMARKET_API_URL で変更できます(デフォルトは
https://apis.data.go.kr)。リクエストは
{base}/{service}/{operation}?serviceKey={key}&{params} の形式です。
4 つのツールはローカルのみで動作します。4 つの API サービスとそのオペレーションの組み込みカタログから応答するため、設定なしで利用できます。該当するのは server_info、
get_all_api_services_info、get_api_operations、get_data_exploration_guide です。その他のツールはすべて、まずサービスキーを確認します。キーがない場合は、リクエストを試みる前に明確なエラーを返します。
インストール
npx @reneturcios/procureport server-info
または、コンテナーイメージを実行します。
docker run -i -e NARAMARKET_SERVICE_KEY=... ghcr.io/cloudcorprecords/procureport
コンテナーはデフォルトで MCP サーバーとして起動します(下記参照)。CLI として使用するには、CLI 引数を渡してください。
CLI
procureport server-info
procureport services
procureport operations shopping_mall
procureport guide
procureport crawl chair --page 1 --page-size 20
procureport attributes PRD-42
procureport recent-bids --days 7 --business-type 물품
procureport successful-bids 공사
procureport statistics-year 2025
procureport search-mall monitor --company Acme
procureport --version
終了コード:成功時は 0、呼び出しが失敗した場合(サービスキーの欠落や上流 API のエラーを含む)は 1、使用方法に誤りがある場合は 2 です。
MCP サーバー
npx -y @reneturcios/procureport mcp
MCP クライアントの設定:
{
"mcpServers": {
"procureport": {
"command": "npx",
"args": ["-y", "@reneturcios/procureport", "mcp"],
"env": { "NARAMARKET_SERVICE_KEY": "<your data.go.kr service key>" }
}
}
}
ツール
基本:
| ツール | 入力 | 返される内容 |
|---|---|---|
crawl_list | query(任意)、page、page_size(任意) | 製品リストの 1 ページ分です。 |
get_detailed_attributes | product_id(必須) | 1 つの製品の詳細な属性です。 |
server_info | (なし) | サーバーの識別情報、ツール一覧、サービスの概要です。ローカルで動作します。 |
汎用 API アクセス(各ツールには operation(必須)と任意の params オブジェクトを指定します):
| ツール | サービス |
|---|---|
call_public_data_standard_api | 入札公告、落札情報、契約です。 |
call_procurement_statistics_api | 調達統計 — 14 オペレーションです。 |
call_product_list_api | 製品カタログ — 12 オペレーションです。 |
call_shopping_mall_api | ショッピングモール — 9 オペレーションです。 |
便利なツール:
| ツール | 入力 | 返される内容 |
|---|---|---|
get_recent_bid_announcements | days、business_type(どちらも任意) | 自動計算された直近期間の入札公告です。 |
get_successful_bids_by_business_type | business_type(必須) | 事業種別の落札情報です。물품、용역、공사、외자 などの韓国語名は、自動的にコードに変換されます。 |
get_procurement_statistics_by_year | year(必須) | 1 年分の調達統計です。 |
search_shopping_mall_products | query(必須)、company(任意) | 検索語に一致するショッピングモールの商品です。company を指定すると、特定の企業に絞り込めます。 |
データの探索:
| ツール | 入力 | 返される内容 |
|---|---|---|
get_all_api_services_info | (なし) | 4 つすべてのサービスとそのオペレーションです。ローカルで動作します。 |
get_api_operations | service(必須) | 1 つのサービスのオペレーションです。ローカルで動作します。 |
call_api_with_pagination_support | service、operation(必須)、params、max_pages、page_size(任意) | ページ内の項目が上限より少なくなるか、ページ数の上限に達するまで、各ページの項目を集約します。 |
get_data_exploration_guide | (なし) | データを探索するためのガイドです。ローカルで動作します。 |
この再構築版の引数スキーマは、元のサーバーの公開 README に基づく文書化された再構成です(ツール名と説明は記載されていますが、完全なスキーマは公開されていません)。組み込みカタログにあるサービスのオペレーション数は公開仕様に準拠しています(統計 14、製品リスト 12、ショッピングモール 9)。カタログ内の個々のオペレーション名も、文書化された再構成です。
開発
npm install
npm run build # tsc -> dist/
npm test # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev # run the CLI from source via tsx
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。