Tenderly MCP Server 提供 59 个工具,分为七个组。要先将其连接到您的客户端,请参阅 MCP Server 快速入门。所有操作项目资源的工具都需要激活的项目,请先调用 set_active_project。Virtual Environment 工具需要激活的 Virtual Environment,请调用 set_active_vnet 或创建/fork 一个 Virtual Environment(这会自动将其激活)。
您无需按名称调用工具。只需用自然语言描述您想做的事,Claude 会自动选择合适的工具。
项目与账户
这些工具管理您的会话上下文。大多数其他工具依赖于已设置激活的项目。
| 工具 | 描述 |
|---|
get_user_info | 返回您的账户信息(ID、用户名、邮箱)、当前激活的项目,以及激活的 Virtual Environment(ID、RPC URL、网络 ID,如已设置)。 |
list_projects | 列出您可以访问的所有 Tenderly 项目。支持按名称或 slug 进行可选的搜索过滤。 |
set_active_project | 为后续工具调用设置激活的项目。接受 account_slug 和 project_slug。必须在使用项目范围的工具之前调用。 |
| 工具 | 描述 |
|---|
get_networks | 列出 Tenderly 支持的所有公共 EVM 网络(100 多个)。支持按名称进行可选的搜索过滤。返回网络 ID、名称、slug 和链 ID。 |
| 工具 | 描述 |
|---|
get_contract_info | 检索指定网络上某个合约地址的元数据:合约名称、ABI(如已验证)、编译器版本、EVM 版本、语言、代币标准(ERC-20、ERC-721 等)、创建区块、创建交易和部署者地址。 |
交易模拟
在任何 Tenderly 支持的 EVM 网络上模拟并追踪交易,无需消耗 gas 或修改链上状态。
核心模拟工具
| 工具 | 描述 |
|---|
simulate_transaction | 模拟一笔交易并返回结果:成功/回滚状态、gas 消耗、解码后的方法名、错误消息和 revert 原因。支持状态覆盖、EIP-1559 字段和自定义区块号。结果会保存到您的项目仪表盘中。 |
resimulate_transaction | 在 Tenderly 的模拟环境中重放一笔已存在的链上交易。适用于调试回滚或表现异常的交易。 |
trace_transaction | 追踪一笔链上交易并返回摘要:状态、gas 消耗、解码后的方法、发送者、接收者和错误详情。 |
模拟详情工具
在运行 simulate_transaction、resimulate_transaction 或 trace_transaction 后,使用这些后续工具(配合返回的 simulation_id 或 tx_hash)以检查执行的特定方面。
| 工具 | 描述 |
|---|
get_simulation_call_trace | 扁平化的调用树,每个内部 EVM 调用都包含解码后的函数名、输入、输出和每次调用的 gas。支持 max_depth 参数。上限为 256 条。 |
get_simulation_events | 执行期间发出的解码事件(日志),包括事件名、发出地址和 ABI 解码后的参数。上限为 100 条。 |
get_simulation_state_changes | 存储槽差异(地址、键、变化前后的值)以及所有受影响账户的原生代币余额差异。上限为 100 条。 |
get_simulation_asset_transfers | 所有代币和原生资产转移:发送者、接收者、代币信息(名称、类型、符号、小数位)和金额。上限为 100 条。 |
get_simulation_exposure_changes | 代币授权和额度变化,包括 approval、撤销和 permit。上限为 100 条。 |
get_simulation_balance_changes | 每个地址的净余额影响,附带美元价值。上限为 100 条。 |
get_simulation_gas_breakdown | 每次调用的 gas 拆解,包括固有 gas 和退款。gas 值包含子调用。 |
get_simulation_generated_access_list | 通过重新模拟交易生成 EIP-2930 access list。适用于 gas 优化。 |
Virtual Environments
创建并管理公共 EVM 网络的私有、持久化 fork。Virtual Environments 拥有自己的 RPC 端点,并支持无需私钥的冒充交易。
Virtual Environment 工具使用有状态会话模型:将某个 Virtual Environment 设为激活(或创建/fork 一个,会自动激活),后续所有 Virtual Environment 工具都会在其上运行。无需在每次调用中传递 Virtual Environment ID。
| 工具 | 描述 |
|---|
set_active_vnet | 为后续工具调用设置激活的 Virtual Environment。接受 vnet_id。设置后,所有 Virtual Environment 工具都会自动在此 Virtual Environment 上运行。 |
create_vnet | 通过在特定区块 fork 公共网络来创建新的 Virtual Environment。接受 network_id、可选的 display_name、description、block_number(十六进制)、自定义 chain_id 和 sync_state_enabled。返回 Virtual Environment 的详情,包括 RPC URL。自动将新的 Virtual Environment 设为激活。 |
list_vnets | 列出激活项目中的 Virtual Environments。支持分页(page、per_page)、状态过滤(running、stopped、cloning)和按名称搜索。 |
get_vnet | 返回激活 Virtual Environment 的完整详情:ID、slug、显示名、状态、描述、fork 配置、链配置和 RPC 端点 URL。 |
fork_vnet | 将激活的 Virtual Environment fork 为一个新的,保留所有状态(包括已部署的合约和余额)。自动将新 fork 设为激活。 |
delete_vnet | 删除一个 Virtual Environment。这是破坏性操作。会从会话状态中清除激活的 Virtual Environment。 |
send_vnet_transaction | 在激活的 Virtual Environment 上发送并执行一笔交易。发送者地址被冒充,无需私钥。接受 from、to、input(calldata)、value(十六进制 wei)和 gas。 |
get_vnet_transactions | 分页列出激活 Virtual Environment 上的交易。返回交易哈希、状态、gas 消耗、区块号和方法。 |
fund_account | 通过 RPC 调用 tenderly_setBalance 设置激活 Virtual Environment 上任意地址的原生代币余额。接受 address 和以十六进制 wei 表示的 amount。 |
set_erc20_balance | 通过 tenderly_setErc20Balance 设置激活 Virtual Environment 上任意地址的 ERC-20 代币余额。接受 token_address、address 和 value。对于代币余额变更,优先使用此工具而非 set_storage_at。 |
set_storage_at | 通过 tenderly_setStorageAt 向合约的特定存储槽写入原始值。接受 contract_address、slot 和 value。用于预言机价格覆盖、协议参数或任何未被更高层工具覆盖的状态。 |
vnet_call | 在激活的 Virtual Environment 上执行只读的 eth_call。接受 to、input(calldata)和可选的 from。结果在 10 KB 处截断。 |
vnet_multicall | 在单次 RPC 往返中执行最多 10 个只读 eth_call 请求的批处理。每次调用接受 to、input 和可选的 from。结果按每个请求单独截断在 10 KB。 |
mine_block | 通过 evm_mine 在激活的 Virtual Environment 上挖出一个区块。在 increase_time 后使用以应用时间变化。 |
increase_time | 通过 evm_increaseTime 将 Virtual Environment 的时钟按指定秒数向前推进。始终紧接着使用 mine_block 将时间变化提交到新区块。 |
snapshot_vnet | 通过 evm_snapshot 保存当前 Virtual Environment 状态并返回快照 ID。用于分支测试场景,先在测试前拍摄快照,再回滚以尝试不同路径。 |
revert_vnet | 通过 evm_revert 将 Virtual Environment 恢复到之前保存的快照。快照在使用时会被消耗,如果需要再次回滚,请重新拍摄快照。 |
Virtual Environment 模拟与追踪
在激活的 Virtual Environment 上模拟并追踪交易。这些工具使用 operation ID,而不是网络级的交易哈希。
核心 Virtual Environment 模拟工具
| 工具 | 描述 |
|---|
simulate_vnet_transaction | 在 Virtual Environment 上模拟一笔交易,不修改其状态。返回状态、gas 消耗、解码后的方法和用于后续工具的 operation_id。支持状态覆盖。 |
resimulate_vnet_transaction | 通过 operation_id(来自 get_vnet_transactions)重新追踪先前执行的 Virtual Environment 交易。 |
trace_vnet_transaction | 返回解码后的执行追踪摘要:合约名、函数名、解码后的输入参数、解码后的输出、gas 消耗和错误详情。 |
Virtual Environment 模拟详情工具
配合上面工具返回的 operation_id 使用。它们在激活的 Virtual Environment 上运行。
| 工具 | 描述 |
|---|
get_vnet_simulation_call_trace | Virtual Environment 交易的扁平化调用追踪,包括每次调用的类型、地址、gas 和 value。 |
get_vnet_simulation_events | Virtual Environment 交易期间发出的解码事件:事件名和发出地址。 |
get_vnet_simulation_gas_breakdown | 按 gas 使用排序的每次调用 gas 拆解。显示总 gas 和消耗最多的项。 |
get_vnet_simulation_state_changes | 存储槽差异:每个被修改槽的地址、键、变化前后的值。 |
get_vnet_simulation_generated_access_list | 由 Virtual Environment 交易执行生成的 EIP-2930 access list。 |
get_vnet_simulation_balance_changes | 每个地址的净余额变化,附带美元价值。 |
get_vnet_simulation_asset_changes | 代币和原生资产转移:类型、from、to、金额和代币信息。 |
高级追踪导航
16 个工具用于导航包含数百或数千次内部调用的复杂交易。当 get_simulation_call_trace 或 get_vnet_simulation_call_trace 返回被截断的结果时使用,或当您需要搜索、钻取或汇总大型追踪但不加载完整树时使用。
链上与模拟
| 工具 | 描述 |
|---|
get_trace_stats | 加载追踪前进行快速大小检查,返回总调用数、最大深度、错误数和唯一合约数。用于决定应用哪种导航策略。 |
get_trace_skeleton | 对于大型被截断的追踪,返回压缩后的调用树(函数名、合约、深度、错误标志,不含解码参数)。使用返回的 absolute_position 值进行钻取。 |
get_call_trace_node | 展开追踪中被截断的特定节点。当某个节点报告 omitted_children > 0 时使用。 |
search_call_trace | 在大型追踪中搜索特定调用,无需加载完整树。按地址、函数名或错误状态过滤。 |
get_subtree_events | 返回某个特定子树的事件,而不是整个交易的事件。当 get_simulation_events 返回过多事件时使用。 |
get_subtree_state_changes | 返回某个特定子树的存储差异。 |
find_failures | 一次性查找交易中所有错误位置,返回每个失败节点的合约名、函数和解码后的错误。 |
get_error_path | 显示从根到最深错误的追责链条,每一层都包含解码后的输入/输出。这是调试复杂交易 revert 的首选工具。 |
get_transaction_fund_flow | 显示交易中有序的资金流动,谁向谁发送了什么,附带美元价值和每个地址的净流量。仅限链上交易。 |
Virtual Environment 对应工具
上述工具在激活 Virtual Environment 上交易的镜像版本。
| 工具 | 描述 |
|---|
get_vnet_trace_stats | get_trace_stats 的 Virtual Environment 版本。 |
get_vnet_trace_skeleton | get_trace_skeleton 的 Virtual Environment 版本。 |
get_vnet_call_trace_node | get_call_trace_node 的 Virtual Environment 版本。 |
search_vnet_call_trace | search_call_trace 的 Virtual Environment 版本。 |
get_vnet_subtree_events | get_subtree_events 的 Virtual Environment 版本。 |
find_vnet_failures | find_failures 的 Virtual Environment 版本。 |
get_vnet_error_path | get_error_path 的 Virtual Environment 版本。 |