Fuse Network について
Fuse Networkは、Fuseブロックチェーンのデータ参照とFusebox APIの操作に使うMCP サーバーです。AIエージェント向けに読み取り専用のホスト型エンドポイントを提供し、トランザクション送信などにはセルフホスト版を利用できます。
主な機能
- 01残高、トークン、ステーキング、取引データの参照
- 02Fuseboxのポートフォリオ・取引・Explorer APIへのアクセス
- 03送金、コントラクト呼び出しとデプロイ
- 04ERC-4337スマートアカウント操作の送信
- 05EIP-191およびEIP-712データへの署名
活用シーン
- 01Fuseアカウントの残高とアクティビティを確認
- 02トークン価格やステーキング विकल्पを確認
- 03セルフホスト版からトランザクションを送信
- 04Fuseスマートアカウントやスワップを操作
MCP 対応
Fuse RPC、Fusebox SDK、REST APIの機能をMCP ツールとして提供します。ホスト型エンドポイントは読み取り専用で、書き込みツールには秘密鍵を設定したセルフホスト版が必要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.fuse.io/mcpclaude mcp add --transport http fuse https://mcp.fuse.io/mcp{"mcpServers":{"fuse":{"type":"http","url":"https://mcp.fuse.io/mcp"}}}Cursor で開く{"servers":{"fuse":{"type":"http","url":"https://mcp.fuse.io/mcp"}}}VS Code で開く{"mcpServers":{"fuse":{"type":"http","url":"https://mcp.fuse.io/mcp"}}}{"mcpServers":{"fuse":{"serverUrl":"https://mcp.fuse.io/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
50| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| address | string | はい | 照会する EOA またはコントラクトアドレス(0x プレフィックス付き、EIP-55 形式または小文字)。 |
| tokenAddress | string | いいえ | 任意の ERC-20 トークンアドレス。省略すると、ネイティブ FUSE 残高を取得します。 |
詳細
Fuse MCP サーバー
Fuse ブロックチェーン向けのModel Context Protocolサーバーです。AI エージェント(Claude、Cursor、Gemini など)が、標準のツールインターフェースを通じて Fuse のオンチェーンデータを読み取り、アカウント抽象化トランザクションを送信し、コントラクトをデプロイして、Fusebox API を操作できます。
利用方法は 2 通りです。
https://mcp.fuse.io/mcpのホスト型 — 無料、読み取り専用で、Fuse の API キーを設定済みです。エージェントの接続先に URL を指定するだけで利用できます。- Docker または
node dist/index.jsによるセルフホスト型 — 書き込みツール(秘密鍵の管理が必要)を使う場合や、より高いレート制限が必要な場合に必要です。
3 つのバックエンドを階層的に構成しています。
- viem JSON-RPC — 公開ノードで利用できるチェーンの基本機能に加え、EOA による書き込み(FUSE の送金、ERC-20 の転送、汎用コントラクト呼び出し、コントラクトのデプロイ、EIP-191/EIP-712 署名)。
- Fusebox Web SDK — 付加価値のある読み取り API(トークン価格、ステーキング、ポートフォリオ、UserOp 履歴)と、UserOperation を介した ERC-4337 スマートアカウントによる書き込み(Fuse ペイマスターを使ったガスレス処理も可能)。
- Fusebox REST API — Notification、Smart Wallet、Trade、Explorer エンドポイントへの直接アクセス。
AI エージェント向けクイックインストール(mcp.fuse.io のホスト型)
ホスト型エンドポイントは、https://mcp.fuse.io/mcp でStreamable HTTP トランスポートを提供します。読み取りツールはすべて有効ですが、書き込みツールは無効です(サーバー側の秘密鍵が必要です。下記の書き込み用セルフホストを参照してください)。
Claude Code
claude mcp add fuse --transport http https://mcp.fuse.io/mcp
後で削除するには、claude mcp remove fuse を実行します。
Cursor
設定 → MCP → 新しいサーバーを追加するか、~/.cursor/mcp.json を編集します。
{
"mcpServers": {
"fuse": {
"url": "https://mcp.fuse.io/mcp"
}
}
}
Claude Desktop
Claude Desktop は現在、MCP サーバーをローカルのサブプロセスとして起動するため、mcp-remote ブリッジを介してホスト型エンドポイントと通信します。~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows)を編集します。
{
"mcpServers": {
"fuse": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://mcp.fuse.io/mcp"]
}
}
}
Claude Desktop を再起動します。
Continue(VS Code/JetBrains)
~/.continue/config.yaml:
mcpServers:
- name: fuse
url: https://mcp.fuse.io/mcp
Cline/Roo Code
MCP サイドバー →「Add Remote Server」から追加し、URL に https://mcp.fuse.io/mcp を指定します。または、~/.cline/mcp_settings.json を編集します。
{
"mcpServers": {
"fuse": { "url": "https://mcp.fuse.io/mcp", "transport": "streamable-http" }
}
}
Zed
~/.config/zed/settings.json:
{
"context_servers": {
"fuse": { "command": { "path": "npx", "args": ["-y", "mcp-remote", "https://mcp.fuse.io/mcp"] } }
}
}
その他(汎用 Streamable HTTP クライアント)
エンドポイント:https://mcp.fuse.io/mcp
トランスポート:Streamable HTTP(POST + オプションの SSE アップグレード)
認証:ホスト型エンドポイントでは不要(読み取り専用です)
書き込み用セルフホスト
ホスト型エンドポイントでは、意図的に FUSE_PRIVATE_KEY を設定していません。書き込みツールは動作しません。トランザクションへの署名、コントラクトのデプロイ、ERC-4337 UserOp の送信が必要な場合は、独自のインスタンスを実行してください。
Docker
docker build -t fuse-mcp-server .
docker run --rm -p 3000:3000 \
-e MCP_TRANSPORT=http \
-e FUSEBOX_PUBLIC_API_KEY=pk_live_... \
-e FUSE_PRIVATE_KEY=0x... \
-e FUSE_USE_PAYMASTER=true \
fuse-mcp-server
エージェントの接続先に http://127.0.0.1:3000/mcp を指定します。上記と同じ設定を使い、URL を置き換えてください。
docker-compose
docker-compose.yml と同じ場所にある .env ファイルにシークレットを記述します。
FUSEBOX_PUBLIC_API_KEY=pk_live_...
FUSEBOX_SECRET_API_KEY=sk_live_...
FUSE_PRIVATE_KEY=0x...
FUSE_USE_PAYMASTER=true
次に、以下を実行します。
docker compose up -d
Node を直接実行(ローカルのサブプロセスクライアント向け stdio モード)
npm install
npm run build
FUSE_PRIVATE_KEY=0x... node dist/index.js
Claude Desktop など、サーバーをサブプロセスとして起動するクライアントの場合:
{
"mcpServers": {
"fuse": {
"command": "node",
"args": ["/absolute/path/to/fuse-mcp-server/dist/index.js"],
"env": {
"FUSEBOX_PUBLIC_API_KEY": "pk_live_...",
"FUSE_PRIVATE_KEY": "0x...",
"FUSE_USE_PAYMASTER": "true"
}
}
}
}
ツール(v0.2) — 全 50 種類
RPC 読み取り — 8 種類 (API キー不要)
| ツール | 説明 |
|---|---|
fuse_get_balance | ネイティブ FUSE または ERC-20 の残高を取得します。 |
fuse_get_transaction | トランザクションを取得します。 |
fuse_get_receipt | トランザクションレシートを取得します。 |
fuse_read_contract | 任意の view/pure 関数を呼び出します(ABI は自動取得)。 |
fuse_get_token_metadata | name/symbol/decimals/totalSupply を取得します。 |
fuse_get_gas_price | 現在のガス価格と EIP-1559 の手数料候補を取得します。 |
fuse_resolve_ens | ENS 名を解決します(ENS_RPC_URL が必要です)。 |
fuse_get_account_abstraction_info | スマートアカウントの ERC-4337 状態を取得します。 |
Fusebox SDK の読み取り — 10 (requires FUSEBOX_PUBLIC_API_KEY)
fuse_list_wallet_tokens、fuse_list_wallet_nfts、fuse_get_staking_options、fuse_get_staked_tokens、fuse_get_token_price、fuse_get_token_price_change、fuse_get_token_price_history、fuse_list_supported_tokens、fuse_get_trade_quote、fuse_get_user_operations。
Fusebox REST API — 14 (requires FUSEBOX_PUBLIC_API_KEY; Notification also needs FUSEBOX_SECRET_API_KEY)
Notification(8):fuse_notification_{create,get,list_project,update,delete}_webhook、fuse_notification_{add,remove,list}_addresses。
Smart Wallet(2):fuse_smart_wallet_authenticate、fuse_smart_wallet_get_actions。
Trade(3、SDK 以外):fuse_trade_indicative_price、fuse_trade_liquidity_sources、fuse_trade_price_change_over_duration。
Explorer(汎用ディスパッチャー 1):fuse_explorer_query — etherscan 形式の40以上のエンドポイントすべてに対応します。
EOA の書き込み — 7 (requires FUSE_PRIVATE_KEY)
| ツール | 説明 |
|---|---|
fuse_get_signer_address | サーバーが制御するEOAを表示します。 |
fuse_send_native | ネイティブFUSEを送金します。 |
fuse_send_erc20 | ERC-20を送金します(decimalsを自動検出)。 |
fuse_write_contract | 状態を変更する呼び出しです(revert理由を表示するため、最初にシミュレーションを実行します)。 |
fuse_deploy_contract | bytecode + ABI + argsからデプロイします。レシートを待機することもできます。 |
fuse_sign_message | EIP-191(personal_sign)署名です。トランザクションはブロードキャストされません。 |
fuse_sign_typed_data | EIP-712構造化データ署名です。トランザクションはブロードキャストされません。 |
スマートアカウントの書き込み(ERC-4337 UserOps)— 11 (requires FUSE_PRIVATE_KEY + FUSEBOX_PUBLIC_API_KEY)
fuse_smart_get_info、fuse_smart_transfer_{token,nft}、fuse_smart_approve_{token,nft}、fuse_smart_approve_and_call、fuse_smart_call_contract、fuse_smart_execute_batch、fuse_smart_swap_tokens、fuse_smart_stake_token、fuse_smart_unstake_token。Fuse paymaster経由でルーティングするには、FUSE_USE_PAYMASTER=trueを設定します(ガス代不要)。
設定
| 変数 | デフォルト | 用途 |
|---|---|---|
MCP_TRANSPORT | stdio | stdio(ローカルサブプロセス)またはhttp(ホスト環境/Docker向けのStreamable HTTP)。 |
MCP_HTTP_HOST | 0.0.0.0 | HTTPのバインドホスト。 |
MCP_HTTP_PORT | 3000 | HTTPのリッスンポート。 |
MCP_HTTP_PATH | /mcp | HTTPのルートパス。 |
FUSE_NETWORK | mainnet | mainnet(チェーン122)またはspark(テストネット、チェーン123)。 |
FUSE_RPC_URL | ネットワークのデフォルト | JSON-RPCエンドポイントを上書きします。 |
FUSE_EXPLORER_URL | ネットワークのデフォルト | BlockscoutエクスプローラーのベースURLを上書きします。 |
FUSE_ENTRYPOINT_ADDRESS | ERC-4337 v0.7 canonical | EntryPointを上書きします。 |
ENS_RPC_URL | 未設定 | .ethの解決に使用するEthereum mainnet RPC。 |
FUSEBOX_PUBLIC_API_KEY | 未設定 | 公開APIキー — SDK、REST、スマートアカウントの各ツールに必要です。 |
FUSEBOX_SECRET_API_KEY | 未設定 | シークレットAPIキー(API-SECRETヘッダー)。Notification APIツールでのみ必要です。 |
FUSEBOX_BASE_URL | SDKのデフォルト | SDKのFusebox APIホストを上書きします。 |
FUSEBOX_API_ORIGIN | https://api.fuse.io | raw HTTPクライアントのFusebox API originを上書きします。 |
FUSE_PRIVATE_KEY | 未設定 | 署名者の32バイトの16進数秘密鍵。すべての書き込みツールに必要です。起動時に一度だけ読み込まれ、ツール引数として受け付けられることはありません。 |
FUSE_USE_PAYMASTER | false | trueの場合、スマートアカウントのUserOpsはFuse paymaster経由でルーティングされます(ガス代不要)。 |
セキュリティモデル
- キーの取り扱い。 秘密鍵はサーバーの環境内にのみ保存されます。ツールの引数として受け付けることはありません。そうすると、エージェントの会話の記録に漏れてしまうためです。サーバーは起動時に一度だけ
FUSE_PRIVATE_KEYを読み込み、ローカルで署名します。 - ホスト型エンドポイント。
https://mcp.fuse.io/mcpにはFUSE_PRIVATE_KEYが設定されていません。書き込みツールは、セルフホストを案内する、具体的な対応方法を示すエラーを返します。そこにバンドルされている Fusebox の公開鍵は、公平な共有のためにレート制限されています。 - 本番環境でのセルフホスト。 サーバーはホットウォレット署名者として扱ってください。アプリケーションの隣で実行し、受信トラフィックを制限してください。EOA には、プロンプトインジェクションによる事故で失ってもよい最小限の FUSE を入金してください。また、スマートウォレットがガスを保有せずにトランザクションを実行できるよう、ペイマスター(
FUSE_USE_PAYMASTER=true)を優先してください。
プロジェクトの構成
.
├── Dockerfile Multi-stage build → distroless-ish Alpine runtime, non-root user
├── docker-compose.yml One-line local deploy
├── .dockerignore
├── package.json
├── tsconfig.json
└── src/
├── index.ts Transport dispatcher (stdio | http)
├── server.ts Builds the McpServer + ToolContext
├── config.ts Env loading
├── types.ts Shared tool types
├── transports/
│ ├── stdio.ts Local subprocess transport
│ └── http.ts Streamable HTTP transport + /healthz
├── clients/
│ ├── rpc.ts viem PublicClient factories
│ ├── signer.ts EOA signer (viem WalletClient + ethers v5 Wallet)
│ ├── explorer.ts Blockscout ABI fetcher
│ ├── fusebox.ts Fusebox SDK factories (read-only + credentialed)
│ └── fuseboxApi.ts Raw HTTP client for Fusebox REST APIs
├── lib/
│ ├── address.ts Address validation, ENS heuristics, hex bytes
│ ├── erc20.ts ERC-20 ABI (read + write)
│ ├── units.ts parseAmount / fetchErc20Decimals
│ ├── format.ts BigInt-safe JSON serialization
│ └── userOp.ts UserOp response → JSON-safe summary
└── tools/
├── index.ts Registry (50 tools)
├── *.ts RPC reads (8)
├── listWalletTokens.ts … getUserOperations.ts Fusebox SDK reads (10)
├── notifications/ Fusebox Notification API (8)
├── smartWallets/ Fusebox Smart Wallet API (2)
├── tradeApi/ Fusebox Trade API non-SDK endpoints (3)
├── explorerApi/ Fusebox Explorer API dispatcher (1)
├── writes/ EOA writes (7)
└── smart/ Smart-account writes (11)
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。