Swap Api について
Swap Api MCP Server は SwapAPI の MCP サーバーで、EVM チェーン上のトークンスワップに必要な実行可能なトランザクションデータを AI エージェントに提供します。スワップを自動化するエージェントを開発する人を対象としており、README によると API キーは不要です。
主な機能
- 01実行可能なスワップ用 calldata の返却
- 02チェーン ID による EVM ネットワークの指定
- 03最大スリッページの設定(既定は 0.5%)
- 04ルーターアドレス、データ、value、ガス見積もりの返却
活用シーン
- 01EVM チェーン上でトークンスワップを行う AI エージェント
- 02送信前のスワップ見積もりとトランザクションデータの準備
- 03Claude Desktop や Cursor からのスワップ機能の呼び出し
MCP 対応
MCP サーバーとして、スワップ用トランザクションデータを返す swap_tokens ツールを MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
SwapAPI MCP サーバー
SwapAPI 用の MCP(Model Context Protocol)サーバーです。AI エージェントが、あらゆる EVM チェーンで実行可能なトークンスワップの calldata を取得できます。
インストール
npm install -g @swapapi/mcp
または、npx から直接使用します。
npx @swapapi/mcp
クライアントの設定
Claude Desktop
Claude Desktop の設定に追加します。
{
"mcpServers": {
"swapapi": {
"command": "npx",
"args": ["@swapapi/mcp"]
}
}
}
または、ローカルにインストールして使用します。
{
"mcpServers": {
"swapapi": {
"command": "npx",
"args": ["tsx", "/path/to/swap-api/mcp/mcp-server.ts"]
}
}
}
Cursor
Cursor の設定(Settings → MCP)に追加します。
{
"mcpServers": {
"swapapi": {
"command": "npx",
"args": ["@swapapi/mcp"]
}
}
}
その他のクライアント
MCP 互換のクライアントであれば、同じ設定形式を使用できます。MCP サーバーの設定を追加する場所については、お使いのクライアントのドキュメントをご確認ください。
利用可能なツール
swap_tokens
EVM チェーンでトークンをスワップするための、実行可能なトランザクションデータを取得します。
パラメーター:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
chainId | number | はい | チェーン ID(1=Ethereum、8453=Base、42161=Arbitrum など) |
tokenIn | string | はい | 入力トークンのアドレス。ネイティブトークン(ETH、MATIC など)には 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE を使用します |
tokenOut | string | はい | 出力トークンのアドレス |
amountIn | string | はい | 最小単位での数量(小数点以下18桁のトークンは wei、6桁のトークンはマイクロ単位) |
sender | string | はい | トランザクションに署名して送信するウォレットのアドレス |
maxSlippage | number | いいえ | 最大スリッページ許容値 0~1(デフォルト:0.005 = 0.5%) |
戻り値:
{
"to": "0x...", // Router contract address to call
"data": "0x...", // ABI-encoded swap calldata
"value": "1000000000000000000", // Native token value (if swapping from native)
"gas": "150000", // Estimated gas limit
"guaranteedOut": "..." // Minimum output amount after slippage
}
例
Base で 0.001 ETH を USDC にスワップ
{
"chainId": 8453,
"tokenIn": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
"tokenOut": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amountIn": "1000000000000000",
"sender": "0xYourAddress"
}
Arbitrum でスリッページ 1% に設定して USDC を ETH にスワップ
{
"chainId": 42161,
"tokenIn": "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
"tokenOut": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE",
"amountIn": "10000000",
"sender": "0xYourAddress",
"maxSlippage": 0.01
}
事前確認リスト
スワップトランザクションを送信する前に、以下を確認してください。
- ERC-20 の承認:
tokenInがネイティブトークンでない場合、sender が少なくともamountInの分だけルーターを承認済みであることを確認します - 残高の確認:sender の残高が
amountIn(ネイティブトークンの場合はvalueも加算)に対して十分であることを確認します - ガスの見積もり:トランザクションに対して
eth_estimateGasを呼び出し、20%のバッファーを加算します - シミュレーション:
eth_callを実行して、トランザクションがリバートしないことを確認します - タイミング:見積もりの取得後30秒以内に送信します(calldata には有効期限があります)
API の詳細については、メインの README.md をご覧ください。
開発
cd mcp
npm install
npm start
テスト
テストスイートを実行します。
npm test
または、MCP Inspector を使用します。
npx @modelcontextprotocol/inspector tsx mcp-server.ts
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。