プロトタイプ · プレビュー版:公式レジストリのすべてのサーバーを掲載し、30分ごとに同期しています。レビューとアカウント機能は今後のステップで始まります。
PopNx MCPAIを使う人のためのMCPサーバー · やさしい言葉で解説

TronSave

作者:tronsaveバージョン 1.5.1i★ –iクラウドで動く
レジストリ名io.github.tronsave/mcp

インストール

概要

作者による説明(英語の原文)

Buy, sell and extend TRON Energy/Bandwidth on the TronSave market. Quotes need no login.

PopNx MCPの3つの柱

この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。

できること

このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。

  • 接続方法: クラウドで動く
  • トランスポート: Streamable HTTP
  • カテゴリ: その他
  • 入力が必要なもの:Authorization

インストール

使っているAIアプリを選んで、設定をコピーしてください。

インストールの前に

「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。

必要なもの

どのアプリを使っていますか?

上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。

このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。

ターミナルでこれを実行します

claude mcp add --transport http tronsave https://mcp.tronsave.io/mcp --header 'Authorization: your-value'

動かす前に、空欄の値を入力してください。

Cursorで開く

または、設定を自分でコピーする

プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます

{
  "mcpServers": {
    "tronsave": {
      "url": "https://mcp.tronsave.io/mcp",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

VS Codeで開く

または、設定を自分でコピーする

プロジェクトの .vscode/mcp.json に貼り付けます

{
  "servers": {
    "tronsave": {
      "type": "http",
      "url": "https://mcp.tronsave.io/mcp",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。

このアドレスはリクエストの header にキーが必要ですが、コネクタを追加するメニューでは設定できません。代わりにClaude Code、Cursor、VS Codeを使ってください。

選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。

自分で入力する値

  • Authorization 秘密 HTTP header
    Optional. `ApiKey ` unlocks internal-balance tools. Without it, public tools work and the agent can log in with `tronsave_login`.

この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。

できること

ツールの名前と説明は、サーバーが2026年11月6日に返したそのままの内容です。書いたのは作者で、私たちではありません。プレーンテキストとして表示しています。

  • tronsave_get_internal_account

    Retrieve the Tronsave internal account profile for the current logged-in session (wallet/represent address, balances, deposit address). Requires an internal API key: `tronsave_login` (api-key mode, or signature mode for a wallet with an internal account) or an `Authorization: Api

  • tronsave_get_deposit_address

    Fetches the specific deposit address for the TronSave internal account. Requires an internal API key: `tronsave_login` (api-key mode, or signature mode for a wallet with an internal account) or an `Authorization: ApiKey ` client header. Never pass API keys as tool arguments; the

  • tronsave_internal_order_history

    List paginated order history for the internal account linked to the API key, newest first. Requires an internal API key: `tronsave_login` (api-key mode, or signature mode for a wallet with an internal account) or an `Authorization: ApiKey ` client header. Never pass API keys as t

  • tronsave_internal_order_details

    Fetch full details for one internal-account order by order ID. Requires an internal API key: `tronsave_login` (api-key mode, or signature mode for a wallet with an internal account) or an `Authorization: ApiKey ` client header. Never pass API keys as tool arguments; the server fo

  • tronsave_internal_order_book

    Return the current TronSave market depth/price tiers for ENERGY or BANDWIDTH via the api-key REST endpoint. Requires an internal API key: `tronsave_login` (api-key mode, or signature mode for a wallet with an internal account) or an `Authorization: ApiKey ` client header. Never p

  • tronsave_internal_order_estimate

    Estimate the TRX cost and availability for a buy order before submitting it (api-key internal account). Requires an internal API key: `tronsave_login` (api-key mode, or signature mode for a wallet with an internal account) or an `Authorization: ApiKey ` client header. Never pass

  • tronsave_internal_order_create

    Place a new buy order for ENERGY or BANDWIDTH on TronSave, paid from the internal account balance. Requires an internal API key: `tronsave_login` (api-key mode, or signature mode for a wallet with an internal account) or an `Authorization: ApiKey ` client header. Never pass API k

  • tronsave_internal_extend_delegates

    Return extendable delegations for a receiver plus an `extendData` payload for the extension flow. Requires an internal API key: `tronsave_login` (api-key mode, or signature mode for a wallet with an internal account) or an `Authorization: ApiKey ` client header. Never pass API ke

  • tronsave_internal_create_extend_request

    Submit an extension request for existing delegated resources on TronSave via authenticated REST `POST /v2/extend-request`. Requires an internal API key: `tronsave_login` (api-key mode, or signature mode for a wallet with an internal account) or an `Authorization: ApiKey ` client

  • tronsave_get_sign_message

    Step 1 of wallet login. Returns `{ message, timestamp }`: ask the user to sign `message` with their TRON wallet (TronWeb `signMessageV2`, TronLink, etc.), then call `tronsave_login` with `signature: " _ "`. Signing the plain decimal `timestamp` text is also accepted. No auth need

  • tronsave_login

    Log in to TronSave for the rest of this MCP connection. Provide EXACTLY ONE of: `signature` = ` _ ` produced by the user's wallet over the `message` from `tronsave_get_sign_message` (unlocks wallet tools; also loads the wallet's internal API key if it has one), or `apiKey` = raw

  • tronsave_logout

    Remove the TronSave login bound to this MCP connection (api-key or signature). Returns `{ loggedOut: true }`; idempotent. Header credentials configured on the client are not affected.

  • tronsave_get_session_status

    Report the current authentication state without calling TronSave: `authMode` (none | api-key | signature), `source` (login | header), `walletAddress`, `hasInternalApiKey`, `expiresAt`, network, and which tool groups are available now. Call this first when unsure whether to log in

  • tronsave_get_user_info

    Read the current authenticated user's profile and linked TronSave internal account. For the internal balance alone use `tronsave_get_internal_account`; for referral data `tronsave_get_referral`. Returns `{ caller, address, balance (SUN string), info, internalAccount }` — `info` c

  • tronsave_get_user_auto_setting

    Read the current user's auto-sell configuration (`autoSettings`). Returns the full `autoSettings` object — call this before `tronsave_register_auto_sell` or `tronsave_update_auto_sell_setting` to avoid overwriting fields you do not intend to change. Requires a wallet signature id

  • tronsave_get_user_permissions

    Read the enabled permission operations (`autoSettings.permitOperations`) for the authenticated user. Returns `{ permitOperations: string[] }` — use it before mutating auto-sell or auto-buy rules to confirm the action is allowed for the wallet. Requires a wallet signature identity

  • tronsave_estimate_buy_resource

    Quote price and availability for buying ENERGY or BANDWIDTH for a receiver address before placing an order. This quote feeds `tronsave_create_order`; for `tronsave_internal_order_create` (API key) quote with `tronsave_internal_order_estimate`. Returns `{ unitPrice (SUN/unit), dur

  • tronsave_get_order

    Read one order by `id` and return its full snapshot for NORMAL, FAST, or EXTEND order types. With only an API key, use `tronsave_internal_order_details` instead. Use this as the source of truth before `tronsave_update_order`, `tronsave_sell_order_manual`, or `tronsave_cancel_orde

  • tronsave_list_orders

    Query the market order list with paging (`offset`, `limit` ≤ 10). For an API-key account's own purchases use `tronsave_internal_order_history`. Returns `{ orders: [{ id, requester?.address, receiver.address, resourceType, resourceAmount, remainAmount, durationSec, unitPrice (SUN)

  • tronsave_list_order_books

    Read market depth buckets for `ENERGY` or `BANDWIDTH`. Public view; with an API key, `tronsave_internal_order_book` adds SLOW/MEDIUM/FAST price tiers. Returns price buckets `{ min, max, value }` optionally scoped by viewer address, minimum delegate amount, and duration. No login

  • tronsave_get_min_price

    Quote the minimum unit price for a buy. Use when only the floor price matters; for a full purchase quote use `tronsave_estimate_buy_resource`, for a grid across amounts and durations `tronsave_get_price_table`. Returns `{ minPrice }` (SUN per resource unit; per day when `duration

  • tronsave_list_extendable_delegates

    List extendable delegate candidates for a `receiver` and `resourceType` (ENERGY|BANDWIDTH). Optional `suggestData` scores an extend-and-buy scenario for planning purposes. Read-only; does NOT create orders or change on-chain state. No login required. NOTE: this is GraphQL market

  • tronsave_create_order

    Create a buy order for ENERGY/BANDWIDTH delegated to `orderReceiver`. SPENDS FUNDS — confirm the plan with the user first. API-key integrations paying from the internal balance can instead use `tronsave_internal_order_create` (FAST/MEDIUM/SLOW pricing, fill guards). Inputs: `orde

  • tronsave_sell_order_manual

    Manually execute seller-side fulfillment of an existing order with a wallet `signedTx`. Returns `{ success, message, code, delegatedId }`. Side effect: broadcasts a market/delegation transaction and may consume balances/resources; not idempotent — each call re-executes. Requires

  • tronsave_cancel_order

    Cancel an open order by `orderId`. Returns `{ success, message, code }`. Side effect: marks the order non-matchable and refunds locked balance per backend rules; effectively destructive on the live order. Idempotent — cancelling an already-cancelled order is a no-op success. Fail

  • tronsave_update_order

    Update an open order by `orderId` with partial fields (`receiver`, `newPrice`). Returns `{ success, message, code }`. Side effect: overwrites live order parameters; not idempotent — each call with a different `newPrice` produces a new state. Requires a wallet signature identity (

  • tronsave_register_auto_sell

    Create the initial auto-sell configuration for the authenticated user. Returns the persisted `autoSettings` payload. Side effect: persists automation settings that affect future delegation/sell behavior; not idempotent — calling twice may reset fields. Requires a wallet signature

  • tronsave_update_auto_sell_setting

    Update the existing auto-sell configuration with partial fields. Returns the updated `autoSettings` payload. Side effect: overwrites stored automation settings for the current user; not idempotent across different field sets. Requires a wallet signature identity. Use for INCREMEN

  • tronsave_generate_api_key

    Generate a new internal API key credential for the current user. Returns `data` containing the issued key — show it to the user once and tell them to store it securely; do not repeat it in later messages. Side effect: issues secret material; not idempotent — each call mints a fre

  • tronsave_revoke_api_key

    Revoke the caller's current internal API key. Side effect: any future request using the previous key is rejected. Existing in-flight sessions cached by the server may continue serving until their TTL expires — treat the effect as 'best-effort immediate' rather than guaranteed ins

  • tronsave_delete_auto_buy_setting

    Permanently delete one auto-buy rule by `id` (`MObjectId`). Side effect: stops all future executions matching that rule; the rule cannot be restored. Idempotent — deleting a non-existent or already-removed id returns success. Requires a wallet signature identity. Use `tronsave_ge

  • tronsave_get_market_overview

    Read the TronSave market summary: resource currently available and total listed for ENERGY and BANDWIDTH, number of pooled sellers, and seller APY (percent). Use for a quick 'how is the market' answer before pricing; for prices use `tronsave_get_price_table` (grid) or `tronsave_e

  • tronsave_get_price_table

    Read the price grid for ENERGY or BANDWIDTH: `prices[i][j]` is the unit price in SUN for `amounts[i]` resource units rented for `durations[j]` (e.g. '15m', '1h', '1d'). Durations of 1 day or longer are priced per day: '30d' at 40 SUN costs 40 x 30 SUN per unit in total. Use to co

  • tronsave_get_system_info

    Read TronSave and TRON protocol parameters: latest block, minimum buy amounts, TRX burn rates per unit, dynamic buy/lowest prices, the system deposit address, max lock period and the energy cost of a USDT transfer. Use to size purchases (minimums) and to compare renting with burn

  • tronsave_get_account_resources

    Read the on-chain staked and delegatable ENERGY/BANDWIDTH of a TRON address, plus its TRX balance (SUN string). Use to check whether a wallet can sell, or how much resource it holds. Public (any address), read-only; does not need a login.

  • tronsave_suggest_create_order

    Ask the market how a buy would be filled: a plain new order, buying more only, or extending existing delegations (optionally plus extra). Returns each option with `readyToFill` (percent), `payout` (SUN) and the `extendData` rows. Use before `tronsave_create_order` when the receiv

  • tronsave_list_extendable_receivers

    List the receiver addresses that have delegations bought by `requester` which can still be extended, with expiry time (Unix seconds), delegation count and total amount. Use as the first step of an extension flow to find which receiver to extend, then `tronsave_list_extendable_del

  • tronsave_get_seller_stats

    Read the logged-in seller's lifetime totals (delegations, resource delegated, TRX earned, average price per resource) and a daily earnings chart split into auto, manual, exclusive and extend delegations. Use for 'how much did I earn' totals; for the individual delegations behind

  • tronsave_list_delegations

    List the logged-in seller's delegations (resource sent to buyers): amount, TRX amount, duration, unit price, type (AUTO, MANUAL, EXTEND, FAST), status and payout. Newest first; page with `offset`/`limit`. Use for a seller's per-delegation history; for earnings totals use `tronsav

  • tronsave_list_auto_buy_settings

    List the logged-in user's auto-buy rules: receiver, resource, unit price cap, threshold, budget/order limits, totals bought and active state. Use before `tronsave_update_auto_buy_setting` or `tronsave_delete_auto_buy_setting` to get rule ids. Requires a wallet signature identity.

  • tronsave_create_auto_buy_setting

    Create a rule that automatically buys `resourceAmount` for `receiver` whenever its remaining resource falls below `thresholdResourceAmount`, paying up to `unitPrice` SUN per unit from the TronSave internal balance. Side effect: SPENDS internal TRX every time the rule fires until

  • tronsave_update_auto_buy_setting

    Change an auto-buy rule by id: pause or resume it with `isActive`, or change any of price cap, amount, duration, threshold and limits (only the fields you send change). Side effect: a resumed or loosened rule can start spending internal TRX again. Idempotent for the same argument

  • tronsave_list_notifications

    List the logged-in user's notifications (order created / filled / cancelled / reclaimed, referral payouts) newest first, with the unread count. Use to follow up on an order after creating it; page with `offset`/`limit`, and mark items read with `tronsave_mark_notifications_read`.

  • tronsave_mark_notifications_read

    Mark one notification (by `id`) or, when `id` is omitted, ALL of the user's notifications as read. Get ids from `tronsave_list_notifications`. Only changes the read flag; idempotent. Requires a wallet signature identity.

  • tronsave_get_referral

    Read the logged-in user's referral status: own referral code, sponsor, referral counts, bonus earned and remaining (SUN strings), rank, the referral list (PENDING/ACTIVE) and recent commission payouts. Use for referral questions only; account profile is `tronsave_get_user_info`.

  • tronsave_get_telegram_notify_setting

    Read the Telegram alert filters of the logged-in user: seller alerts (remaining amount, duration, price and APY ranges, unlocked-only) and buyer alerts (reclaim warning time, low energy / bandwidth thresholds). `setting` is null when Telegram is not linked. Read these before chan

  • tronsave_update_telegram_notify_setting

    Replace the Telegram alert filters. Send the COMPLETE `sellerFilter` and/or `buyerFilter` objects (read the current ones with `tronsave_get_telegram_notify_setting`, edit, send back); each range or value has `isEnabled` plus its numbers. Only changes which alerts are sent; no fun

  • tronsave_get_agency_bot

    Read the logged-in user's Telegram agency bot (resale bot): name, username, status (PENDING, ACTIVE, INACTIVE, BLOCKED, REJECTED), rewards (total and unpaid) and order / resource statistics. `bot` is null when none is registered. The bot token is never returned. Requires a wallet

  • tronsave_list_internal_transactions

    List the TRX ledger of the logged-in user's internal account (deposits, order payments, refunds), newest first, with the current balance and deposit address. Amounts are SUN strings. Use to reconcile spending after orders. For the orders themselves use `tronsave_internal_order_hi

  • tronsave_get_flash_unstake_request

    Read the logged-in user's flash-unstake request (selling staked TRX early for an immediate payout): state, payout state, amounts and release progress. `request` is null when there is none. Use for the user's own request; to preview a payout before requesting use `tronsave_estimat

  • tronsave_list_flash_unstake_orders

    Browse the flash-unstake market: `available` (open orders buyers can take), `ongoing` (being paid out) or `completed`. Amounts are SUN-scaled numbers; `estimateCompletionTime` is seconds. Use to browse the whole market; the user's own request is `tronsave_get_flash_unstake_reques

  • tronsave_estimate_flash_unstake

    Estimate what an address would receive by flash-unstaking all its staked TRX now: total staked, fee percentage, payout, delegations to reclaim and the minimum unstake amount. Nothing is submitted. Use before requesting a flash unstake; check an existing request with `tronsave_get

  • tronsave_bulk_create_internal_orders

    Buy the SAME amount of ENERGY or BANDWIDTH for several receiver addresses in one call, paid from the TronSave internal balance; returns one order id per receiver. Side effect: SPENDS `paymentAmount` SUN of the internal balance; not idempotent (a repeat buys again). Estimate one r

基本チェックi

誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック

  • ✓ 合格

    作者とリポジトリが一致

    レジストリ名は、リポジトリを所有するGitHubアカウント tronsave で確認済みです

  • … 未チェック

    今もメンテナンスされている

    このリポジトリはまだGitHubから読み取っていません

  • … 未チェック

    ライセンスがある

    このリポジトリはまだGitHubから読み取っていません

  • ✓ 合格

    エンドポイントが応答する

    360ミリ秒で応答(HTTP 200)

  • – 対象外

    OAuthでサインイン

    サインイン不要

  • ✓ 合格

    ツールの説明に隠れた指示がない

    53件のツールの説明を読み、AIへの隠れた指示は見つかりませんでした

その他のほかのサーバーとの比較i

  • このカテゴリのほかの32464件のうち0%よりスターが多い
  • このカテゴリのほかの32464件のうち93%より最近レジストリに公開
  • 基本チェックの結果が、このカテゴリのほかの32464件のうち100%と同じかそれ以上

レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。

よくある質問

TronSaveは安全ですか?

当てはまる基本チェック3項目のうち3項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。

どんなキーやコードが必要ですか?

入力が必要なもの:Authorization

パソコンで動きますか、それともクラウドですか?

作者のクラウドで動きます。インストール不要でインターネット経由でつながりますが、送った内容は作者のサーバーを通ります。

今もメンテナンスされていますか?

GitHubリポジトリの最終更新は–、最新バージョン(1.5.1)がレジストリに届いたのは一昨日です。

どのアプリで使えますか?

Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。URLでつながるので、リモートMCPサーバーに対応したアプリ(開発者モードのChatGPTなど)でも使えます。

代わりに使えるものは?

同じカテゴリには:Spec Driven Development, Remote Desktop Commander, yontu

代わりの候補

同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。

カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i

Remote Desktop Commander

作者:desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

クラウドで動く★ 211昨日更新
インストール

yontu

作者:senrecep

Türkçe yazı denetimi: TDK kuralları, yapay zekâ izleri, metin türüne göre üslup.

パソコンで動く今日更新
インストール

作者のREADME

READMEを開く

作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。

TronSave MCP Server

An agent-native Model Context Protocol server for TronSave: AI agents can quote, buy and manage TRON ENERGY / BANDWIDTH and TronSave accounts through 53 typed tools.

Mainnet endpointhttps://mcp.tronsave.io/mcp
Testnet (Nile) endpointhttps://mcp.tronsave.io/testnet/mcp
TransportStreamable HTTP (POST, JSON responses); legacy SSE at /sse
Authnone · OAuth 2.1 sign-in at /oauth/mcp (API key or TronLink) · Authorization: ApiKey header · tronsave_login tool

Documentation

  • Setup guide for Claude Code, Cursor and Claude — for end users, step by step (also at GET /connect).
  • Integration quickstart — connect Claude, Cursor, VS Code, OpenAI Agents or your own runtime (also served at GET /quickstart).
  • Tool reference — every tool, input and output (generated from code).
  • Agent guide — the operating rules the server sends to agents (also exposed as MCP resource tronsave://guide/agent).
  • SKILL.md — drop-in skill/system-prompt for agent frameworks.
  • CHANGELOG · Architecture decisions

What makes it agent-native

  • Self-describing. initialize returns instructions (auth model, units, buy workflow, safety rules); every tool has an action-oriented description, strict inputSchema, an outputSchema and MCP annotations (readOnlyHint, destructiveHint, idempotentHint).
  • No out-of-band setup. Agents log in with a tool call; the login binds to the MCP connection automatically. Static clients can use an Authorization: ApiKey header instead. tronsave_get_session_status tells the agent what it can do right now.
  • Actionable errors. Failures are isError results with {"error":{"code","message","retryable","hint"}}; the hint names the next tool to call.
  • Safe writes. Writes are never retried automatically (no duplicate orders); a timeout on a write is reported as "outcome unknown — verify first". Successful writes are never turned into errors by response-schema drift.
  • Secrets stay out of the model. API keys are masked in tool output and never logged; signing always happens in the user's wallet.
  • Resources & prompts. tronsave://guide/agent resource and buy_resource / account_overview prompts.

Tools at a glance

53 tools in two payment paths. Market path: public quotes, plus orders paid on-chain or managed with a wallet signature. Internal-balance path (tronsave_internal_*): orders paid from a pre-funded TronSave balance with an API key, for bots and backends. Each tool description says when to use its counterpart on the other path.

GroupToolsAuth
Sessionget_session_status, get_sign_message, login, logoutpublic
Market dataget_market_overview, get_price_table, get_system_info, get_min_price, list_order_books, get_account_resourcespublic
Quote and buyestimate_buy_resource, suggest_create_order, create_order, list_orderspublic (on-chain payment)
Extendlist_extendable_receivers, list_extendable_delegatespublic
Flash unstakelist_flash_unstake_orders, estimate_flash_unstake, get_flash_unstake_requestpublic / wallet
Ordersget_order, update_order, cancel_order, sell_order_manualwallet signature
Accountget_user_info, get_user_permissions, get_referral, generate_api_key, revoke_api_keywallet signature
Auto-sellget_user_auto_setting, register_auto_sell, update_auto_sell_setting, get_seller_stats, list_delegationswallet signature
Auto-buy and bulklist_auto_buy_settings, create_auto_buy_setting, update_auto_buy_setting, delete_auto_buy_setting, bulk_create_internal_orderswallet signature
Alertslist_notifications, mark_notifications_read, get_telegram_notify_setting, update_telegram_notify_setting, get_agency_botwallet signature
Internal balanceget_internal_account, get_deposit_address, list_internal_transactions, internal_order_book, internal_order_estimate, internal_order_create, internal_order_history, internal_order_details, internal_extend_delegates, internal_create_extend_requestAPI key (list_internal_transactions: wallet)

All names carry the tronsave_ prefix. Full details: docs/TOOLS.md.

Connect in 30 seconds

Claude Code:

claude mcp add --transport http tronsave https://mcp.tronsave.io/mcp \

--header "Authorization: ApiKey YOUR_TRONSAVE_API_KEY" # header optional

Any client that accepts a remote MCP URL:

{

"mcpServers": { "tronsave": { "url": "https://mcp.tronsave.io/mcp", "headers": { "Authorization": "ApiKey YOUR_TRONSAVE_API_KEY" } } } }

Apps that support OAuth (Claude, ChatGPT, Cursor, VS Code) can use https://mcp.tronsave.io/oauth/mcp instead: the user signs in on a TronSave page with an API key or TronLink. Without a header the agent can still use all public tools and log in with tronsave_login. More clients: quickstart.

Run it yourself

Requirements: Node.js ≥ 22, Redis ≥ 6.2.

npm ci

cp .env.example .env npm run dev # or: npm run build && npm start

or with Docker (point REDIS_URL in .env at your Redis)

docker compose up --build

VariableDefaultPurpose
MCP_PORT3000HTTP port
REDIS_URLredis://localhost:6379Session store. memory keeps sessions in the process (single instance, lost on restart; for trials only)
SESSION_TTL_SECONDS86400Login / MCP session lifetime (sliding for the transport)
SIGNATURE_MAX_AGE_SECONDS86400Oldest signed timestamp accepted for wallet login / Signature header
SIGN_MESSAGE_TTL_SECONDS300TTL of nonces issued by tronsave_get_sign_message
AUTH_VERIFY_CACHE_TTL_SECONDS60Cache for verified ApiKey / Signature headers
GRAPHQL_TIMEOUT_MS / REST_TIMEOUT_MS10000Per-attempt upstream timeout
REST_RETRIES2Retries for idempotent reads only
READINESS_UPSTREAM_TIMEOUT_MS2000Upstream probe in /readyz
LOG_LEVELinfodebug adds redacted tool input/output bodies
MCP_SERVER_NAME / MCP_SERVER_VERSIONTronSave MCP Server / 1.5.1Reported in initialize
PUBLIC_BASE_URLunsetPublic origin, e.g. https://mcp.tronsave.io. Enables the OAuth authorization server and /oauth/mcp
OAUTH_ACCESS_TOKEN_TTL_SECONDS / OAUTH_REFRESH_TOKEN_TTL_SECONDS3600 / 2592000OAuth token lifetimes (wallet sign-ins are capped at SIGNATURE_MAX_AGE_SECONDS)
TRUST_PROXY1Reverse-proxy hops in front of the server (client IP for OAuth rate limits)
METRICS_TOKEN—When set, /metrics requires Authorization: Bearer (set it whenever /metrics is public)
TRONSAVE_NETWORKmainnetstdio only: mainnet or testnet (HTTP takes the network from the URL)
TRONSAVE_API_KEY—stdio only: sent as Authorization: ApiKey ; unset = public tools until tronsave_login

HTTP endpoints: POST|DELETE /mcp, POST|DELETE /testnet/mcp, with PUBLIC_BASE_URL also POST|DELETE /oauth/mcp, /oauth/testnet/mcp and the OAuth endpoints (/.well-known/oauth-authorization-server, /.well-known/oauth-protected-resource/*, /authorize, /token, /register, /revoke, /oauth/signin), GET / (server info), GET /healthz, GET /readyz, GET /metrics (Prometheus), GET /quickstart, legacy GET /sse + POST /messages.

Local stdio server

npm ci && npm run start:stdio (or node dist/stdio.js; npm ci builds dist/ through prepare) serves the same 53 tools over stdio for one local client, without Redis (REDIS_URL defaults to memory; logs go to stderr). For example in a client config:

{ "mcpServers": { "tronsave": { "command": "node", "args": ["/path/to/tronsave-mcp/dist/stdio.js"],

"env": { "TRONSAVE_NETWORK": "mainnet", "TRONSAVE_API_KEY": " " } } } }

The hosted endpoint needs no install and is the recommended way to connect; stdio is for self-hosting and testing.

Scaling

The Streamable HTTP endpoint is stateless per request: session continuity (transport marker + login) lives in Redis, so any number of replicas can serve the same client without sticky sessions, and restarts are transparent. Only the legacy SSE endpoint needs sticky routing.

Development

npm run typecheck

npm test # unit + HTTP session-flow tests (in-memory Redis stub) npm run test:cov # with coverage gate npm run docs:tools # regenerate docs/TOOLS.md and docs/AGENT_GUIDE.md after changing tools BASE=http://127.0.0.1:3000/mcp npm run smoke # end-to-end check against a running server (throwaway wallet)

Project layout:

src/

├── app/ composition root + shutdown registry ├── clients/ infra/http GraphQL/REST clients on a shared retry + circuit-breaker HttpClient ├── config/ env + constants (network endpoints) ├── handlers/ Express app, Streamable HTTP + legacy SSE, request auth context ├── mcp/agentGuide.ts server instructions, guide resource, prompts ├── services/ auth (headers/sessions), sessions, signature verification, Redis ├── tools/ definitions (schemas + descriptions), handlers, adapters, docs renderer ├── tools.ts registration: auth gate, error envelope, metrics, logging └── utils/ errors, responses, logging, redaction, metrics

Adding a tool: add the name in src/tools/toolNames.ts, the schemas in definitions/*/schema.ts, the definition (description, auth.mode, annotations) and a handler, update tests/tools/toolsCount.test.ts, then run npm run docs:tools.

Releasing: bump package.json, server.json and the CHANGELOG, merge, then run npm run publish:public from a clean checkout. It appends the release as one snapshot commit (no private history) to https://github.com/tronsave/tronsave-mcp, tags vX.Y.Z and creates the GitHub release; then mcp-publisher publish updates the MCP Registry.

Security

  • Never send private keys or seed phrases to the server or the agent; all signing is client-side.
  • mcp-session-id values of logged-in sessions are bearer credentials until they expire or DELETE /mcp / tronsave_logout is called.
  • Run Redis on a private network with auth/TLS; it holds session credentials.
  • Logs redact keys, signatures and session ids; tool bodies are only logged at debug and never for tronsave_generate_api_key.

License

MIT — see LICENSE.

PopNxに聞く