SwapChan について
SwapChanは、AIエージェント向けにEVMの同一チェーン内およびクロスチェーンのスワップ見積もりと未署名トランザクションを提供するMCPサーバーです。ルート比較、チェーン・トークン情報、取引状況も扱い、署名やブロードキャストは行いません。
主な機能
- 01対応チェーンとトークンの一覧
- 02最適ルートのスワップ見積もり
- 03同一チェーン内とクロスチェーンの比較
- 04未署名スワップトランザクションの構築
- 05ルート状況の確認
活用シーン
- 01EVMトークンスワップ前のルート比較
- 02別途確認・署名するための取引準備
- 03ルートの進捗と宛先チェーンの取引ハッシュ確認
MCP 対応
SwapChanはStreamable HTTPまたはstdioで、6種類のスワップ・ルートツールをMCPクライアントに提供します。リモートHTTPはAPIキー認証とレート制限に対応し、署名やブロードキャストは行いません。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.swapchan.com/mcpclaude mcp add --transport http tsavo-swapchan https://mcp.swapchan.com/mcp{"mcpServers":{"tsavo-swapchan":{"type":"http","url":"https://mcp.swapchan.com/mcp"}}}Cursor で開く{"servers":{"tsavo-swapchan":{"type":"http","url":"https://mcp.swapchan.com/mcp"}}}VS Code で開く{"mcpServers":{"tsavo-swapchan":{"type":"http","url":"https://mcp.swapchan.com/mcp"}}}{"mcpServers":{"tsavo-swapchan":{"serverUrl":"https://mcp.swapchan.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
@swapchan/mcp — SwapChan MCP サーバー
AI エージェント向けの Swap-chan: Model Context Protocol を介した、同一チェーン内およびクロスチェーンの最良価格スワップ見積もり、ルート比較、未署名のスワップトランザクションを提供します。
- 公式 MCP TypeScript SDK v2(
@modelcontextprotocol/server2.3.1、仕様 2026-07-28。ステートレスで、2025 年時代のクライアントにも対応)。 - トランスポート:
/mcpでの Streamable HTTP(リモート、API キー認証+キーごとのレート制限)と stdio(--stdio、ローカル)。 packages/shared/README.mdに記載された固定契約を使用し、HTTP 経由でapps/apiと通信します。チェーンキーも署名もブロードキャストも一切行いません。
ツール
| ツール | 機能 |
|---|---|
get_supported_chains | チェーンと各チェーンのチェーンちゃんマスコット |
get_supported_tokens | トークン一覧。chainId / search は省略可能 |
get_quote | 最良の単一ルート(ガス代+手数料差し引き後の純 USD 額) |
compare_routes | ランク順の全ルート。alsoToChainIds で同一チェーン内とクロスチェーンの送信先を比較 |
build_swap_tx | 最良または選択したルートの未署名 tx。必要に応じて正確な金額の ERC-20 承認 tx と、(RPC_URL_<chainId> が設定されている場合は)eth_call シミュレーションも返します |
get_route_status | pending / done / failed / not_found と送信先 tx ハッシュ |
金額:amount には 10 進数の文字列("1.5"。トークンの小数桁数で変換)を渡すか、amountBaseUnits(wei)を渡します。スリッページの単位は bps で、デフォルトは 50、上限は MCP_MAX_SLIPPAGE_BPS(デフォルト 300)です。すべてのエラーは、読みやすい理由を含む isError ツール結果として返されます。
permit2 は現在常に null です。API 契約 v1 にはまだ Permit2 の型付きデータがありません。apps/api で追加された際には、そのまま渡されます。
実行
pnpm --filter @swapchan/mcp build
SWAPCHAN_API_URL=http://localhost:8787 MCP_API_KEYS=key1,key2 pnpm --filter @swapchan/mcp start # http://127.0.0.1:8788/mcp
SWAPCHAN_API_URL=http://localhost:8787 node apps/mcp/dist/index.js --stdio # stdio
node apps/mcp/dist/mockApi.js # fake API on :8787 for local play
| 環境 | デフォルト | |
|---|---|---|
SWAPCHAN_API_URL | http://localhost:8787 | apps/api のベース URL(NEXT_PUBLIC_API_URL にフォールバックします) |
SWAPCHAN_API_KEY | – | 設定されている場合、上流に x-api-key として送信されます |
MCP_HOST / MCP_PORT | 127.0.0.1 / 8788 | 本番環境で TLS プロキシの背後に配置する場合は MCP_HOST=0.0.0.0 を設定します |
MCP_API_KEYS | – | カンマ区切りのキー。クライアントは x-api-key: <key> または Authorization: Bearer <key> を送信します |
MCP_ALLOW_ANONYMOUS | off | キーなしの HTTP を許可します(IP ごとにレート制限されます) |
MCP_RATE_LIMIT_PER_MIN | 60 | キーごとのトークンバケット。429 と Retry-After |
MCP_MAX_SLIPPAGE_BPS / MCP_DEFAULT_SLIPPAGE_BPS | 300 / 50 | |
RPC_URL_<chainId> | – | build_swap_tx で許容範囲チェックとシミュレーションを有効にします |
クライアント設定
Claude Code
claude mcp add --transport http swapchan https://mcp.swapchan.com/mcp --header "x-api-key: YOUR_KEY"
Claude Desktop(claude_desktop_config.json、ローカル stdio)
{
"mcpServers": {
"swapchan": {
"command": "node",
"args": ["/path/to/SwapChan/apps/mcp/dist/index.js", "--stdio"],
"env": { "SWAPCHAN_API_URL": "https://api.swapchan.com" }
}
}
}
Cursor(~/.cursor/mcp.json または .cursor/mcp.json)
{
"mcpServers": {
"swapchan": { "url": "https://mcp.swapchan.com/mcp", "headers": { "x-api-key": "YOUR_KEY" } }
}
}
MCP Inspector
npx @modelcontextprotocol/inspector --cli http://127.0.0.1:8788/mcp --transport http --header "x-api-key: key1" --method tools/list
レジストリ
server.json(スキーマ 2025-12-11、検証済み)は、mcp-publisher publish を使用してリモートサーバーを io.github.TSavo/swapchan として公開します。
ホスト先は https://mcp.swapchan.com/mcp です。
テスト
pnpm --filter @swapchan/mcp test は API コントラクトのモック(src/mockApi.ts)を起動し、SDK の
Client を Streamable HTTP 経由で使用して実際の HTTP サーバーをテストします。ツール一覧、すべてのツール、認証 401、429 レート制限、スリッページ上限、入力検証、上流エラーを確認します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。