AntFeed について
AntFeedは、AntSeed P2P AIネットワークを探索・利用するエージェント向けのMCPサーバーです。プロバイダー検索、価格や購入者・決済チャネルの確認に加え、ローカル購入者経由でセッションを開始できます。
主な機能
- 01アドレス、名前、サービス名でプロバイダーを検索
- 02価格や活動状況を含むプロバイダー一覧
- 03最新のサービス価格と決済チャネルの確認
- 04購入者履歴とネットワーク統計の確認
- 05検出されたローカル購入者経由でセッションを開始
活用シーン
- 01特定のサービスを提供するAntSeedセラーの検索
- 02取引前にプロバイダーの現行価格を確認
- 03購入者履歴やチャネルの決済状況を確認
- 04ローカルAntSeed購入者を使ってセッションを開始
MCP 対応
AntFeed Explorerのデータと購入者操作をMCPツールとして提供します。セッション作成ツールは起動時にローカルのAntSeed購入者が検出された場合のみ使え、未検出時は設定診断ツールが提供されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @antfeed/mcpANTFEED_EXPLORER_URLBase URL for the AntFeed Explorer REST API.ANTSEED_BUYER_URLLocal AntSeed buyer RPC URL. Required only for the transactional `create_session` tool; omit for read-only use.ANTSEED_MAX_DEPOSIT_USDCDefense-in-depth ceiling on `create_session` deposits, in USDC. Hard-capped at 10000.ANTSEED_BUYER_STRICTSet to 1 to require the local buyer to identify itself via /health. Recommended on shared dev boxes.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
8掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| limit | integer | いいえ | ページごとの最大一致数(デフォルト 50、最大 200)。 |
| query | string | はい | address、displayName、またはいずれかのサービス名に対する部分文字列検索(大文字と小文字を区別しません) |
| cursor | string | いいえ | 前回の呼び出しで返された不透明なページネーショントークン。最初のページでは省略します。 |
詳細
@antfeed/mcp
あらゆる MCP 対応 AI エージェントから AntSeed P2P AI ネットワークを検索し、取引できます。
Model Context Protocol サーバーです。AntFeed Explorer を、Claude Code、Cursor、Claude Desktop、その他あらゆる MCP ホストから利用できる、検索のためのワンラインの入り口にします。エージェント内から販売者の一覧表示、プロバイダーアドレスの検索、オンチェーン決済チャネルの確認ができ、ローカルで AntSeed buyer が実行中の場合は、新しいセッションを開始できます。
インストール
以下のブロックを ~/.claude.json(Claude Code)、claude_desktop_config.json(Claude Desktop)、または IDE の MCP 設定に追加してください。
{
"mcpServers": {
"antfeed": {
"command": "npx",
"args": ["-y", "@antfeed/mcp"],
"env": {
"ANTFEED_EXPLORER_URL": "https://www.antfeed.org",
"ANTSEED_BUYER_URL": "http://localhost:8377"
}
}
}
}
MCP ホストを再起動してください。サーバーは stdio 経由で起動し、以下のツールを公開します。
ツール
すべてのツールは、宣言された outputSchema に一致する型付きオブジェクト structuredContent と、古い MCP クライアント向けに同じペイロードを JSON としてシリアライズした content[0].text の両方を返します。アノテーション(readOnlyHint、destructiveHint、idempotentHint、openWorldHint)が公開されるため、Claude Desktop や Cursor などのホストは、破壊的な呼び出しの前に確認ダイアログを表示できます。
| ツール | 入力 | 出力 | アノテーション | ローカルの buyer が必要か? |
|---|---|---|---|---|
lookup | query、limit?(1–200、デフォルト 50)、cursor? | { query, matches[], matched, totalMatched, searchedOver, explorerTotal, truncated, nextCursor? } — アドレス、表示名、サービス名に一致する検索結果 | 読み取り専用、冪等 | いいえ |
list_providers | limit?(1–200、デフォルト 50)、cursor?、sort?(score|recent) | { providers[], total, sort, nextCursor? } — 各プロバイダーには displayName、region、services、pricingSummary、sessionCount、獲得した USDC、ghost rate が含まれます | 読み取り専用、冪等 | いいえ |
get_pricing | peerId、service | { peerId, service, status, currency, inputUsdPerMillion, outputUsdPerMillion, displayName, region, lastUpdated } — AntFeed ディレクトリの最新の料金情報 | 読み取り専用、冪等 | いいえ |
get_session_status | sessionId(channel_id、bytes32 hex) | { sessionId, buyer, seller, status, channelBalance, settledAmountUsdc, totalDeltaUsdc, eventCount, settled, openedAt, closedAt } | 読み取り専用 | いいえ |
network_stats | (なし) | { revenueUsdc, dau, drift, gasGwei, asOf, partialFailures[] } — ある時点のスナップショット(今日の /api/stats、/api/gas、/api/metrics/dau を並列取得します。エンドポイントごとの障害が発生した場合、そのフィールドは null になり、partialFailures に記録されます) | 読み取り専用 | いいえ |
get_buyer | address | { address, qualified, trustScore{…}, sessions{total, settledUsdc, monthlyVolume[]}, recentSessions[≤20], topSellers[] } | 読み取り専用、冪等 | いいえ |
dau_trend | from?(ISO 日付)、to?(ISO 日付)、granularity?(day) | { from, to, granularity, series[{date, dau, dauBuyers, dauSellers, newUsers}] } — デフォルトの期間:過去 30 日間 | 読み取り専用 | いいえ |
create_session | providerPeerId、service、initialDepositUsdc、initialMessage? | ローカル buyer からの { sessionId, status, channelAddress?, txHash? } | 破壊的 | はい |
buyer_setup | (なし) | ローカルの AntSeed buyer をインストールするための診断手順 | 読み取り専用 | 起動時に buyer が検出されない場合、create_session の_代わりに_公開されます |
例:上位プロバイダーを一覧表示する
// tool call
{ "name": "list_providers", "arguments": { "limit": 3, "sort": "score" } }
獲得した USDC の合計でランク付けした上位 3 人の seller を返します。ページネーションするには、返された nextCursor を次の呼び出しの cursor として渡します。
データソース
MCP は、以下の AntFeed Explorer エンドポイントをラップします。
GET /api/providers— プロバイダーディレクトリ(displayName、サービス、サービスごとの料金、リージョン、オンチェーン集計)。network.antseed.comから毎時更新されます。list_providersとlookupの基盤です。GET /api/sellers/{address}/services— 1 つの販売者のサービスカタログと最新の料金。get_pricingの基盤です。GET /api/channels— オンチェーン決済チャネルの記録。get_session_statusの基盤です。GET /api/stats— ネットワーク全体の集計(収益、セッション、ドリフト)。network_statsの基盤です。GET /api/gas— 現在の Base ガス価格。network_statsの基盤です。GET /api/buyers/{address}+GET /api/score/{address}— 購入者の詳細、セッション履歴、上位販売者、信頼スコアの内訳。get_buyerの基盤です。GET /api/metrics/dau— UTC 日単位のデイリーアクティブユーザー。dau_trendとnetwork_statsの DAU フィールドの基盤です。
クライアント側に残っている小規模な対応がいくつかあります。
- サーバー側の
/api/searchはまだありません →lookupは/api/providersの最初のページに対して、クライアント側で部分文字列検索を実行します(アドレス、displayName、サービス名を対象に検索)。将来サーバー側エンドポイントが導入されれば、lookupは 1000 件を超えるプロバイダーにも対応できるようになります。MCP はクライアント側の変更なしで切り替わります。 - チャネル単位の
/api/channels/{id}はまだありません →get_session_statusは/api/channelsをページネーションし(last_activity descでソート)、クライアント側で絞り込みます。5000 件より後のチャネルでは、SESSION_OUT_OF_RANGEが返される場合があります。
設定
すべての値は任意です。解決順序:--config file.json → 環境変数 → 組み込みのデフォルト値。
| 変数 | デフォルト値 | 目的 |
|---|---|---|
ANTFEED_EXPLORER_URL | https://www.antfeed.org | AntFeed Explorer REST API のベース URL。 |
ANTSEED_BUYER_URL | http://localhost:8377 | ローカル AntSeed CLI 購入者 RPC。AntStation Desktop の場合は http://localhost:8378 を使用します。 |
ANTFEED_MCP_TIMEOUT_MS | 8000 | Explorer および購入者への呼び出しごとのタイムアウト。 |
ANTFEED_MCP_LOG_LEVEL | info | debug、info、warn、error のいずれか。ログは stderr に出力されます(stdout は MCP stdio 用に確保されています)。 |
ANTSEED_BUYER_STRICT | 0 | 1 に設定すると、ローカル購入者の /health 応答で {"service":"antseed-buyer"} または {"service":"antstation"} と識別されることが必須になります。未設定の場合、MCP は任意の 200 応答を受け入れ、stderr に一度だけ警告を出します。共有開発環境では有効にすることを推奨します。 |
ANTSEED_MAX_DEPOSIT_USDC | 10 | create_session の initialDepositUsdc に対する上限値です。プロンプトインジェクションを受けたエージェントが大きな金額を動かすことを防ぐ、多層防御の一環です。購入者側でも独自の認証を適用します。これは MCP 側の追加上限です。 |
同じキー(camelCase:explorerUrl、buyerUrl、timeoutMs、logLevel、buyerStrict、maxDepositUsdc)を含む --config path/to/config.json を渡すこともできます。
購入者の自動検出
起動時、サーバーは 500 ms のタイムアウトで GET <ANTSEED_BUYER_URL>/health を確認します。
- 到達可能 →
create_sessionを登録します。 - 到達不能 → 代わりに、インストール手順を案内する診断ツール
buyer_setupを登録し、ツール一覧からcreate_sessionを除外します。
検出は起動時に一度だけ実行されます。購入者をインストールまたは起動した後は、MCP ホストを再起動してください。
エラーモデル
各ツールは、成功時には構造化ペイロードを返し、エラー時には isError: true と次の形式の構造化本文を含む MCP エラー結果を返します。
{ "error": { "code": "EXPLORER_DOWN", "message": "..." } }
| コード | 意味 |
|---|---|
INVALID_INPUT | ツール引数の Zod 検証に失敗しました。 |
EXPLORER_DOWN | エクスプローラーへの呼び出しでネットワークエラーまたはタイムアウトが発生しました。 |
EXPLORER_HTTP_<n> | エクスプローラーが 2xx 以外のステータスを返しました(例:EXPLORER_HTTP_404)。 |
RATE_LIMITED | エクスプローラーが 429 を返しました。 |
EXPLORER_INVALID_JSON | レスポンス本文が JSON ではありませんでした。 |
BUYER_DOWN | ローカルの buyer に到達できません。 |
BUYER_HTTP_<n> | ローカルの buyer が 2xx 以外のステータスを返しました。 |
BUYER_INVALID_JSON | buyer のレスポンス本文が JSON ではありませんでした。 |
SESSION_NOT_FOUND | get_session_status でチャネルが見つかりませんでした。 |
BUYER_NOT_FOUND | get_buyer でエクスプローラーのインデックス内にアドレスが見つかりませんでした。 |
INVALID_CURSOR | cursor 引数が、以前の呼び出しで返された有効なページネーショントークンではありません。INVALID_INPUT として通知されます。 |
INTERNAL | その他すべて(サニタイズ済み。スタックトレースや環境変数の値は含まれません)。 |
セキュリティモデル
@antfeed/mcp のインストールは、明示的な信頼判断を伴います。自律型エージェントにこのツールを呼び出させる前に、このセクションをお読みください。
- エージェントの呼び出し元は信頼できないものとして扱われます。 ネットワーク呼び出しの前に、すべてのツール引数を厳格な zod スキーマで検証します。
peerId/providerPeerIdは0x+ 40 桁の 16 進数である必要があります。sessionIdは0x+ 1~128 桁の 16 進数である必要があります。serviceは短い識別子の範囲に制限されます。initialDepositUsdcはANTSEED_MAX_DEPOSIT_USDC(デフォルトは 10 USDC)によって上限が設定されます。プロンプトインジェクションを受けたエージェントが、この MCP を通じて任意の金額を移動したり、URL/パストラバーサルのペイロードを作成したりすることはできません。 - エクスプローラーは半信頼として扱われます。
ANTFEED_EXPLORER_URLからのすべてのレスポンスを、厳格な zod 形式に照らして再検証します。アドレスは 40 桁の 16 進数、チャネル ID は 16 進数、数値フィールドは有限値である必要があります。レスポンスは 2 MB のバイト上限を設けてストリーミングされるため、侵害または乗っ取られたエンドポイントによってメモリが枯渇することはありません。プレーンなhttp://が許可されるのはループバックホストのみです。ループバック以外の URL にはhttps://が必要です。 - ローカルの buyer は署名キーを保持します。この MCP がキーを参照することはありません。 MCP が buyer URL に
create_session(上限のある入金額、検証済みの入力を含む)を POST することはありますが、キー素材を読み取ったり保存したりすることはありません。別のローカルプロセスによる buyer のなりすまし(共有/マルチテナントの開発環境など)を防ぐには、ANTSEED_BUYER_STRICT=1を設定し、buyer が/healthに{"service":"antseed-buyer"}を返すようにしてください。 - パッケージの配布内容は最小限です。
dist/、README、LICENSE のみで、postinstall スクリプト、テストファイル、ローカルパスが漏れるソースマップは含まれません。npm audit --omit=devでは、本番ツリーの脆弱性はゼロと報告されます。依存関係の範囲は~に固定されています。公開時には npm provenance でパッケージに署名するため、利用者は tarball がこのリポジトリから作成されたことを検証できます(npm audit signatures)。 - エラーメッセージはサニタイズされます。 エラーがエージェントまたは MCP ホストのログに届く前に、ファイルパス、IP アドレス、
UPPER_CASE_VAR=…形式のパターンを除去します。
セキュリティ上の懸念に気づいた場合は、非公開の GitHub Security Advisory を作成してください。72 時間以内にトリアージします。セキュリティに影響するバグについて、公開 issue を作成しないでください。
販売者向け
すでに AntSeed の販売者として運営しており、AntFeed Explorer ディレクトリに掲載されている場合、追加登録なしでこの MCP から自動的に見つけられます。新しい販売者は、オンチェーンで取引するだけでディレクトリに登録されます(Explorer は Base メインネットの AntSeed Channels イベントをインデックス化しています)。/api/services と /api/sellers/{address}/services が追加されると、クライアントを変更しなくても get_pricing と list_providers#servicesOffered に情報が反映されます。
開発
npm install
npm run build # tsc → dist/
npm test # vitest, fully mocked, zero network
node dist/index.js # stdio server (MCP host wires this up; not interactive)
公式インスペクターで MCP ハンドシェイクをスモークテストします。
npx @modelcontextprotocol/inspector dist/index.js
レジストリへの登録
このパッケージは公開 MCP サーバーレジストリ(registry.modelcontextprotocol.io、Smithery、PulseMCP、Glama、mcp.so)に登録されるため、MCP 対応クライアントなら、上記のスニペットをコピー&ペーストしなくても検出してインストールできます。公式レジストリへの登録情報の正本は server.json、Smithery の記述ファイルは smithery.yaml です。最新の URL を含む登録チェックリスト全体は REGISTRIES.md にあります。レジストリのリポジトリ:https://github.com/modelcontextprotocol/registry。
Vercel ダッシュボードでツールごとの利用状況を確認する方法については、USAGE.md をご覧ください。
リンク
- AntFeed Explorer:https://antfeed.org
- AntFeed Explorer API ドキュメント(OpenAPI 3.0):https://antfeed.org/api/openapi.json
- AntSeed プロトコルコントラクト(Base メインネット):Explorer の About ページをご覧ください
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。