Tools Reference
The Tenderly MCP Server exposes 43 tools organized into six groups. All tools that operate on project resources require an active project — call set_active_project first. Virtual TestNet tools require an active VNet — call set_active_vnet or create/fork a VNet (which auto-activates it).
You don’t need to call tools by name. Just describe what you want in natural language and Claude will pick the right tools automatically.
Project & account
These tools manage your session context. Most other tools depend on having an active project set.
| Tool | Description |
|---|---|
get_user_info | Returns your account info (ID, username, email), the currently active project, and the active Virtual TestNet (ID, RPC URL, network ID) if set. |
list_projects | Lists all Tenderly projects accessible to you. Supports optional search filtering by name or slug. |
set_active_project | Sets the active project for subsequent tool calls. Accepts account_slug and project_slug. Must be called before using project-scoped tools. |
Networks
| Tool | Description |
|---|---|
get_networks | Lists all public EVM networks supported by Tenderly (100+). Supports optional search filtering by name. Returns network ID, name, slug, and chain ID. |
Contracts
| Tool | Description |
|---|---|
get_contract_info | Retrieves metadata for a contract address on a given network: contract name, ABI (if verified), compiler version, EVM version, language, token standards (ERC-20, ERC-721, etc.), creation block, creation transaction, and deployer address. |
Transaction simulations
Simulate and trace transactions on any Tenderly-supported EVM network without spending gas or modifying on-chain state.
Core simulation tools
| Tool | Description |
|---|---|
simulate_transaction | Simulates a transaction and returns the outcome: success/revert status, gas used, decoded method name, error message, and revert reason. Supports state overrides, EIP-1559 fields, and custom block numbers. Results are persisted to your project dashboard. |
resimulate_transaction | Replays an existing on-chain transaction in Tenderly’s simulation environment. Useful for debugging transactions that reverted or behaved unexpectedly. |
trace_transaction | Traces an on-chain transaction and returns a summary: status, gas used, decoded method, sender, recipient, and error details. |
Simulation detail tools
After running simulate_transaction, resimulate_transaction, or trace_transaction, use these follow-up tools with the returned simulation_id or tx_hash to inspect specific aspects of the execution.
| Tool | Description |
|---|---|
get_simulation_call_trace | Flattened call tree — every internal EVM call with decoded function names, inputs, outputs, and per-call gas. Supports max_depth parameter. Capped at 256 entries. |
get_simulation_events | Decoded events (logs) emitted during execution, including event names, emitting addresses, and ABI-decoded parameters. Capped at 100 entries. |
get_simulation_state_changes | Storage slot diffs (address, key, before/after values) and native balance diffs for all affected accounts. Capped at 100 entries. |
get_simulation_asset_transfers | All token and native asset transfers: sender, recipient, token info (name, type, symbol, decimals), and amount. Capped at 100 entries. |
get_simulation_exposure_changes | Token approval and allowance changes — approvals, revocations, and permits. Capped at 100 entries. |
get_simulation_balance_changes | Net per-address balance impact with USD dollar values. Capped at 100 entries. |
get_simulation_gas_breakdown | Per-call gas breakdown including intrinsic gas and refunds. Gas values are inclusive of subcalls. |
get_simulation_generated_access_list | Generates an EIP-2930 access list by re-simulating the transaction. Useful for gas optimization. |
Virtual TestNets
Create and manage private, persistent forks of public EVM networks. Virtual TestNets have their own RPC endpoints and support impersonated transactions without private keys.
VNet tools use a stateful session model: set a VNet as active (or create/fork one, which auto-activates it), and all subsequent VNet tools operate on it. No need to pass VNet IDs to every call.
| Tool | Description |
|---|---|
set_active_vnet | Sets the active Virtual TestNet for subsequent tool calls. Accepts a vnet_id. Once set, all VNet tools operate on this VNet automatically. |
create_vnet | Creates a new Virtual TestNet by forking a public network at a specific block. Accepts network_id, optional display_name, description, block_number (hex), custom chain_id, and sync_state_enabled. Returns the VNet details including RPC URLs. Automatically sets the new VNet as active. |
list_vnets | Lists Virtual TestNets in the active project. Supports pagination (page, per_page), status filtering (running, stopped, cloning), and search by name. |
get_vnet | Returns full details of the active Virtual TestNet: ID, slug, display name, status, description, fork config, chain config, and RPC endpoint URLs. |
fork_vnet | Forks the active Virtual TestNet into a new one, preserving all state including deployed contracts and balances. Automatically sets the new fork as active. |
delete_vnet | Deletes a Virtual TestNet. This is a destructive action. Clears the active VNet from session state. |
send_vnet_transaction | Sends and executes a transaction on the active Virtual TestNet. The sender address is impersonated — no private key needed. Accepts from, to, input (calldata), value (hex wei), and gas. |
get_vnet_transactions | Lists transactions on the active Virtual TestNet with pagination. Returns transaction hash, status, gas used, block number, and method. |
fund_account | Sets the native token balance of any address on the active Virtual TestNet by calling tenderly_setBalance via RPC. Accepts address and amount in hex wei. |
set_erc20_balance | Sets the ERC-20 token balance of any address on the active VNet via tenderly_setErc20Balance. Accepts token_address, address, and value. Prefer this over set_storage_at for token balance changes. |
set_storage_at | Writes a raw value to a specific storage slot on a contract via tenderly_setStorageAt. Accepts contract_address, slot, and value. Use for oracle price overrides, protocol parameters, or any state not covered by higher-level tools. |
vnet_call | Executes a read-only eth_call on the active VNet. Accepts to, input (calldata), and optional from. Results are truncated at 10 KB. |
vnet_multicall | Executes a batch of up to 10 read-only eth_call requests in a single RPC round-trip. Each call accepts to, input, and optional from. Results are truncated individually at 10 KB. |
mine_block | Mines a single block on the active VNet via evm_mine. Use after increase_time to apply the time change. |
increase_time | Advances the VNet clock by a specified number of seconds via evm_increaseTime. Always follow with mine_block to commit the time change to a new block. |
snapshot_vnet | Saves the current VNet state and returns a snapshot ID via evm_snapshot. Use for branching test scenarios — snapshot before a test, then revert to try a different path. |
revert_vnet | Restores the VNet to a previously saved snapshot via evm_revert. The snapshot is consumed on use — take a new snapshot if you need to revert again. |
Virtual TestNet simulations & traces
Simulate and trace transactions on the active Virtual TestNet. These tools work with operation IDs rather than network-level tx hashes.
Core VNet simulation tools
| Tool | Description |
|---|---|
simulate_vnet_transaction | Simulates a transaction on a VNet without modifying its state. Returns status, gas used, decoded method, and an operation_id for follow-up tools. Supports state overrides. |
resimulate_vnet_transaction | Re-traces a previously executed VNet transaction by its operation_id (from get_vnet_transactions). |
trace_vnet_transaction | Returns a decoded execution trace summary: contract name, function name, decoded input parameters, decoded output, gas used, and error details. |
VNet simulation detail tools
Use these with the operation_id from the tools above. They operate on the active VNet.
| Tool | Description |
|---|---|
get_vnet_simulation_call_trace | Flattened call trace for a VNet transaction with call type, addresses, gas, and value per call. |
get_vnet_simulation_events | Decoded events emitted during a VNet transaction: event name and emitting address. |
get_vnet_simulation_gas_breakdown | Per-call gas breakdown sorted by gas usage. Shows total gas and top consumers. |
get_vnet_simulation_state_changes | Storage slot diffs: address, key, before/after values for each modified slot. |
get_vnet_simulation_generated_access_list | EIP-2930 access list generated from the VNet transaction execution. |
get_vnet_simulation_balance_changes | Net per-address balance changes with dollar values. |
get_vnet_simulation_asset_changes | Token and native asset transfers: type, from, to, amount, and token info. |