mcpField
G
Gatefare — paid-API marketplace

Gatefare — paid-API marketplace

ローカル
gatefare.io開発ツール222 週間前に更新

Gatefare — paid-API marketplace について

@gatefare/mcpは、ClaudeやCursorなどのMCPクライアントをGatefareの有料API市場につなぎ、検索、呼び出し、公開を可能にします。x402でBase上のUSDC決済を行い、秘密鍵は端末内で署名に使われます。

主な機能

  1. 01有料APIの検索と絞り込み
  2. 02APIの詳細とカテゴリの確認
  3. 03x402決済によるAPI呼び出し
  4. 04ウォレット残高と予算の管理
  5. 05API公開と収益の確認

活用シーン

  1. 01エージェント向けの天気API検索と呼び出し
  2. 02予定するAPI呼び出し費用の見積もり
  3. 03有料APIの公開と掲載情報の管理

MCP 対応

MCP サーバーとして、Gatefare市場の検索、有料API呼び出し、API公開のツールを対応クライアントに提供します。ウォレット秘密鍵またはPATの設定に応じてツールが有効になります。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"gatefareio": {
"command": "npx",
"args": [
"-y",
"@gatefare/mcp"
],
"env": {
"WALLET_PRIVATE_KEY": "<WALLET_PRIVATE_KEY>",
"WALLET_BUDGET_USD": "<WALLET_BUDGET_USD>",
"WALLET_NETWORK": "<WALLET_NETWORK>",
"GATEFARE_PAT": "<GATEFARE_PAT>",
"GATEFARE_BASE_URL": "<GATEFARE_BASE_URL>"
}
}
}
}
起動コマンドnpx -y @gatefare/mcp
設定が必要な環境変数
WALLET_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 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@gatefare/mcp1.1.0

ツール

7

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
pageintegerいいえページ番号
sortenumいいえ並べ替え順popular | new | price-asc
querystringいいえ全文検索クエリ
categorystringいいえカテゴリーの slug
max_pricenumberいいえUSD 建ての上限価格
include_testnetbooleanいいえtestnet APIを含める

詳細

@gatefare/mcp

npm version npm downloads bundle size License: MIT CI MCP Registry mcp.so Glama Base

AI エージェントにウォレットとマーケットプレイスを提供します。

@gatefare/mcp は、Claude Desktop、Cursor、または MCP 互換エージェントを、有料 HTTP API のカタログである Gatefare に接続する Model Context Protocol サーバーです。支払いは、オープンな x402 標準を通じて Base 上の USDC で決済されます — SaaS キーもサブスクリプションもエスクローも不要です。非カストディアル方式で、署名はローカルで行われ、秘密鍵がマシンの外に出ることはありません。

デモ:インストール、ツール一覧の表示、gatefare.io への実際の呼び出し

┌─────────────┐                ┌──────────────┐                ┌─────────────────┐
│ 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_categoriesAPI 件数とともにすべてのカテゴリを取得します
gatefare.suggestクエリ文字列のオートコンプリート候補を取得します
購入者 — WALLET_PRIVATE_KEY が必要
ツール説明
gatefare.call_api有料の呼び出しを行います。402 → 署名 → 再試行を自動的に処理します
gatefare.get_wallet_balanceBase 上の 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_URLhttps://gatefare.io—(セルフホスト環境での上書き用)
WALLET_PRIVATE_KEY—任意の購入者向けツール
WALLET_BUDGET_USD無制限任意の支出上限
WALLET_NETWORKeip155:8453Sepolia テストネットでは eip155:84532
GATEFARE_PAT—任意の公開者向けツール
LOG_LEVELinfo詳細な標準エラー出力には 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_LIMITEDGatefare にリクエストを制限されました
NETWORK_ERRORGatefare に接続できませんでした
GATEFARE_API_ERRORGatefare が 4xx / 5xx を返しました

仕組み(30秒でわかる概要)

  1. エージェントが gatefare.call_api { slug: "demo-weather", … } を呼び出します。
  2. 支払いはまだ行わずに、GET https://gatefare.io/p/demo-weather を実行します。
  3. Gatefare プロキシが accepts: [{network, payTo, maxAmountRequired, …}] を含む 402 Payment Required を返します。
  4. 設定されたネットワーク上で、指定の金額と送金先に対する EIP-3009 transferWithAuthorization に署名します。
  5. 署名済みの X-Payment ヘッダー(base64 エンコードされた JSON、x402 v2)を付けてリクエストを再試行します。
  6. Gatefare が署名を検証し、USDC の送金を決済してから、呼び出しを上流 API にプロキシします。
  7. 上流からのレスポンス(および支払い領収書)をエージェントに返します。

署名は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(このパッケージ)npmClaude Desktop/Cursor/任意の MCP ホストに追加し、カタログの検索や有料 API の呼び出しに使えるツールをエージェントに提供します
@gatefare/clientnpmMCP の外部で、コードから API の支払いを行う TypeScript/JavaScript エージェント向け
gatefarePyPIPython エージェント(LangChain、LlamaIndex など)向け

ライセンス

MIT © Gatefare

リンク

コメント

MCP は初めてですか?

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

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