Tenderly MCP Server предоставляет 59 инструментов, разделённых на семь групп. Чтобы сначала подключить его к своему клиенту, следуйте быстрому старту MCP Server. Всем инструментам, работающим с ресурсами проекта, требуется активный проект — сначала вызовите set_active_project. Инструментам Virtual Environment требуется активный Virtual Environment — вызовите set_active_vnet или создайте/форкните Virtual Environment (что автоматически активирует его).
Вам не нужно вызывать инструменты по имени. Просто опишите, что вы хотите, естественным языком, и Claude сам подберёт нужные инструменты.
Проект и аккаунт
Эти инструменты управляют контекстом сессии. Большинству других инструментов требуется установленный активный проект.
| Инструмент | Описание |
|---|
get_user_info | Возвращает информацию об аккаунте (ID, имя пользователя, email), текущий активный проект и активный Virtual Environment (ID, RPC URL, network ID), если установлен. |
list_projects | Перечисляет все проекты Tenderly, доступные вам. Поддерживает необязательную фильтрацию по имени или слагу. |
set_active_project | Устанавливает активный проект для последующих вызовов инструментов. Принимает account_slug и project_slug. Должен быть вызван до использования инструментов уровня проекта. |
Сети
| Инструмент | Описание |
|---|
get_networks | Перечисляет все публичные EVM-сети, поддерживаемые Tenderly (100+). Поддерживает необязательную фильтрацию по имени. Возвращает network ID, имя, слаг и chain ID. |
Контракты
| Инструмент | Описание |
|---|
get_contract_info | Возвращает метаданные для адреса контракта в заданной сети: имя контракта, ABI (если верифицирован), версию компилятора, EVM-версию, язык, стандарты токенов (ERC-20, ERC-721 и т. д.), блок создания, транзакцию создания и адрес деплойера. |
Симуляции транзакций
Симулируйте и трассируйте транзакции в любой поддерживаемой Tenderly EVM-сети, не тратя газ и не изменяя ончейн-состояние.
Основные инструменты симуляции
| Инструмент | Описание |
|---|
simulate_transaction | Симулирует транзакцию и возвращает результат: статус success/revert, использованный газ, декодированное имя метода, сообщение об ошибке и причину revert. Поддерживает переопределения состояния, поля EIP-1559 и кастомные номера блоков. Результаты сохраняются на дашборд проекта. |
resimulate_transaction | Воспроизводит существующую ончейн-транзакцию в среде симуляции Tenderly. Полезно для отладки транзакций, которые упали или повели себя неожиданно. |
trace_transaction | Трассирует ончейн-транзакцию и возвращает сводку: статус, использованный газ, декодированный метод, отправителя, получателя и детали ошибки. |
Инструменты детализации симуляции
После запуска simulate_transaction, resimulate_transaction или trace_transaction используйте эти дополнительные инструменты с возвращённым simulation_id или tx_hash, чтобы инспектировать конкретные аспекты исполнения.
| Инструмент | Описание |
|---|
get_simulation_call_trace | Плоское дерево вызовов — каждый внутренний EVM-вызов с декодированными именами функций, входами, выходами и газом по каждому вызову. Поддерживает параметр max_depth. Ограничено 256 записями. |
get_simulation_events | Декодированные события (логи), эмитированные во время исполнения, включая имена событий, эмитирующие адреса и параметры, декодированные по ABI. Ограничено 100 записями. |
get_simulation_state_changes | Диффы слотов хранилища (адрес, ключ, значения до/после) и диффы нативных балансов для всех затронутых аккаунтов. Ограничено 100 записями. |
get_simulation_asset_transfers | Все переводы токенов и нативных активов: отправитель, получатель, информация о токене (имя, тип, символ, decimals) и сумма. Ограничено 100 записями. |
get_simulation_exposure_changes | Изменения approvals и allowance для токенов — approvals, отзывы и permits. Ограничено 100 записями. |
get_simulation_balance_changes | Чистое изменение балансов по каждому адресу с долларовыми значениями. Ограничено 100 записями. |
get_simulation_gas_breakdown | Разбивка газа по каждому вызову, включая intrinsic gas и refunds. Значения газа включают подвызовы. |
get_simulation_generated_access_list | Генерирует access list EIP-2930 путём пересимуляции транзакции. Полезно для оптимизации газа. |
Virtual Environments
Создавайте и управляйте приватными персистентными форками публичных EVM-сетей. У Virtual Environments свои RPC-эндпоинты, и они поддерживают имперсонированные транзакции без приватных ключей.
Инструменты Virtual Environment используют stateful-модель сессии: установите Virtual Environment активным (или создайте/форкните его — это автоматически активирует), и все последующие инструменты Virtual Environment работают с ним. Не нужно передавать ID Virtual Environment в каждый вызов.
| Инструмент | Описание |
|---|
set_active_vnet | Устанавливает активный Virtual Environment для последующих вызовов инструментов. Принимает vnet_id. После установки все инструменты Virtual Environment автоматически работают с этим Virtual Environment. |
create_vnet | Создаёт новый Virtual Environment, форкая публичную сеть на определённом блоке. Принимает network_id, необязательные display_name, description, block_number (hex), кастомный chain_id и sync_state_enabled. Возвращает детали Virtual Environment, включая RPC URLs. Автоматически устанавливает новый Virtual Environment активным. |
list_vnets | Перечисляет Virtual Environments в активном проекте. Поддерживает пагинацию (page, per_page), фильтрацию по статусу (running, stopped, cloning) и поиск по имени. |
get_vnet | Возвращает полные детали активного Virtual Environment: ID, слаг, отображаемое имя, статус, описание, конфигурацию форка, конфигурацию сети и URL RPC-эндпоинтов. |
fork_vnet | Форкает активный Virtual Environment в новый, сохраняя всё состояние, включая задеплоенные контракты и балансы. Автоматически устанавливает новый форк активным. |
delete_vnet | Удаляет Virtual Environment. Это деструктивное действие. Очищает активный Virtual Environment из состояния сессии. |
send_vnet_transaction | Отправляет и исполняет транзакцию в активном Virtual Environment. Адрес отправителя имперсонируется, приватный ключ не нужен. Принимает from, to, input (calldata), value (hex wei) и gas. |
get_vnet_transactions | Перечисляет транзакции в активном Virtual Environment с пагинацией. Возвращает хеш транзакции, статус, использованный газ, номер блока и метод. |
fund_account | Задаёт баланс нативного токена для любого адреса в активном Virtual Environment, вызывая tenderly_setBalance по RPC. Принимает address и amount в hex wei. |
set_erc20_balance | Задаёт баланс ERC-20 токена для любого адреса в активном Virtual Environment через tenderly_setErc20Balance. Принимает token_address, address и value. Предпочтительнее set_storage_at для изменения балансов токенов. |
set_storage_at | Записывает сырое значение в конкретный слот хранилища контракта через tenderly_setStorageAt. Принимает contract_address, slot и value. Используйте для переопределения цен оракулов, параметров протокола или любого состояния, не покрытого высокоуровневыми инструментами. |
vnet_call | Выполняет read-only eth_call в активном Virtual Environment. Принимает to, input (calldata) и необязательный from. Результаты усекаются на 10 КБ. |
vnet_multicall | Выполняет пакет до 10 read-only eth_call-запросов за один RPC round-trip. Каждый вызов принимает to, input и необязательный from. Каждый результат усекается на 10 КБ. |
mine_block | Майнит один блок в активном Virtual Environment через evm_mine. Используйте после increase_time, чтобы применить изменение времени. |
increase_time | Продвигает часы Virtual Environment на заданное число секунд через evm_increaseTime. Всегда следуйте mine_block, чтобы зафиксировать изменение времени в новом блоке. |
snapshot_vnet | Сохраняет текущее состояние Virtual Environment и возвращает ID снапшота через evm_snapshot. Используйте для ветвления тестовых сценариев — сделайте снапшот перед тестом, затем откатитесь и попробуйте другой путь. |
revert_vnet | Восстанавливает Virtual Environment к ранее сохранённому снапшоту через evm_revert. Снапшот расходуется при использовании — сделайте новый снапшот, если нужно откатиться ещё раз. |
Симуляции и трассы Virtual Environment
Симулируйте и трассируйте транзакции в активном Virtual Environment. Эти инструменты работают с operation ID, а не с хешами транзакций сетевого уровня.
Основные инструменты симуляции Virtual Environment
| Инструмент | Описание |
|---|
simulate_vnet_transaction | Симулирует транзакцию в Virtual Environment, не изменяя его состояние. Возвращает статус, использованный газ, декодированный метод и operation_id для последующих инструментов. Поддерживает переопределения состояния. |
resimulate_vnet_transaction | Повторно трассирует ранее выполненную транзакцию Virtual Environment по её operation_id (из get_vnet_transactions). |
trace_vnet_transaction | Возвращает сводку декодированной трассы исполнения: имя контракта, имя функции, декодированные входные параметры, декодированный выход, использованный газ и детали ошибки. |
Инструменты детализации симуляции Virtual Environment
Используйте их с operation_id из инструментов выше. Они работают в активном Virtual Environment.
| Инструмент | Описание |
|---|
get_vnet_simulation_call_trace | Плоская трасса вызовов для транзакции Virtual Environment с типом вызова, адресами, газом и значением по каждому вызову. |
get_vnet_simulation_events | Декодированные события, эмитированные во время транзакции Virtual Environment: имя события и эмитирующий адрес. |
get_vnet_simulation_gas_breakdown | Разбивка газа по каждому вызову, отсортированная по потреблению газа. Показывает общий газ и топ-потребителей. |
get_vnet_simulation_state_changes | Диффы слотов хранилища: адрес, ключ, значения до/после для каждого изменённого слота. |
get_vnet_simulation_generated_access_list | Access list EIP-2930, сгенерированный из исполнения транзакции Virtual Environment. |
get_vnet_simulation_balance_changes | Чистые изменения балансов по каждому адресу с долларовыми значениями. |
get_vnet_simulation_asset_changes | Переводы токенов и нативных активов: тип, from, to, сумма и информация о токене. |
Продвинутая навигация по трассе
16 инструментов для навигации по сложным транзакциям с сотнями или тысячами внутренних вызовов. Используйте их, когда get_simulation_call_trace или get_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_stats | Аналог get_trace_stats для Virtual Environment. |
get_vnet_trace_skeleton | Аналог get_trace_skeleton для Virtual Environment. |
get_vnet_call_trace_node | Аналог get_call_trace_node для Virtual Environment. |
search_vnet_call_trace | Аналог search_call_trace для Virtual Environment. |
get_vnet_subtree_events | Аналог get_subtree_events для Virtual Environment. |
find_vnet_failures | Аналог find_failures для Virtual Environment. |
get_vnet_error_path | Аналог get_error_path для Virtual Environment. |