> ## 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.

# MCP Server Tools Reference

> Complete reference for all 59 tools available in the Tenderly MCP Server.

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`.      |
