@tenergy/mcp
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@tenergy/mcphow much energy does a USDT transfer need, and what would it cost?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
TEnergy MCP server
Let an AI agent rent TRON energy for you: check prices, estimate a USDT transfer, place an order and watch it land on chain — with a spending cap you set. Works with Claude, Cursor, ChatGPT and any client that speaks the Model Context Protocol.
Never touches a wallet key. It cannot sign transactions and refuses to start if one is passed.
Testnet by default. Mainnet only when you point it there.
Capped. An order above
TENERGY_MCP_MAX_ORDER_TRX(default 50 TRX) is refused before buying.
Connect
Claude Desktop, Cursor (mcp.json):
{
"mcpServers": {
"tenergy": {
"command": "npx",
"args": ["-y", "@tenergy/mcp"],
"env": { "TENERGY_API_KEY": "ak_test_...", "TENERGY_API_SECRET": "..." }
}
}
}Claude Code:
claude mcp add tenergy -e TENERGY_API_KEY=ak_test_... -e TENERGY_API_SECRET=... -- npx -y @tenergy/mcpChatGPT and other remote clients: npx -y @tenergy/mcp --http 3333 behind HTTPS, then add
https://<your-host>/mcp as a connector.
No key? It still runs: get_prices and get_address_resources are public.
Related MCP server: HTTPayer MCP
Tools
Tool | Does | Needs a key |
| Energy prices per tier | no |
| An address's energy and bandwidth right now | no |
| Energy a USDT transfer between two addresses needs | yes |
| Your prepaid balance and where to top it up | yes |
| A price held for a short time | yes |
| Buys energy for a receiver; requires | yes, spends |
| Order status, delegation hashes | yes |
Resources: tenergy://docs/quickstart, tenergy://llms.txt.
Settings
Variable | Default | Meaning |
| unset | Your key pair. Used to sign requests, never shown to the model |
|
| Nile testnet. Mainnet: |
|
| The most one order may cost |
| unset |
|
npx -y @tenergy/mcp --help prints this table. Get a key in the dashboard;
test TRX for Nile from the faucet.
Docs · TypeScript SDK · support@tenergy.me
MIT licensed. Node 22+.
Available Tools
11 toolscalculate_savingsB
Free. What renting energy saves versus burning TRX for USDT transfers: uses the live energy price from our price table and the chain burn price. Give transfers per day and the share that go to empty addresses.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Target TRON network: "mainnet" (production) or "nile" (testnet). Defaults to server default. | |
| share_to_empty | No | 0..1, default 0 | |
| transfers_per_day | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses that the calculation is free and depends on a live energy price from 'our price table' plus the chain burn price, which is meaningful behavioral context. It omits permissions, rate limits, and any note on precision or staleness of the price data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the salient fact ('Free.') then states the comparison, and closes with input instructions. Two tight sentences with no filler, though the phrasing of the core purpose is slightly convoluted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, so the description should ideally explain what the tool returns (e.g., savings amount, percentage, assumptions). It instead focuses only on inputs and data sources, leaving the return shape unclear for a calculator with no annotation coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%; network and share_to_empty are documented in the schema, while transfers_per_day is undocumented but self-explanatory. The description adds meaning by explaining that share_to_empty refers to transfers going to empty addresses, matching the schema's terse '0..1, default 0'. Baseline 3 is appropriate given partial coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific computation: savings from renting energy versus burning TRX for USDT transfers. The roundabout phrasing ('What renting energy saves versus burning TRX') is a bit indirect but still conveys the verb (calculate savings) and resource (energy vs TRX burn cost). It does not explicitly differentiate from siblings like estimate_contract_call or get_prices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives input guidance ('Give transfers per day and the share that go to empty addresses'), which implies when the tool is appropriate. However, there is no explicit when-to-use vs when-not, and no mention of alternatives such as estimate_contract_call or get_prices for related queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_contract_callA
Read-only, free, no API key, nothing signed. Simulates a smart contract call on a public node (triggerconstantcontract) and returns the energy it would use and the TRX it would burn without energy. Give the function selector, e.g. "transfer(address,uint256)", and the ABI-encoded parameter hex.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Target TRON network: "mainnet" (production) or "nile" (testnet). Defaults to server default. | |
| parameter | Yes | ABI-encoded arguments, hex without 0x | |
| owner_address | Yes | Caller, base58 | |
| contract_address | Yes | Contract, base58 | |
| function_selector | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses that nothing is signed, no key is needed, execution happens on a public node, and what the simulation returns. It omits failure/error behavior and rate-limit or network-default caveats, keeping it from a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences: the safety/cost profile leads, the mechanism and return values follow, and the invocation hint closes. No filler, and the most decision-relevant facts are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet the description names the returned quantities (energy and TRX burn), which is the key thing an agent needs. Minor gaps remain around error semantics and network defaults, but it is complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80% (baseline 3), and the description adds genuine value for the one weak spot: it explains the function-selector format with the example "transfer(address,uint256)" and clarifies the parameter is ABI-encoded hex. owner_address/contract_address/network are left to the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource (simulate a smart contract call) and names the exact underlying RPC (triggerconstantcontract) plus the concrete outputs (energy used, TRX burned without energy). This is clearly distinguishable from siblings like get_energy_fee_history or get_chain_parameters.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives real selecting context — read-only, free, no API key, nothing signed — which tells the agent this is the safe pre-flight check. It does not explicitly name an alternative tool or state when-not to use it, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
explain_conceptA
Free, offline. A short, accurate explanation of a TRON resource concept for a user. Concepts: energy, bandwidth, delegation, burn, activation, recovery, rental, routing.
| Name | Required | Description | Default |
|---|---|---|---|
| concept | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose genuinely useful traits — no cost and no network requirement — plus that output is short and explanatory, but it says nothing about return format, determinism, or any limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences with the key traits (free, offline) front-loaded. The trailing concept list duplicates the schema enum, so it is mildly redundant rather than wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a trivial one-enum-param lookup with no output schema and no annotations, the description covers purpose, cost profile, and valid inputs; only the shape of the returned explanation is left implicit.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the single parameter is a closed enum whose values are self-documenting; the description merely restates that same list without adding syntax, defaults, or fallback behavior. Baseline 3 for a fully enumerated one-param tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (explain) and resource (a TRON resource concept) and enumerates the concept domain, so an agent can distinguish it from every sibling, all of which fetch numeric/market data rather than definitions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Free, offline" implies when this is preferable to the network-bound sibling tools, but there is no explicit when-to-use statement, no exclusions, and no named alternative for adjacent questions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_address_resourcesA
Read-only, free, no API key needed. Returns the on-chain energy and bandwidth an address has right now (limits, used, available) and whether it is activated. Call it before buying to see whether the address already has enough energy for its next transfer.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | TRON address, base58 T... | |
| network | No | Target TRON network: "mainnet" (production) or "nile" (testnet). Defaults to server default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it declares the operation read-only, free, and requiring no API key, and it discloses the returned state fields. It omits error behavior for unactivated or malformed addresses and any rate-limit or caching notes, which keeps it below a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The cost/access profile is front-loaded and the actionable timing advice follows, so an agent gets the key facts immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with no output schema and no annotations, the description supplies the safety profile and the shape of the return values, which is what an agent needs. Minor gaps remain around behavior for unactivated addresses, but nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both the address pattern and the network enum are already fully documented in the schema. The description adds no parameter-level detail beyond that, making the baseline 3 correct.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (returns) and resource (on-chain energy and bandwidth for an address) and enumerates the exact sub-fields returned (limits, used, available, activated). This clearly separates it from siblings like estimate_contract_call and calculate_savings, which compute or simulate rather than read current state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Call it before buying to see whether the address already has enough energy for its next transfer" gives an explicit when-to-use trigger tied to a decision point. It does not, however, name a specific alternative tool or state when not to use it, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_chain_parametersA
Read-only, free, no API key. The TRON fee parameters now, read from a public node: energy price (getEnergyFee, SUN per unit), bandwidth price (getTransactionFee), free bandwidth per day, unstake delay in days.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Target TRON network: "mainnet" (production) or "nile" (testnet). Defaults to server default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it declares the tool read-only, free, keyless, and names the data source (a public node) plus the underlying node methods (getEnergyFee, getTransactionFee). It stops short of noting rate limits, failure modes, or freshness guarantees beyond "now".
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the most decision-relevant qualifiers (read-only, free, no key) before the payload list. It is a single dense sentence, slightly overloaded by the parenthetical node method names, but every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so enumerating the returned fields (energy price, bandwidth price, free bandwidth, unstake delay) is genuinely necessary and is done here. Combined with the access and source disclosure, an agent has what it needs; only versioning/rate-limit caveats are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one optional parameter (network, with an enum) and schema description coverage is 100%, so the schema already fully documents it. The description adds nothing about mainnet vs nile behavior, making this a baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource (read the TRON fee parameters) and enumerates the exact contents: energy price, bandwidth price, free bandwidth per day, unstake delay. The word "now" implicitly separates it from get_energy_fee_history, but no sibling is named explicitly, so the differentiation is left to inference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It states the access conditions (read-only, free, no API key) and that values are current, which implies usage for a live fee snapshot rather than historical analysis. However, it never says when to pick this over get_energy_fee_history or get_prices, so routing is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_energy_fee_historyA
Free, offline. Every approved change of the TRON energy price (getEnergyFee) since 2018 with its committee proposal and date, read from the chain on 2026-10-04.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does disclose meaningful traits: it is free, requires no network call ('offline'), returns approved changes only, and is a snapshot read on a specific date (2026-10-04) rather than live data. It stops short of stating limits or return structure, so not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the two most load-bearing facts (free, offline) before the data scope; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-param, no-annotation, no-output-schema read tool, the description covers provenance, freshness, coverage window, and returned fields. Only the exact response shape/pagination is unspecified, which is minor here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, so the baseline is 4; the description correctly adds no phantom parameter guidance and instead scopes the data by time range and approval status.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource (TRON energy price / getEnergyFee) and the exact operation (every approved change since 2018, with committee proposal and date), which separates it from the market/price siblings like get_price_history and get_prices.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the 'since 2018' and 'every approved change' framing tells the agent this is the historical/audit view of energy fees, but it never says when to pick it over get_chain_parameters or get_price_history, nor any preconditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_marketA
Read-only, free, no API key. The live energy market: every venue TEnergy reads with its 1-hour and 1-day price per unit (SUN), when it was read, and our own price. Use it to compare venues or to tell a user where energy is cheapest right now.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Target TRON network: "mainnet" (production) or "nile" (testnet). Defaults to server default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does reasonably well: it declares read-only, free, no API key, and live data with read timestamps. It does not describe rate limits, freshness guarantees, or fallback behavior when a venue is unreachable.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero waste. The read-only/free/no-key qualifiers and the live-data scope are front-loaded, and the usage sentence follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only tool with full schema coverage and no output schema, the description covers what the agent needs to decide and call it. It could be richer about how the returned venue list is ordered or how fresh the snapshot is.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single enum parameter (network: mainnet/nile) is fully documented in the schema, so the baseline is 3. The description adds no network-specific meaning or default-resolution detail beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific resource and scope: the live energy market across every venue TEnergy reads, with 1-hour/1-day price per unit (SUN) and read timestamps. It is clearly a market-snapshot read, though it never explicitly distinguishes itself from close siblings like get_prices or get_market_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit positive guidance: use it to compare venues or to tell a user where energy is cheapest right now. No exclusions or named alternatives are provided, so the agent must infer when get_prices or get_market_summary is the better choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_summaryA
Read-only, free, no API key. One month of the energy market: for each venue min / median / max price, number of readings and share of time it answered, plus the median price by hour of day (UTC). Month as YYYY-MM.
| Name | Required | Description | Default |
|---|---|---|---|
| month | Yes | YYYY-MM, the current month or earlier. | |
| network | No | Target TRON network: "mainnet" (production) or "nile" (testnet). Defaults to server default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are supplied, so the description carries the full burden, and it does real work: read-only, free, no API key (auth/cost profile), month must be current or earlier (valid-input constraint), and 'share of time it answered' quietly discloses that data can be missing. It does not cover rate limits, pagination, or response size, which keeps it short of a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the access/cost attributes in a three-word clause, then the payload, then the format hint — dense prose with no filler. The trailing 'Month as YYYY-MM' duplicates both the opening scope sentence and the schema pattern, which is the only wasted clause.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description must define the return shape, and it does so in useful detail (per-venue statistics plus hourly medians). Remaining gaps are the unmentioned network parameter and the absence of any note on volume, pagination, or timeouts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented, including the YYYY-MM pattern and the network enum. The description's 'Month as YYYY-MM' merely restates the schema and it never mentions the network parameter, so it adds no semantic value beyond the baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb/resource (monthly energy-market summary) and enumerates exactly what is produced: per-venue min/median/max price, reading counts, uptime share, and hourly median price in UTC. It distinguishes itself functionally from raw-price siblings like get_prices/get_price_history by being an aggregate, though it never names an alternative to route against.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: the described output (per-venue and by-hour aggregates over one month) signals when this tool is the right choice versus raw price endpoints, and the schema pins the month to the current month or earlier. There is no explicit when/when-not and no sibling is named, so an agent must infer the routing itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_price_historyA
Read-only, free, no API key. Price history of one market venue (slug from get_market; "tenergy" for ours): 5-minute points of the 1-hour and 1-day price over the last N hours.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | Venue slug from get_market, e.g. "netts", or "tenergy". | |
| hours | No | How far back, hours (default 24). | |
| network | No | Target TRON network: "mainnet" (production) or "nile" (testnet). Defaults to server default. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does disclose important traits: read-only, free, no API key required. What is missing is failure behavior (invalid slug), rate limits, and how the N-hour window interacts with the 720-hour cap that only appears in the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact segments with zero filler; the read-only/free/no-key facts and the slug provenance are front-loaded, and the return shape follows immediately. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description correctly spends its words describing the return shape (5-minute points of two price series over N hours), which is the key gap to fill. It leaves the network default ('server default') and the relationship to the 720-hour bound unexplained, but nothing blocking for a 3-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents slug, hours, and network. The description adds 'over the last N hours' which ties semantically to the hours parameter and repeats the slug source, but contributes no format or default details beyond the schema. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Price history of one market venue') and pins the scope to a single venue with stated granularity ('5-minute points of the 1-hour and 1-day price'). It distinguishes itself from get_prices/get_market_summary by being historical and per-venue, but it never names a sibling alternative, so the differentiation is inferred rather than explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives a clear prerequisite path: fetch the slug from get_market, with the concrete 'tenergy' value for the operator's own venue. It also signals the cost/auth posture ('free, no API key'), which tells the agent it is always safe to call. It stops short of stating when NOT to use it versus get_prices.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pricesA
Read-only, free, no API key needed. Returns the current rental price table: for each resource (energy, bandwidth, activation) and tier (5m, 1h, 1d) the price in SUN per unit, min/max amount and available (false = listed but not buyable now; do not offer it), plus when the table stops being valid. Call it before telling a user a price; these prices are indicative, a binding price comes from create_quote.
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | Target TRON network: "mainnet" (production) or "nile" (testnet). Defaults to server default. | |
| resource | No | Restrict to one resource type. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so: read-only, free, no API key, and the critical caveat that `available: false` means listed-but-not-buyable and must not be offered. It also discloses that returned prices are indicative only, with binding pricing coming from create_quote, and that the table has an expiry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One dense paragraph, but front-loaded with the highest-value facts (read-only, free, no key) and each clause earns its place by describing return fields or usage constraints. It is long for a two-parameter read tool, though not padded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, so the description must supply the return shape and safety profile — and it does, covering the price dimensions, the available flag semantics, the validity window, and the indicative-vs-binding distinction. An agent has everything needed to call and interpret this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters carry enum values with descriptions (network default, resource restriction), so the schema does the heavy lifting. The description explains what filtering by resource yields and clarifies tier semantics, but adds no parameter-specific syntax or default behavior beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb and resource — 'Returns the current rental price table' — and enumerates exactly what the table contains (resource x tier, SUN per unit, min/max, available flag, validity window). That scope implicitly separates it from historical siblings like get_price_history and get_market, but no sibling is named explicitly, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit trigger ('Call it before telling a user a price') and names the alternative path for the stronger need ('a binding price comes from create_quote'). When-to-use and the escalation route are both stated, not inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_order_sizeA
Free, offline. How much energy to order for N USDT transfers, given how many go to addresses that already hold USDT and how many to addresses with a zero USDT balance (measured 2026-09-30: 64,285 vs 130,285 energy per transfer). Use get_address_resources first to know which case a recipient is.
| Name | Required | Description | Default |
|---|---|---|---|
| to_empty | Yes | Transfers to addresses with zero USDT | |
| to_holders | Yes | Transfers to addresses that hold USDT |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and 'Free, offline' is a meaningful disclosure that this is a local, costless, non-networked computation rather than a live chain query. It also exposes data provenance via the measurement date (2026-09-30) and the per-transfer constants, which hints at staleness risk, but never states outright that it is read-only and side-effect free.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no filler, and the punchy 'Free, offline.' lead is front-loaded before the purpose and the prerequisite. The parenthetical figures are dense but earn their place by quantifying the parameter distinction.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The computation and its inputs are fully specified, but there is no output schema and the description never says what is returned — energy units, a TRX cost equivalent, or an object with both. For a sizing tool whose entire value is the returned number, that return-shape gap is the remaining hole.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds real meaning the schema lacks: the distinction between recipients that already hold USDT and those with a zero balance is tied to concrete energy costs (64,285 vs 130,285 per transfer), explaining why the two counts are separate parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact quantity being produced ('How much energy to order for N USDT transfers') and enumerates the two input dimensions that drive it, so the agent knows precisely what computation this performs. It stops short of explicitly distinguishing itself from the closest sibling, estimate_contract_call, which could also be read as an energy estimator.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete prerequisite and ordering rule: 'Use get_address_resources first to know which case a recipient is,' which tells the agent the tool must be fed with classified recipients rather than raw addresses. There is no explicit when-not-to-use or comparison against alternatives like estimate_contract_call.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
v0.1.0-beta.0- First observed
calculate_savings - First observed
estimate_contract_call - First observed
explain_concept - First observed
get_address_resources - First observed
get_chain_parameters - First observed
get_energy_fee_history - First observed
get_market - First observed
get_market_summary - First observed
get_price_history - First observed
get_prices - First observed
suggest_order_size
TDQS
Scored across 11 tools
Tools mostly have distinct purposes, but get_prices and get_market both expose current energy prices, and get_price_history and get_market_summary both report market data. The descriptions clarify the differences, so confusion is limited but possible.
All tool names use snake_case with clear verb_noun patterns such as get_prices, estimate_contract_call, suggest_order_size, calculate_savings, and explain_concept. The convention is consistent and predictable throughout.
11 tools is well within the typical 3-15 range and fits the domain of TRON energy data, market info, and estimation. Each tool has a distinct function, though a few read-only queries could theoretically be consolidated.
The surface covers price data, address resources, chain parameters, estimation, savings, and concepts. However, get_prices explicitly references create_quote for binding prices, but no create_quote or order-placement tool exists, leaving a notable gap for completing a rental transaction.
Maintenance
Related MCP Connectors
TRON Energy marketplace + DEX swap aggregator for AI agents. 27 MCP tools.
TRON energy exchange for AI agents. 54 tools, 30 prompts, 21 resources. A2A + ACP.
Pay-per-call APIs for AI agents: queries, storage, ads. Billed in USDC via x402.
Machine-native tools for autonomous agents with free routing and x402 USDC pay-per-call.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables AI agents to interact with cryptocurrency ecosystems through wallet management, trading operations (swaps, DCA, limit orders), staking, and multi-chain support starting with Solana.37GPL 3.0
- AlicenseAqualityDmaintenanceEnables AI agents to call x402-gated APIs using a central credit balance, abstracting away blockchain complexity and payment proofs. It provides tools to fetch data from payment-required endpoints, check usage balances, and simulate transaction costs.664 npm2-
- AlicenseAqualityDmaintenanceTRON Energy & Bandwidth marketplace for AI agents — 27 MCP tools for buying/selling resources, DEX swaps, and automated energy management via Streamable HTTP.272MIT

mcp-server-tronlinkofficial
AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with the TRON blockchain through browser automation (Playwright) or direct API calls, supporting transfers, staking, swaps, and multi-signature management.12 npm12MIT