mcp-simulate について
mcp-simulate は、Crypto APIs を通じて Ethereum 取引をブロードキャスト前に試行する MCP サーバーです。mainnet または sepolia でのシミュレーション結果、gas 使用量、状態変化を確認したいクライアント向けです。
主な機能
- 01ブロードキャスト前の Ethereum 取引シミュレーション
- 02シミュレーション結果と状態変化の確認
- 03gas 使用量の確認
- 04mainnet と sepolia に対応
活用シーン
- 01Ethereum 送金結果の事前確認
- 02取引の gas 使用量の評価
- 03コントラクト呼び出しによる状態変化の確認
MCP 対応
MCP サーバーは Ethereum 取引をシミュレートするツールをクライアントに提供し、mainnet または sepolia を指定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
2掲載時のツール一覧 · 3 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| data | string | いいえ | コントラクトとのやり取りまたはデプロイ用バイトコードの 16 進数エンコードされた calldata |
| value | string | いいえ | ネイティブコインの最小単位での金額(例:wei。デフォルトは '0') |
| context | string | いいえ | リクエストの任意のコンテキスト。レスポンスでそのまま返されます |
| network | enum | はい | ネットワーク名(Ethereum のみ——mainnet または sepolia)mainnet | sepolia |
| gasLimit | string | いいえ | カスタム gas 上限の上書き値(省略時は自動推定) |
| gasPrice | string | いいえ | カスタム gas 価格(単位:wei。省略時は自動推定) |
| toAddress | string | いいえ | 受信者またはコントラクトアドレス(コントラクトのデプロイをシミュレートする場合は省略) |
| fromAddress | string | はい | 送信元アドレス |
詳細
@cryptoapis-io/mcp-simulate
Crypto APIs の Simulate 製品向け MCP サーバーです。Ethereum トランザクションをブロードキャストせずにドライランし、結果を事前に確認できます。
API Version: Crypto APIs バージョン 2024-12-12 と互換性があります
機能
- Ethereum トランザクションをブロードキャスト前にシミュレートします
- トランザクションの結果、ガス使用量、状態の変化を事前に確認します
- Ethereum のみ(mainnet、sepolia)— 基盤となる API エンドポイントにはブロックチェーンのパラメーターがありません
前提条件
- Node.js 18+
- Crypto APIs アカウントと API キー(サインアップ | API キーを取得)
インストール
npm install @cryptoapis-io/mcp-simulate
または、Crypto APIs のすべての MCP サーバーをインストールします:npm install @cryptoapis-io/mcp
使い方
# Run with API key
npx @cryptoapis-io/mcp-simulate --api-key YOUR_API_KEY
# Or use environment variable
export CRYPTOAPIS_API_KEY=YOUR_API_KEY
npx @cryptoapis-io/mcp-simulate
# HTTP transport (listens on 127.0.0.1; see "Exposing the server beyond localhost")
npx @cryptoapis-io/mcp-simulate --transport http --port 3000 --api-key YOUR_API_KEY
Claude Desktop
Claude Desktop の設定(macOS では ~/Library/Application Support/Claude/claude_desktop_config.json、Windows では %APPDATA%\Claude\claude_desktop_config.json)に追加します:
{
"mcpServers": {
"cryptoapis-simulate": {
"command": "npx",
"args": ["-y", "@cryptoapis-io/mcp-simulate"],
"env": {
"CRYPTOAPIS_API_KEY": "your_api_key_here"
}
}
}
}
Cursor
.cursor/mcp.json(プロジェクト)または ~/.cursor/mcp.json(グローバル)に追加します:
{
"mcpServers": {
"cryptoapis-simulate": {
"command": "npx",
"args": ["-y", "@cryptoapis-io/mcp-simulate"],
"env": {
"CRYPTOAPIS_API_KEY": "your_api_key_here"
}
}
}
}
MCP Inspector
npx @modelcontextprotocol/inspector npx @cryptoapis-io/mcp-simulate --api-key YOUR_API_KEY
n8n
- HTTP モードでサーバーを起動します:
npx @cryptoapis-io/mcp-simulate --transport http --port 3000 --api-key YOUR_API_KEY - n8n のワークフローに AI Agent ノードを追加します
- Tools で MCP Client Tool を追加し、URL に
http://localhost:3000/mcpを設定します
Docker 上の n8n: コンテナ内の
localhostはホストマシンを指しません。サーバーを--host 0.0.0.0とMCP_AUTH_TOKENを設定して起動し(localhost の外部にサーバーを公開するを参照)、URL にhttp://host.docker.internal:3000/mcpを使用して、MCP Client Tool の認証情報にAuthorization: Bearer <token>ヘッダーを追加してください。
すべてのサーバーのデフォルトポートは 3000 です。複数のサーバーを実行する場合は、
--portで異なるポートを割り当ててください。
利用可能なツール
simulate_evm
Ethereum トランザクションをシミュレートします(ドライラン)。Ethereum のみ — 基盤となるエンドポイントにはブロックチェーンのパラメーターがありません。
| パラメーター | 説明 |
|---|---|
network | ネットワーク:mainnet または sepolia |
fromAddress | 送信元アドレス |
toAddress | 送信先アドレス |
value | 送信する金額(ネイティブコイン単位) |
data | コントラクト呼び出しデータ(16 進数) |
gasLimit | ガス上限 |
gasPrice | ガス価格 |
CLI 引数
| 引数 | 説明 | デフォルト |
|---|---|---|
--api-key | Crypto APIs API キー | CRYPTOAPIS_API_KEY 環境変数 |
--transport | トランスポートタイプ:stdio または http | stdio |
--host | HTTP ホスト(リモート接続を受け入れるには 0.0.0.0 を使用します。--api-key による認証トークンが必要です) | 127.0.0.1 |
--auth-token | 呼び出し元が送信する必要のあるベアラートークン(Authorization: Bearer <token>)。MCP_AUTH_TOKEN 環境変数の使用を推奨します | MCP_AUTH_TOKEN 環境変数 |
--allowed-hosts | ループバック以外にバインドする場合の、カンマ区切りの Host ヘッダー許可リスト | — |
--port | HTTP ポート | 3000 |
--path | HTTP パス | /mcp |
--stateless | ステートレス HTTP モードを有効にします | false |
HTTP API キーモード
HTTP トランスポートを使用する場合、サーバーは 2 つの API キーモードに対応しています:
--api-keyを指定する場合: すべてのリクエストでこのキーが使用されます。リクエストのx-api-keyヘッダーは無視されます。--api-keyを指定しない場合: 各リクエストには、有効な Crypto APIs キーを含むx-api-keyヘッダーが必要です。これにより、各ユーザーが自身のキーを指定する公開サーバーをホストできます。
# Per-request key mode (multi-tenant)
npx @cryptoapis-io/mcp-simulate --transport http --port 3000
# Clients send x-api-key header with each request
localhost の外部にサーバーを公開する
HTTP モードはデフォルトで 127.0.0.1 をリッスンするため、同じマシン上のプロセスのみが接続できます。
他のマシンやコンテナからの接続を受け入れるには、明示的にバインドし、ポートを保護してください:
# Startup-key mode: callers must present the token (the server refuses to start without one)
export MCP_AUTH_TOKEN=$(openssl rand -hex 32)
npx @cryptoapis-io/mcp-simulate --transport http --host 0.0.0.0 --port 3000 --api-key YOUR_API_KEY \
--allowed-hosts mcp.internal.example
# Clients send: Authorization: Bearer $MCP_AUTH_TOKEN
# Per-request key mode: no startup key, every request must carry the caller's own x-api-key
npx @cryptoapis-io/mcp-simulate --transport http --host 0.0.0.0 --port 3000
ループバック以外にバインドする場合、--allowed-hosts は Host ヘッダーを制限します(DNS リバインディング対策)。--auth-token より MCP_AUTH_TOKEN の使用を推奨します。コマンドライン引数はプロセス一覧から見えるためです。
Stdio トランスポートでは、起動時に必ず API キーが必要です。
重要:API キーが必要です
警告: 有効な API キーを指定せずにリクエストを送信した場合、または正しくない API キーを指定した場合、Crypto APIs エコシステムから IP が BAN される可能性があります。サーバーを起動する前に、有効な API キーが設定されていることを必ず確認してください。
リモート MCP サーバー
Crypto APIs は、https://ai.cryptoapis.io/mcp で、HTTP Streamable トランスポート経由ですべてのツールを利用できる公式リモート MCP サーバーを提供しています。API キーは x-api-key ヘッダー経由で渡してください。インストールは不要です。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。