mcpField
E
EVMCP

EVMCP

本地服务
github.com/SiriusLattice金融数据029 周前更新

关于 EVMCP

EVMCP 是 MCP 服务,为 AI 助手提供多个 EVM 网络的实时只读链上数据。它将查询工具与配套智能合约结合,用于批量读取和跨链数据查询。

主要功能

  1. 01查询五个 EVM 链的链上数据
  2. 02读取余额、交易、合约与 Gas
  3. 03通过 Multicall3 批量读取
  4. 04跨链余额与活动查询
  5. 05提供链资源与分析提示词

适用场景

  1. 01比较多个链上的钱包余额
  2. 02检查并解码交易
  3. 03查询合约数据与事件日志
  4. 04比较不同网络的 Gas 费用

MCP 相关

EVMCP 向 MCP 客户端提供只读区块链工具、资源和提示词,支持 STDIO 或 Streamable HTTP 传输。配套合约支持批量查询、注册表元数据、事件汇总和跨链数据。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"evmcp": {
"command": "npx",
"args": [
"-y",
"evmcp"
],
"env": {
"ALCHEMY_API_KEY": "<ALCHEMY_API_KEY>"
}
}
}
}
启动命令npx -y evmcp
需要配置的环境变量
ALCHEMY_API_KEY密钥Alchemy API key for RPC access

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

安装包
npmevmcp0.1.3

工具

28

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

参数类型必填说明
chainenum是目标区块链base | optimism | avalanche | celo
addressstring是

详细介绍

evmcp

EVM + MCP — 赋予你的 AI 助手区块链超能力。

提供实时链上数据访问的 MCP 服务,覆盖 Base、Optimism、Avalanche、Celo 和 Arbitrum,并配备部署在链上的智能合约,用于批量查询和跨链数据。

工作原理

EVMCP 实现了 Model Context Protocol(MCP),这是一种允许 AI 助手调用外部工具的标准。连接后,你的 AI 助手便可使用 28 种只读区块链工具,在五条 EVM 链上查询余额、解码交易、比较 Gas 价格等。

EVMCP 的独特之处在于其配套智能合约——部署在 Avalanche 和 Celo 上的四个 Solidity 合约,可通过 Multicall3 实现批量查询、链上工具注册表、事件聚合和跨链余额缓存。MCP 服务会从这些合约读取数据;所有写入操作均由单独的管理员 CLI 执行。

快速开始

使用 Claude Desktop

将以下内容添加到 Claude Desktop 配置文件(~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "evmcp": {
      "command": "npx",
      "args": ["-y", "evmcp"],
      "env": { "ALCHEMY_API_KEY": "your_key_here" }
    }
  }
}
使用 Claude Code
claude mcp add evmcp -- npx -y evmcp

支持的链

链链 ID原生代币配套合约
Base8453ETH尚未部署
Optimism10ETH尚未部署
Avalanche C-Chain43114AVAX已部署
Celo42220CELO已部署
Arbitrum One42161ETH尚未部署

此外,也支持 Ethereum 主网(链 ID 1),但仅用于 ENS 解析。

工具(共 29 种)

余额(3)
工具描述
getBalance获取指定链上某个地址的原生代币余额(ETH/AVAX/CELO)
getTokenBalance获取指定链上某个地址的 ERC20 代币余额
getMultiChainBalance并行获取某个地址在全部 5 条受支持链上的原生代币余额
区块(3)
工具描述
getBlock获取指定链上哈希对应的区块
getBlockByNumber获取指定链上编号对应的区块,或传入 "latest" 获取最新区块
getLatestBlock获取指定链上的最新区块编号、时间戳和基础费用
交易(3)
工具描述
getTransaction获取指定链上哈希对应的交易
getTransactionReceipt获取交易的收据,包括状态、gasUsed 和日志
decodeTransaction使用提供的 ABI 解码交易的函数调用
合约(3)
工具描述
readContract使用提供的 ABI 调用智能合约中的只读函数
getContractCode检查某个地址是否已部署合约代码,并返回字节码长度和哈希
getStorageAt读取指定地址的存储槽原始值
代币(2)
工具描述
getERC20Info获取 ERC20 代币元数据,包括名称、符号、小数位数和总供应量
getTokenAllowance获取所有者授权给支出方的 ERC20 代币额度
Gas(3)
工具描述
getGasPrice获取指定链上当前的 Gas 价格和 EIP-1559 费用数据
estimateGas估算指定链上某笔交易的 Gas 用量
compareGasAcrossChains比较全部 5 条受支持链上的当前 Gas 价格
ENS(2)
工具描述
resolveENS通过 Ethereum L1 将 ENS 名称(例如 vitalik.eth)解析为 Ethereum 地址
lookupAddress通过 Ethereum L1 反向查询地址对应的 ENS 名称
事件(2)
工具描述
getContractEvents获取指定链上某个合约发出的事件日志
decodeEventLog使用提供的 ABI 解码原始事件日志
链与健康状态(3)
工具描述
getChainInfo获取链名称、链 ID、当前区块号、出块时间和原生代币符号
isContractDeployed检查某个地址是否已在所有 5 条受支持的链上部署了合约代码
healthCheck测试所有 6 个 RPC 端点(Ethereum、Base、Optimism、Avalanche、Celo、Arbitrum)的连通性
批量(1)
工具描述
batchQuery使用 Multicall3 在单个 RPC 请求中执行多个只读调用
跨链(2)
工具描述
compareBalances比较某个地址在所有 5 条链上的原生代币余额
crossChainActivity检查某个地址在所有 5 条链上的交易数量
注册表(1)
工具描述
queryRegistry从链上的 MCPRegistry 配套合约读取已注册工具的元数据
优化器(1)
工具描述
gasOptimizer为交易推荐成本最低的链,并将 Base/Optimism/Arbitrum 上的 L1 数据费用纳入考量

资源(4)

URI 模式描述缓存 TTL
chain://{chainId}/status某条链的当前区块高度和 gas 价格12s
chain://{chainId}/gas以 gwei 为单位的基础费用、gas 价格和优先费用12s
chain://{chainId}/tokens/popular常用代币地址和小数位数(v1 中硬编码)1 小时
evmcp://chains所有受支持链的 ID、符号和配套合约地址静态

模板化资源支持的链 ID:8453(Base)、10(Optimism)、43114(Avalanche)、42220(Celo)、42161(Arbitrum)。

提示词(4)

提示词参数描述
analyze-walletaddress对钱包进行多链余额和活动分析
audit-contractcontractAddress、chain智能合约的基础检查与审计工作流
compare-chains(无)比较所有链的 gas 成本、速度和特性
investigate-txtxHash、chain详细解码、分析和追踪交易

配套合约

四个 Solidity 合约已部署在 Avalanche 和 Celo 上。MCP 服务从这些合约读取数据,以提供批量查询、链上工具元数据和跨链数据。Base 和 Optimism 上的部署计划尚在安排中。

Avalanche C-Chain(43114)
合约地址
MCPRegistry0x62402b65bfb4Fd022285A6FC2F26d8caEEc3D055
BatchQuery0xfDc19e0617AdF1811A68Aa1575409F3769f39491
EventAggregator0xECE24a53A28F088351EC2Da258f78479e81A8007
CrossChainCache0x0899a6Ef23c6B39A4D9B877B219645B89209A670
Celo(42220)
合约地址
MCPRegistry0x62402b65bfb4Fd022285A6FC2F26d8caEEc3D055
BatchQuery0xfDc19e0617AdF1811A68Aa1575409F3769f39491
EventAggregator0xECE24a53A28F088351EC2Da258f78479e81A8007
CrossChainCache0x0899a6Ef23c6B39A4D9B877B219645B89209A670
合约说明
  • MCPRegistry —— 所有 EVMCP 工具的链上元数据(名称、描述、版本)。仅所有者可写入。
  • BatchQuery —— 通过 Multicall3 优化批量读取。包含多余额、多合约检查和多代币余额辅助工具。
  • EventAggregator —— 缓存每个合约的事件数量摘要。由管理 CLI 更新。
  • CrossChainCache —— 存储跨链查询所需的余额快照。由管理 CLI 更新。

环境变量

变量必填描述
ALCHEMY_API_KEYYes*Alchemy API 密钥(适用于所有链)
BASE_RPC_URLNo*覆盖 Base 的 RPC URL
OPTIMISM_RPC_URLNo*覆盖 Optimism 的 RPC URL
AVALANCHE_RPC_URLNo*覆盖 Avalanche 的 RPC URL
CELO_RPC_URLNo*覆盖 Celo 的 RPC URL
ARBITRUM_RPC_URLNo*覆盖 Arbitrum 的 RPC URL
ETHEREUM_RPC_URLNo覆盖用于 ENS 解析的 RPC URL
CACHE_TTL_SECONDSNo缓存 TTL(秒,默认值:15)
CACHE_MAX_ENTRIESNo缓存条目数上限(默认值:1000)
LOG_LEVELNodebug、info、warn 或 error(默认值:info)
USE_TESTNETSNo使用测试网链(默认值:false)

| TRANSPORT | No | stdio(默认值)或用于 Streamable HTTP 传输的 http | | HTTP_PORT | No | HTTP 传输端口(默认值:3402) | | X402_ENABLED | No | 在 HTTP 传输上启用 x402 付费门控 | | X402_PAYEE_ADDRESS | No** | Base 上的 USDC 收款地址 | | X402_FACILITATOR_URL | No | x402 facilitator URL(有默认值) |

*请提供 ALCHEMY_API_KEY,或提供全部五个独立的链 RPC URL。 **当 X402_ENABLED=true 时为必填项。

开发

pnpm install
pnpm build
pnpm inspect          # MCP Inspector UI at localhost:6274
pnpm test             # Unit tests
pnpm typecheck        # Type check
pnpm lint             # ESLint

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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