mcpField
M
mcp-simulate

mcp-simulate

本地服务
github.com/CryptoAPIs-io金融数据05 周前更新

关于 mcp-simulate

mcp-simulate 是一个通过 Crypto APIs 在广播前试运行 Ethereum 交易的 MCP 服务。适合需要查看 mainnet 或 sepolia 上模拟结果、gas 用量和状态变化的客户端。

主要功能

  1. 01广播前模拟 Ethereum 交易
  2. 02预览模拟结果与状态变化
  3. 03查看 gas 用量
  4. 04支持 mainnet 与 sepolia

适用场景

  1. 01广播前检查 Ethereum 转账结果
  2. 02评估交易的 gas 用量
  3. 03查看合约调用的模拟状态变化

MCP 相关

该 MCP 服务向客户端提供 Ethereum 交易模拟工具,可指定 mainnet 或 sepolia,并返回模拟信息。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cryptoapis-io-mcp-simulate": {
"command": "npx",
"args": [
"-y",
"@cryptoapis-io/mcp-simulate"
],
"env": {
"CRYPTOAPIS_API_KEY": "<CRYPTOAPIS_API_KEY>"
}
}
}
}
启动命令npx -y @cryptoapis-io/mcp-simulate
需要配置的环境变量
CRYPTOAPIS_API_KEY密钥Crypto APIs API key

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@cryptoapis-io/mcp-simulate0.4.0

工具

2

收录的工具列表 · 更新于 3 周前

参数类型必填说明
datastring否用于合约交互或部署字节码的十六进制编码 calldata
valuestring否以原生币最小单位表示的金额,例如 wei(默认值为 '0')
contextstring否请求的可选上下文——会在响应中原样返回
networkenum是网络名称(仅限 Ethereum——mainnet 或 sepolia)mainnet | sepolia
gasLimitstring否自定义 gas 上限覆盖值(省略时自动估算)
gasPricestring否自定义 gas 价格(单位:wei;省略时自动估算)
toAddressstring否接收方或合约地址(模拟合约部署时省略)
fromAddressstring是发送方地址

详细介绍

@cryptoapis-io/mcp-simulate

适用于 Crypto APIs Simulate 产品的 MCP 服务。对 Ethereum 交易进行模拟运行,无需广播即可预览结果。

**API 版本:**兼容 Crypto APIs 版本 2024-12-12

功能

  • 在广播前模拟 Ethereum 交易
  • 预览交易结果、Gas 用量和状态变更
  • 仅支持 Ethereum(mainnet、sepolia)——底层 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
  1. 以 HTTP 模式启动服务:
    npx @cryptoapis-io/mcp-simulate --transport http --port 3000 --api-key YOUR_API_KEY
    
  2. 在 n8n 工作流中添加一个 AI Agent 节点
  3. 在 Tools 下添加一个 MCP Client Tool,并将 URL 设为 http://localhost:3000/mcp

**在 Docker 中运行 n8n:**容器内的 localhost 并非你的机器。使用 --host 0.0.0.0 和已设置的 MCP_AUTH_TOKEN 启动服务(请参阅将服务暴露到 localhost 之外),将 http://host.docker.internal:3000/mcp 用作 URL,并在 MCP Client Tool 凭据中添加 Authorization: Bearer <token> 标头。

所有服务默认使用端口 3000。运行多个服务时,使用 --port 分配不同端口。

可用工具

simulate_evm

模拟一笔 Ethereum 交易(试运行)。仅支持 Ethereum——底层端点没有区块链参数。

参数描述
network网络:mainnet 或 sepolia
fromAddress发送方地址
toAddress接收方地址
value发送金额(以原生币计)
data合约调用数据(十六进制)
gasLimitGas 限额
gasPriceGas 价格

CLI 参数

参数描述默认值
--api-keyCrypto APIs API 密钥CRYPTOAPIS_API_KEY 环境变量
--transport传输类型:stdio 或 httpstdio
--hostHTTP 主机(使用 0.0.0.0 接受远程连接——需要通过 --api-key 提供身份验证令牌)127.0.0.1
--auth-token调用方必须发送的 Bearer 令牌(Authorization: Bearer <token>);建议使用 MCP_AUTH_TOKEN 环境变量MCP_AUTH_TOKEN 环境变量
--allowed-hosts用逗号分隔的 Host 标头允许列表,用于非回环绑定—
--portHTTP 端口3000
--pathHTTP 路径/mcp
--stateless启用无状态 HTTP 模式false
HTTP API 密钥模式

使用 HTTP 传输时,服务支持两种 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 重绑定攻击)。建议使用 MCP_AUTH_TOKEN,而不是 --auth-token:命令行参数会显示在进程列表中。

Stdio 传输始终要求在启动时提供 API 密钥。

重要:需要 API 密钥

警告: 不使用有效的 API 密钥或使用错误的 API 密钥发送请求,可能会导致你的 IP 被 Crypto APIs 生态系统封禁。启动任何服务前,请务必确保已配置有效的 API 密钥。

远程 MCP 服务

Crypto APIs 提供官方远程 MCP 服务,可通过 HTTP Streamable 传输方式使用所有工具,地址为 https://ai.cryptoapis.io/mcp。通过 x-api-key 请求头传入 API 密钥,无需安装。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。