Gatefare — paid-API marketplace について
@gatefare/mcpは、ClaudeやCursorなどのMCPクライアントをGatefareの有料API市場につなぎ、検索、呼び出し、公開を可能にします。x402でBase上のUSDC決済を行い、秘密鍵は端末内で署名に使われます。
主な機能
- 01有料APIの検索と絞り込み
- 02APIの詳細とカテゴリの確認
- 03x402決済によるAPI呼び出し
- 04ウォレット残高と予算の管理
- 05API公開と収益の確認
活用シーン
- 01エージェント向けの天気API検索と呼び出し
- 02予定するAPI呼び出し費用の見積もり
- 03有料APIの公開と掲載情報の管理
MCP 対応
MCP サーバーとして、Gatefare市場の検索、有料API呼び出し、API公開のツールを対応クライアントに提供します。ウォレット秘密鍵またはPATの設定に応じてツールが有効になります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @gatefare/mcpWALLET_PRIVATE_KEYシークレットEVM private key (32 bytes hex). Required for buyer tools (call_api, get_wallet_balance, estimate_cost). Stays on the user's machine.WALLET_BUDGET_USDOptional runtime spend cap in USD; call_api throws BUDGET_EXHAUSTED when reached.WALLET_NETWORKNetwork identifier. Defaults to eip155:8453 (Base mainnet). Use eip155:84532 for Sepolia testnet.GATEFARE_PATシークレットPersonal access token (gfpat_...) from gatefare.io/dashboard/tokens. Required for publisher tools (register_api, list_my_apis, update_api, get_revenue, distribute).GATEFARE_BASE_URLOverride the Gatefare base URL (defaults to https://gatefare.io). Useful for self-hosted deployments.ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
7掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| page | integer | いいえ | ページ番号 |
| sort | enum | いいえ | 並べ替え順popular | new | price-asc |
| query | string | いいえ | 全文検索クエリ |
| category | string | いいえ | カテゴリーの slug |
| max_price | number | いいえ | USD 建ての上限価格 |
| include_testnet | boolean | いいえ | testnet APIを含める |
詳細
@gatefare/mcp
AI エージェントにウォレットとマーケットプレイスを提供します。
@gatefare/mcpは、Claude Desktop、Cursor、または MCP 互換エージェントを、有料 HTTP API のカタログである Gatefare に接続する Model Context Protocol サーバーです。支払いは、オープンな x402 標準を通じて Base 上の USDC で決済されます — SaaS キーもサブスクリプションもエスクローも不要です。非カストディアル方式で、署名はローカルで行われ、秘密鍵がマシンの外に出ることはありません。

┌─────────────┐ ┌──────────────┐ ┌─────────────────┐
│ Claude / │ MCP stdio │ @gatefare/mcp│ HTTP + x402 │ gatefare.io │
│ Cursor / │ ─────────────► │ (this repo)│ ─────────────► │ proxy + │
│ your agent │ │ │ │ catalog │
└─────────────┘ └──────┬───────┘ └─────────────────┘
│
│ EIP-3009 sign
▼
┌─────────────┐
│ Base USDC │
└─────────────┘
クイックスタート
1. クライアントに追加する
Claude Desktop — ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows):
{
"mcpServers": {
"gatefare": {
"command": "npx",
"args": ["-y", "@gatefare/mcp"]
}
}
}
Cursor — ~/.cursor/mcp.json またはプロジェクトレベルの .cursor/mcp.json:
{
"mcpServers": {
"gatefare": {
"command": "npx",
"args": ["-y", "@gatefare/mcp"]
}
}
}
クライアントを再起動します。エージェントで、読み取り専用のツールが5つ利用可能になります(検索と安全確認)。次を試してください。
「Gatefare で天気 API を検索して。」
2. 有料の呼び出しを行うためにウォレットを追加する
同じ設定に env を追加します。
{
"mcpServers": {
"gatefare": {
"command": "npx",
"args": ["-y", "@gatefare/mcp"],
"env": {
"WALLET_PRIVATE_KEY": "0xYOUR_KEY",
"WALLET_BUDGET_USD": "5.00"
}
}
}
}
購入者向けツール(call_api、get_wallet_balance、estimate_cost)が利用可能になります。
WALLET_BUDGET_USD の上限は実行時のセーフティネットです。確実に上限を設定するには、使ってもよい金額だけをウォレットに入金してください。
「ロンドンの現在の天気は? 最大 $0.001 まで使って。」
3. (任意)独自の API を公開する
gatefare.io/dashboard/tokens で PAT を取得し、次を追加します。
"env": {
"GATEFARE_PAT": "gfpat_..."
}
公開者向けツール(register_api、list_my_apis、update_api、get_revenue、
distribute)が表示されます。
「https://api.example.com/sentiment の API を、1回の呼び出しにつき $0.001 で公開して。」
ツール
4つのドメインにわたる13個のツールがあります。ツールは設定されている環境変数に応じて自動登録されるため、エージェントには使用できないツールが表示されることはありません。
検索 — 常に利用可能
| ツール | 説明 |
|---|---|
gatefare.search_apis | 価格、カテゴリ、並べ替えなどのフィルターを使ってカタログを全文検索します |
gatefare.get_api | スラッグまたは handle/urlName を指定して、1つの API の詳細を取得します |
gatefare.list_categories | API 件数とともにすべてのカテゴリを取得します |
gatefare.suggest | クエリ文字列のオートコンプリート候補を取得します |
購入者 — WALLET_PRIVATE_KEY が必要
| ツール | 説明 |
|---|---|
gatefare.call_api | 有料の呼び出しを行います。402 → 署名 → 再試行を自動的に処理します |
gatefare.get_wallet_balance | Base 上の USDC と ETH、および残りの実行時予算を取得します |
gatefare.estimate_cost | 予定している N 回の呼び出しの合計コストを見積もります |
公開者 — GATEFARE_PAT が必要
| ツール | 説明 |
|---|---|
gatefare.register_api | 新しい有料 API を公開します |
gatefare.list_my_apis | 公開した API とその統計情報を一覧表示します |
gatefare.update_api | メタデータ、価格、ターゲット URL を編集します |
gatefare.get_revenue | 収益の時系列データと合計を取得します |
gatefare.distribute | オンチェーンの distribute() 支払いを実行します(破壊的操作) |
安全性 — 常に利用可能
| ツール | 説明 |
|---|---|
gatefare.report_abuse | 悪意のある API /盗用された API を報告します(DMCA、詐欺、マルウェアなど) |
設定
| 変数 | デフォルト | 必要な用途 |
|---|---|---|
GATEFARE_BASE_URL | https://gatefare.io | —(セルフホスト環境での上書き用) |
WALLET_PRIVATE_KEY | — | 任意の購入者向けツール |
WALLET_BUDGET_USD | 無制限 | 任意の支出上限 |
WALLET_NETWORK | eip155:8453 | Sepolia テストネットでは eip155:84532 |
GATEFARE_PAT | — | 任意の公開者向けツール |
LOG_LEVEL | info | 詳細な標準エラー出力には debug |
例
発見してすぐ購入(Claude Desktop)
あなた: 0.001ドル未満の天気 API を探して、「Tokyo」で呼び出してください。
Claude:
max_price: 0.001を指定してgatefare.search_apisを呼び出しています…
@alice のdemo-weatherが見つかりました。価格は1回あたり0.001ドルです。
slug: "demo-weather"、query: {city: "Tokyo"}を指定してgatefare.call_apiを呼び出しています…
東京は22°Cで、ところどころ曇りです。0.001 USDCを支払いました。領収書:settled-tx-0x9a…
プログラムからの利用 — Python エージェント
from mcp import ClientSession, StdioServerParameters
from mcp.client.stdio import stdio_client
server = StdioServerParameters(
command="npx",
args=["-y", "@gatefare/mcp"],
env={"WALLET_PRIVATE_KEY": "0x...", "WALLET_BUDGET_USD": "1.00"},
)
async with stdio_client(server) as (r, w):
async with ClientSession(r, w) as s:
await s.initialize()
result = await s.call_tool(
"gatefare.call_api",
arguments={"slug": "demo-weather", "query": {"city": "Tokyo"}},
)
print(result.content[0].text)
実行可能なバリエーションについては、examples/ をご覧ください。Claude Desktop、Cursor、Python、
TypeScript、および発見のみの一連の手順を紹介しています。
AI エージェントを構築しない場合:適切なツールの選び方
バックエンドから x402 API の料金を支払う(エージェントなし)場合は、Coinbase の
公式 x402 SDK(x402-python(PyPI)、coinbase/x402/go、…/java、または
@x402/fetch)を使用してください。これらの SDK が
支払いフローを処理するため、この MCP サーバーは必要ありません。
任意の言語から Gatefare カタログを参照する場合は、
REST API を直接利用してください:gatefare.io/api/catalog
(OpenAPI 3.1 仕様)。
ユースケースごとに適したツールの詳しい説明は、
docs/integrations.md をご覧ください。
直接 CLI を実行する(デバッグ用)
# Run the server in foreground; talks JSON-RPC over stdio.
npx -y @gatefare/mcp
# In another terminal, send a frame:
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | \
npx -y @gatefare/mcp
エラー
ツールの結果には isError: true と、構造化された本文
{ error: <code>, message: <human>, details?: <any> } が含まれます。コードは安定しているため、
エージェントはコードに応じて再試行や表示の処理を切り替えられます。
| コード | 意味 |
|---|---|
INVALID_INPUT | 入力が zod の検証に失敗しました |
WALLET_NOT_CONFIGURED | 購入者向けツールを使うには WALLET_PRIVATE_KEY を設定してください |
PAT_NOT_CONFIGURED | 公開者向けツールを使うには GATEFARE_PAT を設定してください |
BUDGET_EXHAUSTED | 実行時の予算上限に達しました |
INSUFFICIENT_BALANCE | ウォレットの USDC 残高が不足しています |
PRICE_TOO_HIGH | サーバーの価格が max_price を超えています |
API_NOT_FOUND | スラッグが存在しないか、一時停止されています |
UPSTREAM_ERROR | 有料 API が 2xx 以外を返したか、402 の形式が不正でした |
RATE_LIMITED | Gatefare にリクエストを制限されました |
NETWORK_ERROR | Gatefare に接続できませんでした |
GATEFARE_API_ERROR | Gatefare が 4xx / 5xx を返しました |
仕組み(30秒でわかる概要)
- エージェントが
gatefare.call_api { slug: "demo-weather", … }を呼び出します。 - 支払いはまだ行わずに、
GET https://gatefare.io/p/demo-weatherを実行します。 - Gatefare プロキシが
accepts: [{network, payTo, maxAmountRequired, …}]を含む 402 Payment Required を返します。 - 設定されたネットワーク上で、指定の金額と送金先に対する EIP-3009
transferWithAuthorizationに署名します。 - 署名済みの
X-Paymentヘッダー(base64 エンコードされた JSON、x402 v2)を付けてリクエストを再試行します。 - Gatefare が署名を検証し、USDC の送金を決済してから、呼び出しを上流 API にプロキシします。
- 上流からのレスポンス(および支払い領収書)をエージェントに返します。
署名は1回限り有効で、時間制限があります。また、この特定の payTo 宛ての特定の送金以外の目的で
あなたのマシンから外部に送信されることはありません。秘密鍵がログに記録されることはありません。
セキュリティ
- 非カストディアル。 秘密鍵は環境変数内に保管され、署名はローカルで行われます。 Gatefare のサービスが秘密鍵を確認することはありません。
- ネットワーク混同への耐性。 悪意のあるゲートウェイが、メインネットのユーザーに Sepolia 専用の要件を返した場合は拒否されます。ユーザーが設定していないチェーンに対して署名することはありません。
- 暗号学的に安全なランダム nonce。
Date.now()に基づく衝突は発生しません。 - サーバーがそれ以上の時間を要求しても、有効期間は最大 1 時間に制限されます。
- 厳格な入力検証。 スラッグは
^[a-z0-9_-]+$に一致し、URL エンコードされます。 パストラバーサルは発生しません。登録時にtargetUrlはfile://、localhost、クラウドメタデータ IP、.localおよび.internalホストをブロックします。 - シークレットの取り扱い。 テストでは、秘密鍵と PAT が stderr/stdout に一切出力されないことを検証します。
開発
git clone https://github.com/gatefareio/mcp-server.git
cd mcp-server
npm install
npm run typecheck
npm test # 138 unit tests
npm run test:e2e # 10 e2e tests against live gatefare.io (set GATEFARE_E2E=1)
npm run build
クライアント設定でローカルチェックアウトを使用するには:
npm link
# in claude_desktop_config.json:
# "command": "gatefare-mcp"
アーキテクチャ
src/
├── index.ts # entry — wires stdio transport
├── server.ts # McpServer instance + tool registration
├── config.ts # env parsing, capability detection
├── client.ts # REST client (wraps fetch)
├── x402.ts # 402 parsing + EIP-3009 signing
├── types.ts # shared types + GatefareError
└── tools/
├── discovery.ts # search_apis, get_api, list_categories, suggest
├── buyer.ts # call_api, get_wallet_balance, estimate_cost
├── publisher.ts # register_api, list_my_apis, update_api, get_revenue, distribute
└── safety.ts # report_abuse
テストの構成
tests/
├── config.test.ts # env parsing edges
├── client.test.ts # HTTP client error mapping
├── x402.test.ts # signing + parsing primitives
├── x402-flow.test.ts # full 402 → sign → retry handshake (mocked fetch)
├── server.test.ts # capability-driven tool registration
├── init.test.ts # subprocess: bootstrap, env crashes, secret leakage
├── stdio-protocol.test.ts # stdout pollution + recovery from tool errors
├── stability.test.ts # 100 concurrent calls, memory baseline, ReDoS
├── tools/
│ ├── discovery.test.ts
│ ├── buyer.test.ts
│ ├── buyer-flow.test.ts
│ ├── publisher.test.ts
│ └── safety.test.ts
└── integration/
└── e2e.test.ts # real gatefare.io, gated by GATEFARE_E2E=1
コントリビュート
Issue や PR を歓迎します。ワークフロー、スタイルガイド、新しいツールの追加方法については、CONTRIBUTING.md を参照してください。
関連パッケージ
Gatefare は、ファーストパーティ製パッケージを 3 つ提供しています。これらは同じ x402 プロトコルとバックエンドを共有しているため、プロジェクトのニーズに応じて組み合わせて使用できます。
| パッケージ | 配布先 | 用途 |
|---|---|---|
@gatefare/mcp(このパッケージ) | npm | Claude Desktop/Cursor/任意の MCP ホストに追加し、カタログの検索や有料 API の呼び出しに使えるツールをエージェントに提供します |
@gatefare/client | npm | MCP の外部で、コードから API の支払いを行う TypeScript/JavaScript エージェント向け |
gatefare | PyPI | Python エージェント(LangChain、LlamaIndex など)向け |
ライセンス
MIT © Gatefare
リンク
- 🌐 マーケットプレイス:gatefare.io
- 📚 API ドキュメント:gatefare.io/docs
- 🤖 LLM コンテキスト(単一ファイル):gatefare.io/llms-full.txt
- 📐 OpenAPI 仕様:gatefare.io/openapi.json
- 🐦 Twitter:@Gatefareio
- 🔌 Model Context Protocol:modelcontextprotocol.io
- 💸 x402 標準:x402.org
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。