> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tenderly.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Tenderly MCP Server tools reference

> Complete reference for all 59 Tenderly MCP Server tools covering simulations, transaction tracing, contract inspection, and JSON-RPC access.

The [Tenderly MCP Server](/ai-tools/overview) exposes 59 tools organized into seven groups. To connect it to your client first, follow the [MCP Server quickstart](/ai-tools/quickstart). All tools that operate on project resources require an active project, call `set_active_project` first. Virtual Environment tools require an active Virtual Environment, call `set_active_vnet` or create/fork a Virtual Environment (which auto-activates it).

<Note>
  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.
</Note>

## 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 Environment (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 Environments

Create and manage private, persistent forks of public EVM networks. Virtual Environments have their own RPC endpoints and support impersonated transactions without private keys.

Virtual Environment tools use a **stateful session model**: set a Virtual Environment as active (or create/fork one, which auto-activates it), and all subsequent Virtual Environment tools operate on it. No need to pass Virtual Environment IDs to every call.

| Tool | Description |
| - | - |
| `set_active_vnet` | Sets the active Virtual Environment for subsequent tool calls. Accepts a `vnet_id`. Once set, all Virtual Environment tools operate on this Virtual Environment automatically. |
| `create_vnet` | Creates a new Virtual Environment 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 Virtual Environment details including RPC URLs. **Automatically sets the new Virtual Environment as active.** |
| `list_vnets` | Lists Virtual Environments 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 Environment: ID, slug, display name, status, description, fork config, chain config, and RPC endpoint URLs. |
| `fork_vnet` | Forks the active Virtual Environment into a new one, preserving all state including deployed contracts and balances. **Automatically sets the new fork as active.** |
| `delete_vnet` | Deletes a Virtual Environment. This is a destructive action. Clears the active Virtual Environment from session state. |
| `send_vnet_transaction` | Sends and executes a transaction on the active Virtual Environment. 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 Environment 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 Environment 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 Virtual Environment 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 Virtual Environment. 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 Virtual Environment via `evm_mine`. Use after `increase_time` to apply the time change. |
| `increase_time` | Advances the Virtual Environment 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 Virtual Environment 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 Virtual Environment 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 Environment simulations & traces

Simulate and trace transactions on the active Virtual Environment. These tools work with operation IDs rather than network-level tx hashes.

### Core Virtual Environment simulation tools

| Tool | Description |
| - | - |
| `simulate_vnet_transaction` | Simulates a transaction on a Virtual Environment 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 Virtual Environment 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. |

### Virtual Environment simulation detail tools

Use these with the `operation_id` from the tools above. They operate on the active Virtual Environment.

| Tool | Description |
| - | - |
| `get_vnet_simulation_call_trace` | Flattened call trace for a Virtual Environment transaction with call type, addresses, gas, and value per call. |
| `get_vnet_simulation_events` | Decoded events emitted during a Virtual Environment 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 Virtual Environment 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. |

## Advanced trace navigation

16 tools for navigating complex transactions with hundreds or thousands of internal calls. Use these when `get_simulation_call_trace` or `get_vnet_simulation_call_trace` returns truncated results, or when you need to search, drill into, or summarize a large trace without loading the full tree.

### On-chain & simulation

| Tool | Description |
| - | - |
| `get_trace_stats` | Quick size check before loading a trace, returns total calls, max depth, error count, and unique contracts. Use to decide which navigation strategy to apply. |
| `get_trace_skeleton` | Returns a compressed call tree (function name, contract, depth, error flag, no decoded args) for large truncated traces. Use the returned `absolute_position` values to drill in. |
| `get_call_trace_node` | Expands a specific truncated node in the trace. Use when a node reports `omitted_children > 0`. |
| `search_call_trace` | Searches a large trace for specific calls without loading the full tree. Filter by address, function name, or error status. |
| `get_subtree_events` | Returns events from one specific subtree instead of the full transaction. Use when `get_simulation_events` returns too many events. |
| `get_subtree_state_changes` | Returns storage diffs from one specific subtree. |
| `find_failures` | Finds all error locations in a transaction at once, returns every failing node with contract name, function, and decoded error. |
| `get_error_path` | Shows the blame chain from root to the deepest error with decoded inputs/outputs at each level. The go-to tool for debugging reverts in complex transactions. |
| `get_transaction_fund_flow` | Shows ordered money movement in a transaction, who sent what to whom with USD values and net flow per address. On-chain transactions only. |

### Virtual Environment equivalents

Mirror of the tools above for transactions on the active Virtual Environment.

| Tool | Description |
| - | - |
| `get_vnet_trace_stats` | Virtual Environment equivalent of `get_trace_stats`. |
| `get_vnet_trace_skeleton` | Virtual Environment equivalent of `get_trace_skeleton`. |
| `get_vnet_call_trace_node` | Virtual Environment equivalent of `get_call_trace_node`. |
| `search_vnet_call_trace` | Virtual Environment equivalent of `search_call_trace`. |
| `get_vnet_subtree_events` | Virtual Environment equivalent of `get_subtree_events`. |
| `find_vnet_failures` | Virtual Environment equivalent of `find_failures`. |
| `get_vnet_error_path` | Virtual Environment equivalent of `get_error_path`. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.