跳转到主要内容
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_slugproject_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_transactionresimulate_transactiontrace_transaction 后,使用这些后续工具(配合返回的 simulation_idtx_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_namedescriptionblock_number(十六进制)、自定义 chain_idsync_state_enabled。返回 Virtual Environment 的详情,包括 RPC URL。自动将新的 Virtual Environment 设为激活。
list_vnets列出激活项目中的 Virtual Environments。支持分页(pageper_page)、状态过滤(runningstoppedcloning)和按名称搜索。
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 上发送并执行一笔交易。发送者地址被冒充,无需私钥。接受 fromtoinput(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_addressaddressvalue。对于代币余额变更,优先使用此工具而非 set_storage_at
set_storage_at通过 tenderly_setStorageAt 向合约的特定存储槽写入原始值。接受 contract_addressslotvalue。用于预言机价格覆盖、协议参数或任何未被更高层工具覆盖的状态。
vnet_call在激活的 Virtual Environment 上执行只读的 eth_call。接受 toinput(calldata)和可选的 from。结果在 10 KB 处截断。
vnet_multicall在单次 RPC 往返中执行最多 10 个只读 eth_call 请求的批处理。每次调用接受 toinput 和可选的 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_traceVirtual Environment 交易的扁平化调用追踪,包括每次调用的类型、地址、gas 和 value。
get_vnet_simulation_eventsVirtual 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_traceget_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_statsget_trace_stats 的 Virtual Environment 版本。
get_vnet_trace_skeletonget_trace_skeleton 的 Virtual Environment 版本。
get_vnet_call_trace_nodeget_call_trace_node 的 Virtual Environment 版本。
search_vnet_call_tracesearch_call_trace 的 Virtual Environment 版本。
get_vnet_subtree_eventsget_subtree_events 的 Virtual Environment 版本。
find_vnet_failuresfind_failures 的 Virtual Environment 版本。
get_vnet_error_pathget_error_path 的 Virtual Environment 版本。