mcpField
A
Agent Bazaar

Agent Bazaar

リモート
bazaar.saylorinnovations.comAI・エージェント02 週間前に更新
リポジトリ公式サイト

Agent Bazaar について

Agent Bazaar は、AI エージェント向けに API、MCP ツール、データセット、x402 決済対応サービスを掲載する検索マーケットプレイスです。出品者はアカウントや本人確認なしで登録でき、クライアントは Coinbase Bazaar の検索 API と互換性のある API で検索できます。

主な機能

  1. 01アカウント不要のマニフェスト登録
  2. 02リソースの検索と絞り込み
  3. 03ランキング検索とカタログ統計
  4. 04A2A エージェントカード登録簿
  5. 05リソースとプロバイダーの詳細ページ

活用シーン

  1. 01登録なしで x402 サービスを掲載
  2. 02ネットワークや価格で有料 API を検索
  3. 03特定プロバイダーのリソースを確認

MCP 対応

Agent Bazaar は JSON-RPC/Streamable HTTP でカタログを MCP サーバーとして公開します。search_resources、get_resource、get_pricing、discover_provider、list_resources、get_stats などのツールを提供します。

設定

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

エンドポイントhttps://bazaar.saylorinnovations.com/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 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

ツール

9
パラメーター型必須説明
assetstringいいえ
limitintegerいいえ
payTostringいいえ
querystringいいえフリーテキストのキーワード検索
schemestringいいえ
networkstringいいえ例:eip155:8453、solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp
maxUsdPricenumberいいえ

詳細

Agent Bazaar

by Saylor Innovations

AI エージェント向けの、オープンで許可不要のマーケットプレイス兼ディスカバリー層です。API、MCP ツール、データセット、リクエストごとに自律型ソフトウェアが検索、評価、支払いできる x402 対応サービスを扱います。継続性のため、リポジトリ/パッケージ名は引き続き open-x402-bazaar ですが、製品名は Agent Bazaar です。

Coinbase 独自の x402 Bazaar は優れていますが、掲載するには認証済みの Coinbase Developer Platform アカウントが必要です。また、アカウントの種類によっては、事業者確認や KYC 認証が求められる場合があります。これは、許可不要のエージェント間取引を目的とするプロトコルにとって、実質的な障壁です。このプロジェクトはその代替を目指す取り組みです。有効な x402 マニフェストがあれば、アカウントも本人確認も一切なしで誰でも掲載できます。

Coinbase の Bazaar 検索 API とワイヤー互換になるよう構築されているため、CDP Bazaar への問い合わせに対応している既存の x402 クライアントライブラリなら、書き換えることなく設定を変更するだけでこちらを利用できます。

稼働中:https://bazaar.saylorinnovations.com

ステータス

bazaar.saylorinnovations.com で稼働中です。Cloudflare Pages と D1 を使用しています。登録、検証、保存、ランキング付き検索、リソース/プロバイダーの詳細ページ、基本的なスパム対策はすべて動作しています。カタログは Coinbase の公開 CDP Bazaar の完全なミラーと、Saylor Innovations 独自の実稼働エンドポイントから初期データを取り込んでいます。詳細は以下をご覧ください。

Coinbase の Bazaar をもとに初期データを登録

Coinbase の検索 API は、読み取りには API キーもアカウントも不要で、必要なのは掲載する場合だけです。そのため、このプロジェクトでは scripts/import-cdp-bazaar.mjs を使って公開カタログ全体(前回のインポート時点で約 15,600 件のリソース、約 2,000 のホスト)をミラーし、その上に許可不要の掲載機能を追加しています。

  • ミラーされたすべての掲載情報には、内部的に source: 'cdp-mirror' のタグが付けられます。
  • どの所有者もいつでも独自のマニフェストを POST /submit で送信できます。自分で送信した掲載情報は、そのホストのミラー版を常に上書きし、source: 'submitted' のタグが付けられます。インポーターが、所有者によって登録済みのホストに手を加えることはありません。
  • ミラーされたリソースには、Coinbase 独自の過去30日間の利用統計(calls30d、uniquePayers30d、lastCalledAt)が、各リソースの quality フィールドとして含まれます。誰でも何でも掲載できるため、KYC 認証済みのカタログ以上に重要な信頼の指標です。

Coinbase がインデックスに追加した新しいリソースを取り込むため、定期的にミラーを再実行してください(安全に再実行できます。スクリプトのヘッダーをご覧ください)。

npm run seed:cdp-bazaar          # generates + applies against local D1
npm run seed:cdp-bazaar:remote   # generates + applies against production D1

Saylor Innovations 独自の掲載情報

scripts/import-saylor-official.mjs は、Saylor Innovations の実在する稼働中の x402 エンドポイント(調査/セキュリティ/データ関連のユーティリティに加え、Solana のオンチェーンインテリジェンス。すべて saylorinnovations.com から提供)を、検証済み(source: 'submitted')リソースとして掲載します。これは、Saylor Innovations がこの Bazaar を運営しているため、自分で送信した場合と同じ信頼レベルで直接初期登録しています。ここに架空の情報はありません。価格、説明、accepts[] は、稼働中の /api/services エンドポイントと saylorinnovations.com/.well-known/x402.json の公開マニフェストから取得しています。

npm run seed:saylor-official          # local
npm run seed:saylor-official:remote   # production
プロバイダーへの実際の支払い方法

x402 の支払いはピアツーピアで決済されます。つまり、エージェントから payTo ウォレットへの直接送金であり、この Bazaar を経由することはありません。そのため、ここに掲載しても、支払いを受ける方法は変わりません。変わるのは、エンドポイントを見つけて支払いを行うエージェントの数です。現時点では取引自体にプラットフォーム手数料はかかりません。検索機能は無料のまま維持し、必要になった場合には、決済経路に課金するのではなく、注目枠やプロバイダー検証ツールなどのオプション機能で収益化する計画です。

一覧への掲載方法

サインアップは不要です。ご自身の .well-known/x402.json(または同等の)マニフェストの URL を POST します。

curl -X POST https://<this-site>/submit \
  -H "content-type: application/json" \
  -d '{"manifestUrl": "https://yoursite.com/.well-known/x402.json"}'

マニフェストはフェッチされ(HTTPS 経由。SSRF 対策により、リクエストを行う前にプライベート/内部アドレスは拒否されます)、検証された後、accepts[](scheme + network + payTo)が入力された各リソースがインデックスに登録されます。同じマニフェスト URL を再送信すると、掲載内容が更新され、ホストが以前 Coinbase のミラーにのみ存在していた場合は、そのホストの所有権が割り当てられます。送信は IP ごとにレート制限されています(1 時間あたり 20 件、1 日あたり 60 件)。成功したかどうかにかかわらず、すべての試行がカウントされるため、失敗するプローブで制限を回避することはできません。

A2A エージェントの登録

同じ仕組みですが、形式は異なります。A2A エージェントカードには accepts[] の代わりに skills[] があり、固有の決済モデルもないため、リソースの形式に無理に当てはめるのではなく、専用の agent_cards テーブルに格納されます。

curl -X POST https://<this-site>/submit-agent \
  -H "content-type: application/json" \
  -d '{"agentCardUrl": "https://youragent.example.com/.well-known/agent-card.json"}'

最低限 name が必要です。skills[]、provider、protocolVersion、documentationUrl は、指定されていれば保存されます。SSRF 対策、レート制限、アカウント不要の仕組みは同じです。

検出 API(エージェント向け)

Coinbase の CDP Bazaar API のフィールド名と形式を踏襲し、quality フィールドと統計エンドポイントを追加しています。

エンドポイント用途
GET /discovery/search?query=&network=&asset=&scheme=&payTo=&urlSubstring=&maxUsdPrice=&limit=キーワード/フィルター検索。テキストクエリは関連度順(FTS5 bm25)、フィルターのみのクエリは過去 30 日間の呼び出し件数順に並びます
GET /discovery/resources?limit=&offset=&sort=インデックス登録済みの全リソースをページ分割して一覧表示します。sort=recent では新しい順に、デフォルトでは過去 30 日間の呼び出し件数順に並びます
GET /discovery/merchant?payTo=<address>特定のアドレスに支払うすべてのリソース
GET /discovery/facets?limit=利用可能なネットワーク、アセット、スキーム、リソースタイプ、プロバイダー、価格帯、稼働状況、信頼状態の簡潔な件数を表示します。検索フィルターを選ぶ前に便利です
GET /discovery/stats?full=カタログの合計数:掲載数、リソース数、accepts 数、加盟店数、ネットワーク数、呼び出し数。full=1 を指定するとネットワーク別/ソース別の内訳が追加されます。全テーブルのスキャンが必要なため、デフォルトでは計算されず、明示的な指定が必要です
GET /resources/{slug}.json単一リソースの完全な機械可読レコード
GET /discovery/agents?query=&limit=&offset=A2A エージェントレジストリを検索/一覧表示します(Agent Bazaar 自体ではなく、他のエージェントのカード)
GET /agents/{slug}.json送信された状態の A2A エージェントカード全体
GET /discovery/featured?limit=現在おすすめに掲載されているリソース(有料掲載。下記を参照)
GET /feature?slug=&days={7,30,90}x402 で決済可能:Agent Bazaar に直接支払い、掲載済みリソースをおすすめに掲載できます。下記の「おすすめ掲載」を参照してください

読み取りエンドポイントはすべて API キー不要です。Coinbase と同じです。

エージェント向けドキュメント:/llms.txt · /llms-full.txt · /openapi.json · /agents.json · /.well-known/agent-card.json(A2A)。

ユーザー向けページ

すべてのリソースには、クライアントサイドだけで表示されるモーダルではなく、恒久的にクロール可能なサーバーレンダリング URL があり、機械可読な JSON 版も併設されています。

ページ用途
/resources/{slug}リソースの詳細:説明、料金、accepts[]、スキーマ、curl/JS/Python の例
/providers/{host}1 つのプロバイダーが公開しているすべてのリソース
/agentsエージェント接続のクイックスタート(検出 → 確認 → 支払い → 実行 → 検証)と、登録済みエージェントのディレクトリ
/agents/{slug}A2A エージェントの詳細ページ — スキル、プロバイダー、プロトコルバージョン、カード URL
/publish販売者としてリソースを掲載する方法
/docsx402/MCP/A2A の概要、エージェントの支払いの仕組み、セルフホスト方法
/guides, /guides/{slug}コード付きの詳しいガイド 11 件 — /docs の FAQ 回答を完全版にしたものに加え、プロバイダーやエージェントビルダー向けの手順も掲載しています。各ガイドに .json 版があります
/categories, /categories/{type}リソースタイプ別に閲覧できます(プロバイダーがタイプを設定すると表示されます — タイプを設定していないカタログの大部分のミラーでは、項目が少なくなります)。.json 版(/categories/{type}.json?limit=)はコレクション全体を 1 つの配列として返します。エージェントはカードを 1 つずつたどらず、1 回の呼び出しで「ガイドライブラリ全体」を取得できます
/networks, /networks/{network}CAIP-2 ネットワーク別に閲覧できます。accepts[] に基づいているため、すべてのリソースに表示されます
/protocols, /protocols/{x402,mcp,a2a}各プロトコルの概要と、Agent Bazaar での活用方法をライブ統計とともに説明します
/mcpGET:情報ページ。POST:同じカタログを利用する実際の MCP サーバー(JSON-RPC/Streamable HTTP) — search_resources、get_resource、get_pricing、discover_provider、list_resources、get_stats
掲載先

Agent Bazaar の MCP サーバーは、公式 MCP Registry に io.github.SaylorInnovations/agent-bazaar として公開されています。これは、ほかのアグリゲーター(Glama、PulseMCP)が参照する正規のレジストリです。リポジトリのルートにある server.json が信頼できる唯一の情報源です。変更後に再公開するには、version を更新して次を実行してください。

mcp-publisher login github   # once per session
mcp-publisher publish

また、MCP サーバーとしてではなくマーケットプレイスとして、awesome-x402、awesome-mcp-servers(アグリゲーター)、gold-402(マーケットプレイスとディスカバリー)にも掲載されています。

注目枠への掲載

掲載は今後も常に無料です。Agent Bazaar は、作成元ではない約 15,600 件のミラーリソースを含め、リソース独自の accepts[] による支払いから手数料を一切取りません。直接販売しているのは掲載枠だけです。プロバイダーは Agent Bazaar 自体に支払うことで(リソースの payTo ではありません)、すでに掲載されているリソースをホームページの「注目のリソース」欄に表示し、リソースページとプロバイダーページに featured バッジを付けることができます。期間は 7 日/30 日/90 日で、料金は $2/$6/$15 です。支払い方法は、ここにあるすべてのリソースと同じです。GET /feature?slug=&days= を呼び出すと accepts[] を含む 402 が返されます。支払い後に再試行すると、featuredUntil のタイムスタンプが返されます。詳しい手順は /publish#feature をご覧ください。Saylor Innovations 独自の solana-x402 ライブラリを使用して実装されています — 詳しくは下記の「アーキテクチャ」をご覧ください。

検証済みエージェントスキル

resource_type: "Skill" — ダウンロード可能な、ZIP にまとめられた Claude-Code 形式のスキル(SKILL.md と、補助ファイルやスクリプト)です。Agent Bazaar 独自のホスト(bazaar.saylorinnovations.com)で、公式の検証済みプロバイダーとして掲載されています。ソースは skills/ にあり、scripts/import-skills.mjs がスキルを ZIP 化して一覧に登録します。他のインポートスクリプトと同じく、DELETE の後に INSERT する方式です。accepts[] が空のリソースは意図的なシグナルです。実際に無料であり、投稿時の検証漏れではありません。このスクリプトは POST /submit のマニフェスト検証(空でない accepts[] が必要)を経由せず、D1 に直接書き込むためです。カタログは、無料のスタータースキル(agent-memory-bootstrap — あらゆるエージェントで使える、ポータブルなファイルベースの永続メモリーパターン)から始まり、今後も拡充されます。有料スキルも、実際の accepts[] を備え、このカタログの他のリソースとまったく同じように機能します。

アーキテクチャ

  • ランタイム:Cloudflare Pages Functions(Workers ランタイム)。
  • ストレージ:D1(SQLite)。listings/resources/resource_accepts にわたって正規化されており、単なる JS 配列のフィルタリングではなく、実際のキーワード検索用に FTS5 仮想テーブルも備えています。submission_log は IP ごとのレート制限に使用します。
  • 取り込み:プル方式です。販売者がマニフェストの URL を送信し、プッシュ処理はありません。同じマニフェスト URL を再送信すると、そのリソースは削除されて再登録されます(マージではなく、全件更新です)。例外は Coinbase ミラーのインポーター(scripts/import-cdp-bazaar.mjs)です。これは Coinbase の公開カタログを取得して SQL を直接書き込む単独の Node スクリプトで、Workers のリクエスト処理経路外で実行します。
  • ランタイム依存関係は 1 つのみ — solana-x402(Saylor Innovations 独自の x402 リソースサーバーライブラリ。github: インストールでコミット SHA に固定)。有料掲載エンドポイントでの決済の発行と検証にのみ、functions/feature.js から使用します。それ以外のランタイム依存関係はありません。wrangler は開発時のみ使用し、ローカルの D1/Pages ツールとミラーインポーターに利用します。
ローカル開発
npm install
npm run db:init                # applies schema.sql to a local D1 database
npm run seed:saylor-official   # Saylor Innovations' own real, verified endpoints
npm run seed:cdp-bazaar        # optional: mirror Coinbase's public Bazaar catalog into it
npm run check:liveness          # optional: probe owner-submitted resources, flag any that don't respond
npm run dev                     # wrangler pages dev, with the D1 binding wired up

後からスキーマが変更される前にデプロイした D1 データベースをすでに使用している場合は、schema.sql を再実行するのではなく、追加マイグレーションを順番に適用してください。npm run db:migrate:remote の後に、:0003、:0004、:0005、:0006、:0007 を実行します。

/feature には FEATURE_SECRET Pages シークレットが必要です(決済見積もりセッションに HMAC 署名します)。wrangler pages secret put FEATURE_SECRET で設定してください。設定しない場合は、安全でない開発専用の値にフォールバックします。これは wrangler pages dev では問題ありませんが、本番環境では絶対に使用しないでください。オプションの FEATURE_RPC_URL を指定すると、デフォルトの、レート制限された公開 Solana RPC エンドポイントを上書きできます。

最新の状態を維持する(セルフホスト)

seed:cdp-bazaar:remote、seed:saylor-official:remote、check:liveness:remote は、いずれも単なる npm スクリプトです。既存のスケジューラー(cron、GitHub Actions、小さなスクリプトを呼び出す独自の Cron Trigger を備えた Cloudflare Worker など)で実行してください。特定のスケジューリングプラットフォームに依存しない、シンプルな Node スクリプトとして用意されています。

セキュリティに関する注意

POST /submit は呼び出し元が指定する URL を取得するため、適切な対策がなければ典型的な SSRF の攻撃経路になります。リクエストを行う前にホスト名を解決し、ループバック、RFC1918 のプライベート範囲、リンクローカルアドレス(クラウドメタデータ用アドレス 169.254.169.254 を含む)を指している場合は拒否します。リダイレクトは自動的に追跡しません。マニフェストのサイズと取得時間には上限を設けています。

D1 のコストに関する注意事項

D1 の無料枠では、1 日あたりの行読み取り数に上限があります。GET /discovery/stats(および listNetworks/listCategories)は、resource_accepts に対してフィルターなしの GROUP BY を実行します。WHERE 句のない集計では、インデックスがどれほど適切に設定されていてもテーブル内のすべての行が読み取られます。絞り込む対象がないためです。getStats() はデフォルトでは低コストで、合計値のみを取得します(同じクエリに付随する COUNT(DISTINCT network) も追加コストなしで含まれます)。ネットワーク別/ソース別の詳細な内訳を取得するのは、呼び出し元が ?full=1 で明示的に要求した場合のみです。以前は、件数を表示するだけなのに、ホームページと /protocols/x402 が何気ないページ表示のたびに詳細な内訳を取得していたため、それだけでテストを頻繁に行った際に無料枠の 1 日あたりの上限に達していました。byNetwork/bySource が必要な新しいページを追加する場合は、どこでもデフォルトで full=true にするのではなく、明示的にリクエストしてください。

未実装(ロードマップ)

  • 定期的な稼働確認 — 完了しました。scripts/check-liveness.mjs は、オーナーが登録したすべてのリソース(ミラーされたものは除きます。Coinbase がすでにクロールしています)を調査し、is_live: true/false を設定します。ダウンしていることが確認されたリソースには、カード、詳細ページ、プロバイダーページに「応答なし」バッジが表示されます。自動削除や、変更された支払いアドレスの再取得にはまだ対応していません。ダウンしたリソースは一覧に残り、フラグが付くだけです。
  • ローリング方式の信頼性シグナル — 完了しました。稼働確認のたびに liveness_checks にも記録され、リソースの行には事前計算されたローリングウィンドウ(直近 10 回の確認)が保存されるようになりました。JSON の liveness.reliability: {checks, live} として表示され、UI では「N/M uptime」バッジが表示されます。対象になるのはオーナーが登録したリソース(実際に調査されるのはこれらのみ)だけです。null は未確認を意味し、低いスコアとは区別されます。
  • レスポンス形状の例 — 完了しました。output_schema を持つリソースには、JSON の exampleResponse(ページ上の「形状の例」ブロック)も追加されます。スキーマ自体から生成され、スキーマに値が指定されている場合は実際の example/default/enum の値を使い、それ以外は型に適したプレースホルダーを使います。実際に取得したライブレスポンスではないことが明記されており、支払う前にエージェントが形状を確認できるようにするためのものです。
  • セマンティック検索。 現在の検索はキーワード/部分文字列検索(FTS5)のみで、Coinbase のハイブリッドなテキスト+セマンティック検索とは異なります。
  • 定期的な自動ミラーリング — 完了しました。毎日実行されるスケジュール済みジョブが、本番環境に対して両方のインポーターと稼働確認を実行します。(Cloudflare Cron Trigger ではなく、Claude Code のスケジュール済みクラウドルーチンとして実装されています。Pages Functions は、スタンドアロンの Workers のような cron トリガーをサポートしていないためです。そのため、これは運用上の仕組みであり、このリポジトリをフォークしても自動的には使えません。セルフホストする場合は、以下の「最新の状態を保つ」注記を参照してください。)
  • サードパーティ MCP ツールディレクトリ。 /mcp は、このカタログを提供する実用的な MCP サーバーになりました(上記を参照)。ただし、x402 リソース向けの /resources/{slug} のような詳細ページを使って、他の MCP サーバーをプロキシしたり一覧表示したりする機能はまだありません。
  • A2A エージェントレジストリ — 完了しました。/discovery/agents、POST /submit-agent、/agents/{slug} では、他のエージェントのカードを一覧表示するディレクトリを提供します(Agent Bazaar 自身の /.well-known/agent-card.json とは別です)。まだ実装されていない機能として、登録済みエージェントの稼働確認(現在はリソースのみを調査)と、「登録済み」を超える評判/信頼シグナルがあります。
  • プロバイダーの自動取り込み。 現在、公開はマニフェスト URL のみから行えます。OpenAPI ドキュメント、MCP スキーマ、Git リポジトリから直接インポートする機能はまだ実装されていません。
  • ガイド/コンテンツライブラリ — 完了しました。/guides には、x402、MCP、A2A、エージェント型コマース、プロバイダー/エージェントビルダー向けの手順を扱う、コードに基づいた詳しいガイドが 11 件あります(src/guides.js)。/docs で要約している内容を、詳しく解説しています。それぞれに機械可読な .json 版もあります。いつでも追加でき、GUIDES に追記する以外に変更は必要ありません。
  • 「オーナー確認済み」以外の信頼バッジ。 ライブの稼働確認によるエンドポイント/スキーマの検証はまだ実装されていません。現在の「確認済み」は、POST /submit を通じてオーナーが管理権限を証明したことのみを意味します。
  • x402 Foundation の discovery working group(x402-foundation/wg-domain-discovery)とのフェデレーション — 第二の閉鎖的な仕組みになるのではなく、オープン標準に準拠することを目指しています。

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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