Tenderly
Tenderly: симуляция и трассировка транзакций смарт-контрактов на 100+ EVM-сетях
Что умеет
- Создавать и форкать виртуальные тестовые сети (VNet)
- Пополнять счета в тестовой сети
- Смотреть трассировку вызовов, события и изменения баланса при симуляции
- Разбирать расход газа и списки доступа транзакций
- Получать список транзакций и сдвигать время в тестовой сети
Какие данные видит
Ассистент работает в рамках активного проекта и виртуальной сети пользователя Tenderly, включая приватные тестовые окружения.
Нужен ли аккаунт
Не нужен: сервер работает без входа
Tenderly даёт ассистенту доступ к симуляции, отладке и трассировке транзакций смарт-контрактов на более чем 100 EVM-совместимых сетях. Можно создавать виртуальные тестовые сети, форкать их с сохранением состояния, пополнять счета и разбирать многошаговые сценарии по газу, событиям и изменениям баланса.
Как подключить
Как подключить Tenderly к Claude
Адрес сервера, который нужно вставить в настройках Claude:
https://tenderly-mcp--tenderly.run.tools
- Откройте Claude (сайт claude.ai или приложение для компьютера).
- Перейдите в Настройки → Коннекторы (в английском интерфейсе: Settings → Connectors).
- Нажмите Добавить пользовательский коннектор (Add custom connector).
- Вставьте адрес сервера, скопированный ниже, в поле URL удалённого MCP-сервера и нажмите Добавить.
- В чате нажмите + → Коннекторы и включите новый коннектор.
Пользовательские коннекторы доступны на тарифах Free, Pro, Max, Team и Enterprise. На Free можно добавить только один. В Team и Enterprise коннектор сначала добавляет владелец организации в Настройки организации → Коннекторы.
Авторизация
После нажатия Добавить откроется окно входа в сервис. Войдите под своим аккаунтом и подтвердите доступ. Пароль Claude не видит.
Как подключить Tenderly к ChatGPT
Адрес сервера, который нужно вставить в настройках ChatGPT:
https://tenderly-mcp--tenderly.run.tools
- Откройте ChatGPT в браузере (chatgpt.com). Нужен тариф Plus, Pro, Business, Enterprise или Edu.
- Один раз включите режим разработчика: Настройки → Приложения → Дополнительные настройки → Режим разработчика (Settings → Apps → Advanced settings → Developer mode).
- Откройте Настройки → Коннекторы и нажмите Создать (Create).
- Заполните форму: Название (любое), Описание (одна фраза, что делает сервис), URL MCP-сервера (скопируйте ниже).
- В поле Аутентификация выберите OAuth, если сервис требует вход, иначе Нет. Нажмите Создать.
- В новом чате откройте + → Приложения/Коннекторы и включите коннектор.
Название раздела у OpenAI менялось (Connectors → Apps/Plugins). Если пункт называется иначе, ищите «режим разработчика» в настройках. В рабочих пространствах Business/Enterprise администратор должен разрешить пользовательские коннекторы.
Авторизация
При первом использовании ChatGPT откроет окно входа в сервис. Войдите и подтвердите доступ.
Как подключить Tenderly к Cursor
Адрес сервера, который нужно вставить в настройках Cursor:
https://tenderly-mcp--tenderly.run.tools
Быстрый способ: нажмите кнопку Открыть в Cursor ниже, Cursor сам предложит добавить сервер.
Вручную:
- В Cursor откройте Settings → Cursor Settings → MCP и нажмите Add new global MCP server.
- Вставьте JSON, скопированный ниже, в открывшийся файл
~/.cursor/mcp.json(для одного проекта:.cursor/mcp.jsonв корне проекта). - Сохраните файл. Сервер появится в списке MCP; при необходимости пройдите авторизацию по кнопке рядом с ним.
Авторизация
Если сервис требует вход, рядом с сервером в списке MCP появится кнопка авторизации.
Список инструментов сервера (43)
Технические названия из tools/list. Нужны только разработчикам.
| create_vnet | Creates a new Virtual TestNet by forking a public EVM network at a specific block. The resulting TestNet is a private, persistent environment with its own RPC endpoint. Requires an active project (set via set_active_project). |
| delete_vnet | Permanently deletes the active Virtual TestNet, including all transactions, state, and snapshots. Cannot be undone. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| fork_vnet | Forks the active Virtual TestNet into a new one, preserving all state including deployed contracts and balances. The new VNet becomes the active VNet. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| fund_account | Sets the native token balance of any address on a Virtual TestNet. Use this to fund test accounts without a faucet. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| get_contract_info | Retrieves contract metadata for an address on a given network — name, ABI, compiler version, token standards (e.g. ERC-20), and creation info. ABI is only available for verified contracts. Requires an active project (set via set_active_project). |
| get_networks | Lists all public blockchain networks supported by Tenderly. |
| get_simulation_asset_transfers | Returns all token and native asset transfers from a simulated or on-chain transaction, including sender, recipient, token info, and amount. Accepts tx_hash or simulation_id. Requires an active project (set via set_active_project). |
| get_simulation_balance_changes | Returns the net per-address balance impact with USD values from a simulated or on-chain transaction. Accepts tx_hash or simulation_id. Requires an active project (set via set_active_project). |
| get_simulation_call_trace | Returns the flattened call trace for a simulated or on-chain transaction — every internal EVM call with decoded function names, inputs, outputs, and per-call gas. Accepts tx_hash or simulation_id. Requires an active project (set via set_active_project). |
| get_simulation_events | Returns decoded events (logs) emitted during a simulated or on-chain transaction, including event names, emitting addresses, and ABI-decoded parameters. Accepts tx_hash or simulation_id. Requires an active project (set via set_active_project). |
| get_simulation_exposure_changes | Returns token approval and allowance changes (approvals, revocations, permits) from a simulated or on-chain transaction. Accepts tx_hash or simulation_id. Requires an active project (set via set_active_project). |
| get_simulation_gas_breakdown | Returns a per-call gas breakdown including intrinsic gas and refunds. Gas values are inclusive of subcalls. Useful for identifying expensive operations. Accepts tx_hash or simulation_id. Requires an active project (set via set_active_project). |
| get_simulation_generated_access_list | Returns the EIP-2930 access list for a previously simulated transaction. Useful for gas optimization. Requires simulation_id from simulate_transaction or resimulate_transaction. Requires an active project (set via set_active_project). |
| get_simulation_state_changes | Returns storage slot diffs and native balance diffs caused by a simulated or on-chain transaction. Accepts tx_hash or simulation_id. Requires an active project (set via set_active_project). |
| get_user_info | Returns the authenticated user's info and the currently active project (if set). |
| get_vnet | Returns details of the active Virtual TestNet including RPC endpoints, chain configuration, fork origin, and status. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| get_vnet_simulation_asset_changes | Returns token and native asset transfers for a Virtual TestNet transaction. Pass the operation_id from simulate_vnet_transaction or get_vnet_transactions. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| get_vnet_simulation_balance_changes | Returns net per-address balance changes (with dollar values) for a Virtual TestNet transaction. Pass the operation_id from simulate_vnet_transaction or get_vnet_transactions. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| get_vnet_simulation_call_trace | Returns the flattened call trace for a Virtual TestNet transaction — every internal EVM call with per-call gas. Pass the operation_id from get_vnet_transactions. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| get_vnet_simulation_events | Returns decoded events (logs) emitted during a Virtual TestNet transaction, including event names and emitting addresses. Pass the operation_id from get_vnet_transactions. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| get_vnet_simulation_gas_breakdown | Returns a per-call gas breakdown for a Virtual TestNet transaction, sorted by gas usage. Pass the operation_id from get_vnet_transactions. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| get_vnet_simulation_generated_access_list | Returns an EIP-2930 access list generated from a previously executed Virtual TestNet transaction. Useful for gas optimization. Pass the vnet_id and operation_id from get_vnet_transactions. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| get_vnet_simulation_state_changes | Returns storage slot diffs caused by a previously executed Virtual TestNet transaction. Uses the trace endpoint; pass the operation_id from get_vnet_transactions. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| get_vnet_transactions | Lists transactions executed on a Virtual TestNet, with pagination. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| increase_time | Advances the block timestamp on a Virtual TestNet by the given number of seconds. IMPORTANT: this has no effect until mine_block is called — always follow with mine_block. Use for time-dependent simulations like interest accrual, governance timelocks, or oracle staleness. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| list_projects | Lists all Tenderly projects accessible to the authenticated user. |
| list_vnets | Lists Virtual TestNets in the active project. Virtual TestNets are private, persistent forks of public EVM networks for development and testing. Requires an active project (set via set_active_project). |
| mine_block | Mines exactly one new block on a Virtual TestNet. Required after increase_time to make time changes take effect. Do not call in a loop to advance many blocks — instead, use increase_time to jump forward by the desired duration, then call mine_block once. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| resimulate_transaction | Replays an on-chain transaction in Tenderly's simulation environment to get a full decoded execution trace. Useful for debugging reverted or suspicious transactions. Requires an active project (set via set_active_project). |
| resimulate_vnet_transaction | Re-traces a previously executed Virtual TestNet transaction by its operation ID (from get_vnet_transactions). Returns a summary with status, gas usage, and decoded method. Use follow-up tools (listed in the response hint) to inspect state changes and generated access lists. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| revert_vnet | Reverts a Virtual TestNet to a previously created snapshot, undoing all state changes since that point. The snapshot is consumed — create a new one with snapshot_vnet if you need to revert again. Typical pattern: snapshot_vnet → run scenario A → revert_vnet → run scenario B → compare. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| send_vnet_transaction | Sends and executes a transaction on a Virtual TestNet. The sender is impersonated — no private key needed. Omit 'to' for contract deployment. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| set_active_project | Sets the active Tenderly project for subsequent tool calls. Must be called before tools that require a project context. |
| set_active_vnet | Sets the active Virtual TestNet for subsequent tool calls. All VNet tools operate on the active VNet — call this before using them. Use list_vnets to find available VNets. Automatically called when you create or fork a VNet. Requires an active project (set via set_active_project). |
| set_erc20_balance | Sets the ERC-20 token balance of any address on a Virtual TestNet. Use this to give test accounts specific token balances without transfers or approvals. For native token (ETH/MATIC) balance, use fund_account instead. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| set_storage_at | Sets a raw storage slot value at any contract address on a Virtual TestNet. This is a low-level primitive — prefer set_erc20_balance for token balances and fund_account for native balance. Use this only when you need to write a specific storage slot directly (e.g. Chainlink oracle price override, protocol parameter bitmap, liquidity index). Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| simulate_transaction | Simulates a transaction on any Tenderly-supported EVM network without spending gas. Returns the outcome including decoded traces, gas usage, and revert reason. For reverted transactions, includes decoded custom Solidity errors with name and typed parameters when available. Requires an active project (set via set_active_project). |
| simulate_vnet_transaction | Simulates a transaction on a Virtual TestNet without changing its state. Returns a summary with status, gas usage, decoded method, and decoded error details for reverted transactions. Omit 'to' for contract deployment. Use follow-up tools (listed in the response hint) to inspect call traces, events, and gas breakdown. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| snapshot_vnet | Creates a state snapshot of a Virtual TestNet and returns a snapshot ID. Use before running a simulation scenario so you can revert back with revert_vnet. Snapshots are lightweight — take one before any destructive or exploratory operation. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| trace_transaction | Traces an on-chain transaction's execution and returns a summary: status, gas used, decoded method name, and error details. For reverted transactions, includes decoded custom Solidity errors with name and typed parameters when available. Use follow-up tools (listed in the response hint) to inspect call traces, events, and state changes. Requires an active project (set via set_active_project). |
| trace_vnet_transaction | Returns a decoded execution trace summary for a Virtual TestNet transaction — contract name, function name, decoded input parameters, decoded output, and decoded error details for reverted transactions. For deeper analysis, use follow-up tools listed in the response hint. Pass the operation_id from get_vnet_transactions. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| vnet_call | Executes a read-only eth_call on a Virtual TestNet without changing state. The data field must be ABI-encoded calldata (4-byte function selector + encoded arguments). Returns raw hex — decode with the contract ABI to extract return values. For reading multiple addresses at once, prefer vnet_multicall to save round trips. Result is truncated to 10 KB if the return data is very large. Requires an active project and vnet (set via set_active_project and set_active_vnet). |
| vnet_multicall | Executes up to 10 read-only eth_call requests in a single batch on a Virtual TestNet. Returns one result per call, in the same order. Each call's data must be ABI-encoded calldata (4-byte function selector + encoded arguments). Prefer this over multiple vnet_call invocations when reading data for several addresses or contracts. Individual results are truncated to 10 KB if very large. Requires an active project and vnet (set via set_active_project and set_active_vnet). |