mcpField
S
Samgov

Samgov

リモート
pipeworx.io法務・行政13 週間前に更新
リポジトリ公式サイト

Samgov について

Samgovは、連邦政府の請負業者やベンダー、調達調査担当者向けのMCPサーバーで、SAM.govの調達機会と事業体登録データを検索します。案件、ベンダー、優遇枠、除外記録を扱い、一部は公開データのミラーを利用し、一部のライブ検索にはAPIキーが必要です。

主な機能

  1. 01連邦政府の調達機会を検索
  2. 02個別の公示案件の詳細を取得
  3. 03ベンダー登録、CAGE、UEIを検索
  4. 04優遇枠の区分で案件を検索
  5. 05現在有効な除外記録を検索

活用シーン

  1. 01関連する連邦政府調達案件を探す
  2. 02ベンダー登録とNAICS対象範囲を確認
  3. 03中小企業などの優遇枠案件を探す
  4. 04ベンダーが現在除外対象かを確認

MCP 対応

MCPクライアントにSAM.govの調達機会、事業体登録、優遇枠、除外記録を検索するツールを提供します。ローカルのstdioで実行する方法とPipeworxゲートウェイ経由で接続する方法があり、一部のライブ検索にはSAM.gov APIキーが必要です。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://gateway.pipeworx.io/samgov/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

46
パラメーター型必須説明
qstringいいえquestion の別名。
askstringいいえquestion の別名。
textstringいいえquestion の別名。
inputstringいいえquestion の別名。
packsarrayいいえ任意。ルーティング対象をこれらのパックスラッグに限定します(例:["sec-form-d","sec-13f"])。その場合、ルーターは該当パック内のツールのみを選択します。省略すると、デフォルトの全カタログへのルーティングになります。スラッグは list_packs / search_packs / https://pipeworx.io/directory から取得できます。リストにない、または不明なスラッグは無視され、_meta.pack_scope.ignored に記載されます。該当するスラッグが 1 つもない場合は、カタログ全体にルーティングし、_meta.pack_scope.full_catalog:true を設定します(空の回答にはなりません)。
querystringいいえquestion の別名。
promptstringいいえquestion の別名。
messagestringいいえquestion の別名。
questionstringはい自然言語での質問またはリクエスト。query、q、prompt、text、input、ask、message をエイリアスとして使用できます。

詳細

SAM.gov — 連邦政府の調達と事業体登録

米国一般調達局(U.S. General Services Administration)が運営するSystem for Award Managementです。連邦政府の契約案件、事業体(ベンダー)登録、優遇措置の指定、除外記録(取引停止)、支援制度の一覧に関する信頼できる情報源です。連邦政府への販売を行うすべての人が必読の情報です。

Pipeworx の一部です。AI エージェントを1689以上の稼働中データソースにつなぐMCPゲートウェイです。これは独立した非公式の統合であり、上流プロバイダーとの提携、承認、公開はありません。

AI エージェントにとって重要な理由

用途は大きく3つに分かれます。

1. 契約案件(RFP、RFQ、情報提供依頼など) — 連邦政府が現在調達しているものです。→ sam_search_opportunities({keyword})。特定の公募案件については、sam_get_opportunity({solicitation_number}) を使います。

2. 事業体の記録 — CAGEコード、UEI、NAICSコード、認定を持つ登録済みベンダーです。→ sam_entity_search({business_name})。

3. 優遇措置の対象案件 — 小規模事業者、退役軍人所有、女性所有、HUBZoneなどです。→ sam_set_aside_opportunities({set_aside})。

USAspending(契約締結後の契約データ)および govcon_contractor_profile 複合ツールと組み合わせると、エージェントのワークフロー全体を構成できます。

認証

SAM.govでは、https://sam.gov/data-services から無料のAPIキーを取得する必要があります。_apiKey 経由で渡してください。呼び出し元からキーが提供されない場合にゲートウェイがフォールバックで使用する共有 PLATFORM_SAM_KEY は、1日に10リクエストまでのパーソナル階層キーです。2026-09-01のライブ計測では、正確に10件の呼び出しに応答し、その後はUTC日の残りの間 900804 Message throttled out を返し、nextAccessTime は翌日のUTC午前0時に設定されていました。sam_search_opportunities が現在ほとんどキーを必要としない理由については、以下のミラーに関する注記をご覧ください。事業体検索と除外検索も、キーが不要になりました(移行135)。どちらもSAM.govの公開されているEntity RegistrationおよびExclusionsデータのローカルスナップショットを使って応答します。キーを渡さずに、2026-09-13にライブで検証済みです。sam_entity_search は889,932行のミラーからLockheed Martinを返し、sam_search_exclusions は168,462行のミラーから応答しました。現在も、sam_get_opportunity と sam_set_aside_opportunities のみが呼び出しごとにキーで保護されたライブAPIにアクセスします。また、sam_entity_search も live:true を渡すとライブAPIにアクセスします。

ご自身のキーを用意しておく価値があります。 GSAが設定するクォータは、支払い額ではなくアカウントに紐づく権限によって決まります。SAM.govのロールがない非連邦政府のパーソナルキーでは1日10件(共有キーが該当する階層です)が、アカウントにロールが付与されると同じキーで1日1,000件になります。また、非連邦政府のシステムアカウントでも1日1,000件です。すべて無料です(https://open.gsa.gov/api/entity-api/)。そのため、_apiKey の指定はPipeworxの制限を回避する方法ではなく、プロフィールを変更するだけで利用枠を100倍に増やす方法です。

共有キーを使い切った場合、これらのツールは上流のエラーだけを返すわけではありません。クォータが日単位であることを伝え、SAM.govが返した正確なリセット時刻を示し、2つの対処法(_apiKey、またはキーなしでキーワード検索に応答する sam_search_opportunities)を明記します。日単位のクォータは再試行しても回復しないため、そのことを知らされていないエージェントは何度も試行し続けます。

データミラー(fleet #343)

sam_search_opportunities は、共有 API キーを使う前に、まず Supabase ミラーを読み込みます。SAM.gov は、Contract Opportunities の全リストを公開日次 CSV 抽出ファイルとして公開しており、キーもレート制限も不要です — https://s3.amazonaws.com/falextracts/Contract%20Opportunities/datagov/ContractOpportunitiesFullCSV.csv(SAM.gov の Data Services ページからリンクされているものと同じ falextracts バケットです)。GitHub Actions のジョブ(.github/workflows/samgov-refresh.yml にスケジュールが定義されている scripts/samgov-upsert.sh)が、毎日 samgov_opportunities に読み込みます。

ミラーは単純なタイトルまたは説明文のフィルターではなく、関連性に基づいて一致結果を順位付けします(rpc/search_samgov_opportunities、マイグレーション 075)。title は description より大幅に高い重み付けです(setweight() + ts_rank_cd)。以前の 2 つの実装はいずれもこの点を誤り、実データで問題が発覚しました。単純な説明文一致で「cybersecurity」を検索したところ、定型の DFARS/NIST 条項の文言にたまたまその単語が含まれていたため、サイバーセキュリティを実際に扱う案件よりも先に、海軍のハードウェア通知(HOSE,NONMETALLIC、WASHER)が返されました。その後、タイトルを優先し、なければ説明文を使う方式に切り替えましたが、今度は下位の階層で同じ問題が発生しました。「cloud computing」が説明文の階層に回り、給水タンクの修理や MRI の改修が返されたのです。SAM.gov の掲載テンプレートでは、範囲とは無関係な通知にも標準的なクラウドコンピューティングサービスの条項が挿入され、phraseto_tsquery はその定型文の文字列にも一致するためです。順位付けによって、問題を根本から解決します。タイトルの一致は説明文での 1 回の言及の約 2.5 倍の重みがあるため、ハードな階層の切り替えに頼らず、同じ結果セット内で上位に表示されます。それでも、ライブ API の title= パラメーターより厳密に幅広く検索できます(fleet #311 で、存在しない keyword= パラメーターから修正済み)。ライブ API はタイトルしか検索しません。どの経路で応答した場合でも、すべての sam_search_opportunities の応答には、スナップショットの鮮度を示す mirror オブジェクト(snapshot_date、rows_in_mirror)が含まれます。ライブ API が使われるのは、ミラーが設定または読み込みされていない場合、あるいは明示的に指定した posted_from がミラーの snapshot_date より後の日付に及ぶ場合のみです(デフォルトの 30 日間の期間では発生しません。実際に引数を渡した場合に限られます)。個別案件の検索とセットアサイド検索には影響しません。これらは案件 CSV が対象としていないエンドポイント群のため、常にライブで検索されます。エンティティ検索と除外リスト検索にもそれぞれミラーが追加され(マイグレーション 135)、デフォルトでキーなしで応答します。

効果的なユースケース

  • 「連邦政府はサイバーセキュリティ関連で何を調達していますか?」 → sam_search_opportunities({keyword: "cybersecurity"}) → 有効な RFP。
  • 「AI 関連の SBIR/STTR 中小企業向けセットアサイドを探してください。」 → sam_set_aside_opportunities({set_aside: "SBIR"}) を説明文で絞り込みます。
  • 「X は連邦政府に登録されていますか?」 → sam_entity_search({business_name: "X"}) → CAGE/UEI と NAICS の対象範囲。
  • 「その企業は除外リストに載っていますか?」 → sam_search_exclusions(キー不要)。**このツールが答えるのは「今日、資格停止中か」であり、「過去に資格停止になったことがあるか」ではありません。**SAM.gov の日次 Exclusions 抽出ファイルに掲載されるのは、現在有効な除外のみです。そのため、すでに終了した資格停止はソースから完全に欠落しています。include_terminated は受け付けますが、そうした案件を表示することはできません。2026-09-13 に測定したところ、4 つの名前に対して抽出した 400 件の行をフィルター無効で検索しても、終了日を過ぎた案件は 0 件でした。結果が空の場合は、その点を踏まえてください。

よくある落とし穴

  • 案件のライフサイクル状態。「Active」「Archived」「Awarded」「Cancelled」の間で案件の状態が変わります。現在対応が必要な案件を確認するには、「Active」で絞り込みます。
  • **NAICS コードは重要です。**企業は特定の NAICS コードで登録し、SAM.gov は企業が競争できる契約を制限します。競合情報を扱うエージェントは、会社名だけでなく NAICS も読み取る必要があります。
  • **UEI は DUNS に置き換わりました。**2022 年 4 月以降、SAM.gov では DUNS 番号の代わりに Unique Entity Identifier(UEI)が使われています。古いデータでは DUNS、新しいデータでは UEI が使われています。sam_entity_search は相互参照用に両方を返します。
  • **クエリ言語とミラー/ライブの違い。**ミラーパス(一般的なケース)ではタイトルと説明文の両方に全文検索を行うため、説明的なフレーズでも問題ありません。ライブ API のフォールバックパスではタイトルのみを検索するため、長く説明的なクエリでは、焦点を絞ったクエリより結果が少なくなります。結果が予想より少ない場合は、レスポンスの source フィールド(sam.gov-mirror と sam.gov-live)を確認してください。
  • **中小企業向け枠の絞り込み。**一般的な中小企業向け枠コード:SBA(中小企業)、8A(8(a) プログラム)、WOSB(女性所有企業)、SDVOSBC(サービス障害を負った退役軍人所有企業)、HZC(HUBZone)、SBIR(SBIR/STTR)。コードが間違っていてもエラーではなく、結果が空になります。
  • 短い/一般的な単語の頭字語はミラーで精度が落ちます。"IT services" は精度が大きく低下します。Postgres の english FTS 設定では「IT」がストップワードとして扱われて削除されるため、クエリは気づかないうちに "services" だけになり、関連性の低いものがほとんどの約 12,000 件に一致します。"artificial intelligence"、"cybersecurity"、"cloud computing" などの複数音節で特徴的な語句は適切に順位付けされますが、2 文字だけの頭字語はそうなりません。短縮形が一般的な英単語である場合は、綴りを展開した語句(「information technology services」、「help desk support」)を使用してください。
  • 地理情報は大まかです。「履行場所」は契約の履行場所であり、受注機関の所在地ではありません。

クイックスタート

MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します。

{
  "mcpServers": {
    "samgov": {
      "url": "https://gateway.pipeworx.io/samgov/mcp"
    }
  }
}
このエンドポイントが実際に提供するもの

https://gateway.pipeworx.io/samgov/mcp の tools/list は、上の表にあるツールに加えて、共有 Pipeworx メタツール(ask_pipeworx、 discover_tools、search_within、remember/recall など、ゲートウェイ全体で使えるツール一式)も返します。そのため、表示されるツール数はこの表より多くなります。単一パックのエンドポイントには現在、そのパック固有のツールに加え、共有ツールが約 30 個表示されます。接続時の initialize レスポンスに正確な対象範囲が示されており、その日の情報としてはこれが正式な回答です。

これは意図的な設計であり、偶然の多重化ではありません。メタツールを使うと、このパックの対象外の質問にも、カタログ全体にわたってルーティングする ask_pipeworx を通じて回答できます。そのため、MCP サーバーをもう 1 つ追加する必要はありません。現時点では、メタツールなしでパックのエンドポイントを接続する方法はありません。追加のスキーマがルーティングの利点よりもコンテキストを多く消費する場合は、複数のパックエンドポイントではなく、フルゲートウェイに一度だけ接続してください。

このパックだけでなく、すべてのパックのツールを直接一覧表示するには、Pipeworx のフルゲートウェイに接続してください。

{
  "mcpServers": {
    "pipeworx": {
      "url": "https://gateway.pipeworx.io/mcp"
    }
  }
}

どちらの URL も同じゲートウェイに接続し、同じ 1689 以上のデータソースを利用します。違いは、どのパックのツールが直接一覧表示されるかだけです。どちらから接続しても、ask_pipeworx ですべてのツールを利用できます。

MCP クライアントをお持ちでない場合:HTTP で呼び出す

curl -X POST https://gateway.pipeworx.io/v1/tools/sam_search_opportunities \
  -H 'Content-Type: application/json' \
  -d '{"keyword":"software development","naics":"541512","posted_from":"01/01/2024","posted_to":"12/31/2024","limit":20}'

最初の呼び出しにアカウントは不要です。任意のツールを確認するには、GET https://gateway.pipeworx.io/v1/tools/sam_search_opportunities を実行します。ツールを探すには、POST https://gateway.pipeworx.io/v1/tools/search_packs に {"query":"..."} を指定します。

スタンドアロン(ゲートウェイアカウント不要)

このパッケージは、ローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントもゲートウェイへのラウンドトリップも不要です。

{
  "mcpServers": {
    "samgov": {
      "command": "npx",
      "args": ["-y", "@pipeworx/mcp-samgov"]
    }
  }
}

または、直接実行して起動することを確認します。

npx -y @pipeworx/mcp-samgov

stdin/stdout 経由で MCP を使用し、このパックのツールのみに対して initialize/tools/list/tools/call に応答します。上記のゲートウェイ接続で追加される共有メタツールは含まれません。同じソース、同じツールで、ask_pipeworx によるルーティングはありません。

ask_pipeworx での使用

ツールを直接呼び出す代わりに、平易な英語で質問できます。 これは、上記のパックエンドポイントだけでなく、フルゲートウェイでも機能します。

ask_pipeworx({ question: "your question about Samgov data" })

ゲートウェイが適切なツールを選び、引数を自動的に設定します。

詳細

ライセンス

MIT

コメント

MCP は初めてですか?

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

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