Сервер MCP
TEnergy держит сервер Model Context Protocol по адресу https://mcp.tenergy.me (Streamable HTTP). При подключении он просит войти в TEnergy (первый вход создаёт аккаунт) и разрешить агенту нужные действия с лимитом трат; после этого агент видит баланс, получает котировки и заказывает энергию. Смотреть цены и рынок без аккаунта можно по адресу https://mcp.tenergy.me/public.
| Адрес | Сеть | Доступ |
|---|---|---|
https://mcp.tenergy.me | mainnet | вход или ключ ak_live_ |
https://mcp.tenergy.me/nile | тестнет Nile | вход в кабинет Nile или ключ ak_test_ |
https://mcp.tenergy.me/public | mainnet | открыт без аккаунта: только цены и данные сети |
https://mcp.tenergy.me/nile/public | тестнет Nile | открыт без аккаунта: только цены и данные сети |
Подключение
Приложение Claude или claude.ai
- Откройте Settings → Connectors → Add → Add custom connector.
- Назовите
TEnergyи вставьте адресhttps://mcp.tenergy.me(тестнет Nile:https://mcp.tenergy.me/nile). Настройку входа оставьте той, что Claude определит сам, — «Sign in now». - Нажмите Add. Сначала Claude покажет свою страницу «Завершить подключение коннектора?» — нажмите Продолжить.
- Войдите в TEnergy (при первом входе аккаунт создаётся сам), выберите разрешения и лимиты трат и нажмите Разрешить.
Лимиты можно поменять, а доступ отозвать в любой момент в кабинете, в разделе «Подключённые агенты».
Claude Code в терминале
Нужна установленная программа Claude Code для командной строки; в приложении Claude используйте шаги выше.
claude mcp add --transport http tenergy https://mcp.tenergy.me
Затем введите /mcp в Claude Code и выберите Authenticate.
Другие клиенты со входом через аккаунт
Добавьте свой коннектор (или MCP-сервер) с адресом https://mcp.tenergy.me; клиент откроет ту же страницу входа TEnergy.
С API-ключом вместо входа
Клиенты, которые передают заголовки, могут прислать ключ: Authorization: ApiKey <key>:<secret>. Сервер подписывает каждый вызов этим ключом, а сам ключ никогда не попадает к модели.
Claude Code:
claude mcp add --transport http tenergy https://mcp.tenergy.me/ --header "Authorization: ApiKey ak_live_...:..."
Cursor — mcp.json:
{"mcpServers":{"tenergy":{"url":"https://mcp.tenergy.me/","headers":{"Authorization":"ApiKey ak_live_...:..."}}}}
VS Code — .vscode/mcp.json:
{"servers":{"tenergy":{"type":"http","url":"https://mcp.tenergy.me/","headers":{"Authorization":"ApiKey ak_live_...:..."}}}}
Инструменты
| Инструмент | Нужен аккаунт | Что делает |
|---|---|---|
get_prices, get_address_resources | Нет | Таблица цен; энергия и bandwidth получателя |
get_market, get_market_summary, get_price_history | Нет | Живые цены провайдеров, сводка за день, история цен |
get_chain_parameters, get_energy_fee_history | Нет | Цена энергии в сети и её история |
estimate_contract_call, suggest_order_size, calculate_savings | Нет | Энергия на вызов контракта, объём заказа на пакет переводов, экономия против сжигания TRX |
explain_concept | Нет | Энергия, bandwidth, делегирование и другие термины |
get_x402_quote | Нет | Mainnet: котировка x402 в USDC на Base за энергию для TRON-адреса; платит ваш x402-клиент, инструмент ничего не подписывает |
estimate_transfer | Да | Стоимость одного перевода USDT получателю |
get_account | Да | Учётная запись, от имени которой работает подключение: Account ID (acc_…) и название |
get_balance, get_deposit_addresses | Да | Предоплаченный баланс (с ID и названием учётной записи); куда его пополнить |
create_quote, create_order | Да (права на расходы) | Закрепить цену на 120 с; купить |
get_order, list_orders | Да | Статус и история |
Промпты: cheapest_energy_for_transfer, size_batch_order, explain_failed_transaction. Ресурсы: tenergy://docs/quickstart, tenergy://llms.txt, tenergy://facts/energy.
Оплата без аккаунта (HTTP 402, TRX)
Агент без ключа тоже может купить энергию. POST https://api.tenergy.me/v1/orders без ключа отвечает HTTP 402, а в JSON (protocol: "tenergy-trx-transfer", version: 1) написано, как заплатить обычным переводом TRX:
| Поле | Что в нём |
|---|---|
pay_to, network, chain, asset | Адрес для оплаты часовой аренды; основная сеть TRON (на API Nile — Nile); TRX |
price_sun_per_unit, fee_bps | Цена единицы энергии вместе с комиссией сервиса; price_steps — цена по объёму |
min_amount, max_amount | Сколько энергии можно купить одним переводом сейчас |
rules | Энергия = отправленные TRX ÷ цена на момент поступления, с округлением вниз; получатель — отправитель или адрес из мемо; платёж меньше минимума и остаток не возвращаются |
transaction | Только если в теле запроса есть payer (и amount или amount_sun, по желанию receiver): неподписанный перевод — остаётся подписать и отправить |
status_url | GET /v1/transfers/{txid}: awaiting_transfer, pending, order (со статусом заказа), no_order, not_ours |
Это предложение в TRX — не x402 (в x402 нет схемы для TRON и TRX). Запрос с любыми учётными данными проверяется как обычно и такой 402 не получает.
Оплата USDC в сети Base (x402)
Агент, у которого есть USDC в Base, может заплатить по стандарту x402 v2. Передайте amount и receiver в анонимном POST /v1/orders или вызовите GET https://tenergy.me/x402?amount=65000&receiver=T...: в ответе 402 появятся заголовок PAYMENT-REQUIRED и accepts[].
| Поле | Значение |
|---|---|
scheme, network | exact, eip155:8453 (Base) |
asset | USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913 (EIP-3009) |
amount | Сумма в USDC (6 знаков) за этот объём энергии, комиссия сервиса включена |
maxTimeoutSeconds | 120: повторите запрос с подписью за это время |
extra.intentId | Статус: GET /v1/x402/intents/{id} |
Повторите тот же запрос с заголовком PAYMENT-SIGNATURE (любой клиент x402 делает это сам). Мы проводим платёж через фасилитатор Coinbase, создаём заказ на receiver и отвечаем заказом и заголовком PAYMENT-RESPONSE. Без receiver цена только ориентировочная. Энергия на 1 час; один платёж покупает объём в пределах min_amount–max_amount из предложения в TRX.
Правила безопасности
| Правило | Зачем |
|---|---|
Ключ читается только из заголовка Authorization, в каждом запросе | Он не хранится на сервере и не показывается модели |
create_order требует max_price_sun и client_order_id | Потолок цены и ключ идемпотентности у каждой покупки |
| Заказы дороже 50 TRX отклоняются до списания | Запутавшийся агент не опустошит баланс одним вызовом |
| Дайте ключу только те права, что нужны агенту; набора по умолчанию нет | См. Аутентификацию |
Сначала проверьте в тестнете Nile (/nile, ключ ak_test_) | В Окружениях — что Nile доказать не может |