powersun-tron-mcp
TRON Energy marketplace + DEX swap aggregator for AI agents. 27 MCP tools.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"powersun-tron-mcp": {
"url": "https://powersun.vip/mcp"
}
}
}Remote endpoints
https://powersun.vip/mcpstreamable-httpWhat it can do
Tool inventory
Tools (27)
🟢get_prices(resourceType)
Get current TRON Energy and Bandwidth minimum prices for all duration tiers. Returns price per unit in SUN for each available duration.
Input Schema
{
"type": "object",
"properties": {
"resourceType": {
"type": "string",
"enum": [
"ENERGY",
"BANDWIDTH"
],
"description": "Filter by resource type (default: all)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢estimate_cost(txCount, txType, durationMinutes, resourceType)
Calculate the cost of purchasing TRON Energy or Bandwidth. Provide transaction count and type to get the energy needed and cost in TRX.
Input Schema
{
"type": "object",
"properties": {
"txCount": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Number of transactions"
},
"txType": {
"type": "string",
"enum": [
"trc20_transfer",
"trc20_transfer_new",
"trc10_transfer",
"contract_call"
],
"description": "Transaction type (default: trc20_transfer). trc20_transfer_new = first-time transfer to an address."
},
"durationMinutes": {
"type": "number",
"description": "Duration in minutes. Allowed: 2, 5, 10, 15, 30, 60, 360, 1440, 10080, 43200. Default: 60."
},
"resourceType": {
"type": "string",
"enum": [
"ENERGY",
"BANDWIDTH"
],
"description": "Resource type (default: ENERGY)"
}
},
"required": [
"txCount"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_available_resources(resourceType, durationMinutes)
Get total available Energy and Bandwidth across all active pools. Shows how much resource can be purchased right now.
Input Schema
{
"type": "object",
"properties": {
"resourceType": {
"type": "string",
"enum": [
"ENERGY",
"BANDWIDTH"
],
"description": "Filter by resource type (default: both)"
},
"durationMinutes": {
"type": "number",
"description": "Filter pools that support this duration"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_market_overview
Comprehensive market overview: prices, availability, allowed durations, order constraints, and transaction types. Useful for agents to understand what they can purchase.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_balance
Get your current TRX balance and deposit information. Requires API key authentication.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪buy_energy(targetAddress, txCount, txType, durationMinutes, resourceType)
Purchase TRON Energy for a target address. Creates a MARKET order that will be filled by available pools. Deducts cost from your balance.
Input Schema
{
"type": "object",
"properties": {
"targetAddress": {
"type": "string",
"maxLength": 34,
"description": "TRON address to delegate energy to (T-address format)"
},
"txCount": {
"type": "integer",
"exclusiveMinimum": 0,
"description": "Number of transactions you need energy for"
},
"txType": {
"type": "string",
"enum": [
"trc20_transfer",
"trc20_transfer_new",
"trc10_transfer",
"contract_call"
],
"description": "Transaction type (default: trc20_transfer)"
},
"durationMinutes": {
"type": "number",
"description": "Duration in minutes. Allowed: 2, 5, 10, 15, 30, 60, 360, 1440, 10080, 43200. Default: 60."
},
"resourceType": {
"type": "string",
"enum": [
"ENERGY",
"BANDWIDTH"
],
"description": "Resource type (default: ENERGY)"
}
},
"required": [
"targetAddress",
"txCount"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡broadcast_transaction(txData)
Broadcast a pre-signed TRON transaction with auto energy delegation. Send your signed transaction data and PowerSun will delegate energy before broadcasting. Works with API key (balance deduction) or x402 USDC payment. Without authentication, returns cost estimate.
Input Schema
{
"type": "object",
"properties": {
"txData": {
"type": "object",
"properties": {
"txID": {
"type": "string",
"maxLength": 64
},
"raw_data": {},
"raw_data_hex": {
"type": "string",
"maxLength": 100000
},
"signature": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
}
}
},
"required": [
"txID"
],
"additionalProperties": true,
"description": "Pre-signed transaction object with txID, raw_data, raw_data_hex, and signature"
}
},
"required": [
"txData"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_orders(status, limit)
Get your order history with optional status filter. Returns recent orders sorted by creation time.
Input Schema
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"pending",
"active",
"processing",
"completed",
"failed",
"cancelled",
"expired"
],
"description": "Filter by order status"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"description": "Maximum number of orders to return (default: 20)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_order_status(orderId)
Get detailed status of a specific order including delegation progress.
Input Schema
{
"type": "object",
"properties": {
"orderId": {
"type": "string",
"maxLength": 36,
"description": "Order ID (UUID format)"
}
},
"required": [
"orderId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_deposit_info
Get the deposit address to top up your account balance with TRX.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡get_swap_quote(fromToken, toToken, amountIn, slippageBps)
Get a price quote and unsigned transaction for swapping tokens on SunSwap DEX. Returns an unsigned TX for client-side signing. After signing, submit via execute_swap. Requires API key.
Input Schema
{
"type": "object",
"properties": {
"fromToken": {
"type": "string",
"maxLength": 34,
"description": "Token to sell — symbol (USDT, TRX, SUN, ...) or TRC-20 contract address"
},
"toToken": {
"type": "string",
"maxLength": 34,
"description": "Token to buy — symbol or TRC-20 contract address"
},
"amountIn": {
"type": "string",
"description": "Amount to swap in smallest unit (SUN for TRX, base units for tokens)"
},
"slippageBps": {
"type": "integer",
"minimum": 1,
"maximum": 5000,
"description": "Slippage tolerance in basis points (default: 50 = 0.5%)"
}
},
"required": [
"fromToken",
"toToken",
"amountIn"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡execute_swap(txData)
Execute a pre-signed swap transaction with automatic energy delegation. Get the unsigned TX from get_swap_quote, sign it, and submit here. Energy is delegated before broadcast. Works with API key (balance deduction) or x402 USDC payment.
Input Schema
{
"type": "object",
"properties": {
"txData": {
"type": "object",
"properties": {
"txID": {
"type": "string",
"maxLength": 64
},
"raw_data": {},
"raw_data_hex": {
"type": "string",
"maxLength": 100000
},
"signature": {
"type": "array",
"items": {
"type": "string",
"maxLength": 200
}
}
},
"required": [
"txID"
],
"additionalProperties": true,
"description": "Pre-signed swap transaction from get_swap_quote"
}
},
"required": [
"txData"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_pool_stats
Get comprehensive statistics for your energy/bandwidth pools: delegations, revenue, utilization, APY. Requires API key.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_earnings(startDate, endDate)
Get earnings breakdown by pool: total earned, pending payout, paid out. Optionally filter by date range.
Input Schema
{
"type": "object",
"properties": {
"startDate": {
"type": "string",
"maxLength": 30,
"description": "Start date (ISO 8601, e.g. 2026-01-01)"
},
"endDate": {
"type": "string",
"maxLength": 30,
"description": "End date (ISO 8601)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_auto_selling_config
Get current auto-selling configuration for your pools. Shows which resources are being sold, duration constraints, and reserves.
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟡configure_auto_selling(configId, active, sellEnergy, sellBandwidth, reservedEnergy, ...)
Update auto-selling configuration for a pool. Toggle energy/bandwidth selling, set reserves, duration constraints. Pass the configId from get_auto_selling_config.
Input Schema
{
"type": "object",
"properties": {
"configId": {
"type": "string",
"maxLength": 36,
"description": "Configuration ID to update (from get_auto_selling_config)"
},
"active": {
"type": "boolean",
"description": "Enable/disable auto-selling"
},
"sellEnergy": {
"type": "boolean",
"description": "Enable/disable energy selling"
},
"sellBandwidth": {
"type": "boolean",
"description": "Enable/disable bandwidth selling"
},
"reservedEnergy": {
"type": "integer",
"minimum": 0,
"description": "Energy to keep reserved (not sold)"
},
"reservedBandwidth": {
"type": "integer",
"minimum": 0,
"description": "Bandwidth to keep reserved (not sold)"
},
"minDuration": {
"type": "string",
"maxLength": 10,
"description": "Minimum rental duration (e.g., \"5min\", \"1h\", \"1d\")"
},
"maxDuration": {
"type": "string",
"maxLength": 10,
"description": "Maximum rental duration"
},
"allowRenewals": {
"type": "boolean",
"description": "Allow order renewals"
}
},
"required": [
"configId"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_pool_delegations(poolAddress)
Get active delegations from your pools. Shows who received energy/bandwidth and when delegations expire.
Input Schema
{
"type": "object",
"properties": {
"poolAddress": {
"type": "string",
"maxLength": 34,
"description": "Filter by specific pool address. If not provided, shows all your pools."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪withdraw_earnings(amount)
Withdraw TRX from your account balance to your wallet. Minimum withdrawal: 100 TRX. Withdrawal is processed on-chain and may take a few minutes.
Input Schema
{
"type": "object",
"properties": {
"amount": {
"type": "number",
"exclusiveMinimum": 0,
"description": "Amount to withdraw in TRX (minimum 100 TRX)"
}
},
"required": [
"amount"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢register_pool(paymentAddress, sellEnergy, sellBandwidth, autoVote)
Register a TRON address as an energy/bandwidth selling pool on PowerSun. This creates a pool and auto-selling configuration. After registering, you must grant active permissions to the platform address (DelegateResource, UnDelegateResource, VoteWitness) so the platform can delegate resources to buyers and vote on your behalf. Use check_pool_permissions to verify permissions after granting them. Requires API key.
Input Schema
{
"type": "object",
"properties": {
"paymentAddress": {
"type": "string",
"maxLength": 34,
"description": "TRON address to register as pool (starts with T, 34 characters). This is the address where you hold/stake TRX."
},
"sellEnergy": {
"type": "boolean",
"default": true,
"description": "Enable energy selling (default: true)"
},
"sellBandwidth": {
"type": "boolean",
"default": false,
"description": "Enable bandwidth selling (default: false)"
},
"autoVote": {
"type": "boolean",
"default": true,
"description": "Auto-vote for the best Super Representative to earn rewards (default: true)"
}
},
"required": [
"paymentAddress"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_onchain_status(poolAddress)
Get live blockchain state for your pool: TRX balance, frozen resources (Energy/Bandwidth), voting status, claimable rewards, and delegated resources. Data is fetched directly from TRON blockchain. Requires API key.
Input Schema
{
"type": "object",
"properties": {
"poolAddress": {
"type": "string",
"maxLength": 34,
"description": "Pool address to check. If omitted, uses your first registered pool."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢check_pool_permissions(poolAddress)
Verify that the platform has the required active permissions on your pool address. Required: DelegateResource (to sell energy), UnDelegateResource (to reclaim). Optional: VoteWitness (to vote for SRs and earn rewards). Run this after granting permissions to confirm the platform can operate your pool. Requires API key.
Input Schema
{
"type": "object",
"properties": {
"poolAddress": {
"type": "string",
"maxLength": 34,
"description": "Pool address to check. If omitted, uses your first registered pool."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪trigger_vote(poolAddress)
Vote for the best Super Representative (SR) with the highest APY to earn voting rewards. The platform automatically selects the SR with the best return. Requires VoteWitness permission granted to the platform. Voting rewards accumulate and can be claimed automatically if auto-claim is enabled. Requires API key.
Input Schema
{
"type": "object",
"properties": {
"poolAddress": {
"type": "string",
"maxLength": 34,
"description": "Pool address to vote from. If omitted, uses your first registered pool."
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢get_auto_action_history(poolAddress, actionType, limit)
View execution history of automatic actions (stake, vote, claim) for your pool. Shows status (success/failed/skipped), amounts, transaction hashes, and timestamps. Requires API key.
Input Schema
{
"type": "object",
"properties": {
"poolAddress": {
"type": "string",
"maxLength": 34,
"description": "Pool address to get history for. If omitted, uses your first registered pool."
},
"actionType": {
"type": "string",
"enum": [
"stake",
"vote",
"claim"
],
"description": "Filter by action type"
},
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 20,
"description": "Number of records to return (default: 20, max: 100)"
}
},
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪register(address)
Start agent registration by providing your TRON address. Returns a challenge string that you must sign with your TRON private key using tronWeb.trx.signMessageV2(). After signing, call verify_registration with the signature to receive your API key. No authentication required.
Input Schema
{
"type": "object",
"properties": {
"address": {
"type": "string",
"maxLength": 34,
"description": "Your TRON wallet address (T-address format, 34 characters)"
}
},
"required": [
"address"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}🟢verify_registration(challengeId, address, signature)
Complete agent registration by verifying your signed challenge. Returns an API key and upgrades the current session to authenticated. After verification, all authenticated tools (buy_energy, get_balance, register_pool, etc.) will work in this session without needing to reconnect. No authentication required.
Input Schema
{
"type": "object",
"properties": {
"challengeId": {
"type": "string",
"maxLength": 50,
"description": "Challenge ID from the register tool"
},
"address": {
"type": "string",
"maxLength": 34,
"description": "Your TRON wallet address (must match the register call)"
},
"signature": {
"type": "string",
"maxLength": 200,
"description": "Signature from tronWeb.trx.signMessageV2(challenge, privateKey)"
}
},
"required": [
"challengeId",
"address",
"signature"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪build_permission_transaction(poolAddress, includeVote)
Build an AccountPermissionUpdate transaction that grants the PowerSun platform permission to delegate/undelegate resources and optionally vote on your behalf. Returns an unsigned transaction that you must sign with your private key and then broadcast using broadcast_signed_permission_tx. All existing account permissions are preserved. Requires authentication.
Input Schema
{
"type": "object",
"properties": {
"poolAddress": {
"type": "string",
"maxLength": 34,
"description": "TRON address to grant permissions on (your pool address, T-address format)"
},
"includeVote": {
"type": "boolean",
"description": "Include VoteWitness permission for earning SR rewards (default: true)"
}
},
"required": [
"poolAddress"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}⚪broadcast_signed_permission_tx(signedTransaction, poolAddress)
Broadcast a signed AccountPermissionUpdate transaction to the TRON blockchain. After broadcasting, verifies that the platform permissions were correctly applied. Use this after signing the transaction from build_permission_transaction. Requires authentication.
Input Schema
{
"type": "object",
"properties": {
"signedTransaction": {
"type": "object",
"properties": {
"visible": {
"type": "boolean"
},
"txID": {
"type": "string",
"pattern": "^(?:[a-fA-F0-9]{2})+$",
"minLength": 64,
"maxLength": 64
},
"raw_data_hex": {
"type": "string",
"pattern": "^(?:[a-fA-F0-9]{2})+$",
"maxLength": 100000
},
"signature": {
"type": "array",
"items": {
"type": "string",
"pattern": "^(?:[a-fA-F0-9]{2})+$",
"minLength": 130,
"maxLength": 130
},
"minItems": 1
},
"raw_data": {
"type": "object",
"properties": {
"contract": {
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "AccountPermissionUpdateContract"
},
"Permission_id": {
"type": "integer",
"minimum": 0
},
"parameter": {
"type": "object",
"properties": {
"type_url": {
"type": "string",
"const": "type.googleapis.com/protocol.AccountPermissionUpdateContract"
},
"value": {
"type": "object",
"properties": {
"owner_address": {
"type": "string",
"minLength": 1,
"maxLength": 42
},
"owner": {
"type": "object",
"properties": {
"type": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 1
},
{
"type": "number",
"const": 2
},
{
"type": "string",
"enum": [
"Owner",
"Witness",
"Active"
]
}
]
},
"id": {
"anyOf": [
{
"type": "integer",
"minimum": 0
},
{
"type": "string",
"pattern": "^\\d+$"
}
]
},
"permission_name": {
"type": "string",
"maxLength": 100
},
"threshold": {
"anyOf": [
{
"type": "integer",
"exclusiveMinimum": 0
},
{
"type": "string",
"pattern": "^(?=\\d*[1-9])\\d+$"
}
]
},
"operations": {
"type": "string",
"pattern": "^(?:[a-fA-F0-9]{2})+$",
"minLength": 64,
"maxLength": 64
},
"keys": {
"type": "array",
"items": {
"type": "object",
"properties": {
"address": {
"$ref": "#/properties/signedTransaction/properties/raw_data/properties/contract/items/properties/parameter/properties/value/properties/owner_address"
},
"weight": {
"$ref": "#/properties/signedTransaction/properties/raw_data/properties/contract/items/properties/parameter/properties/value/properties/owner/properties/threshold"
}
},
"required": [
"address",
"weight"
],
"additionalProperties": true
},
"minItems": 1
}
},
"required": [
"permission_name",
"threshold",
"keys"
],
"additionalProperties": true
},
"witness": {
"$ref": "#/properties/signedTransaction/properties/raw_data/properties/contract/items/properties/parameter/properties/value/properties/owner"
},
"actives": {
"type": "array",
"items": {
"$ref": "#/properties/signedTransaction/properties/raw_data/properties/contract/items/properties/parameter/properties/value/properties/owner"
}
}
},
"required": [
"owner_address"
],
"additionalProperties": true
}
},
"required": [
"type_url",
"value"
],
"additionalProperties": true
}
},
"required": [
"type",
"parameter"
],
"additionalProperties": true
},
"minItems": 1,
"maxItems": 1
},
"ref_block_bytes": {
"type": "string",
"pattern": "^(?:[a-fA-F0-9]{2})+$",
"minLength": 4,
"maxLength": 4
},
"ref_block_hash": {
"type": "string",
"pattern": "^(?:[a-fA-F0-9]{2})+$",
"minLength": 16,
"maxLength": 16
},
"expiration": {
"type": "integer",
"exclusiveMinimum": 0
},
"timestamp": {
"type": "integer",
"minimum": 0
},
"data": {
"type": "string",
"pattern": "^(?:[a-fA-F0-9]{2})+$"
},
"fee_limit": {
"type": "integer",
"minimum": 0
}
},
"required": [
"contract",
"ref_block_bytes",
"ref_block_hash",
"expiration",
"timestamp"
],
"additionalProperties": true
}
},
"required": [
"visible",
"txID",
"raw_data_hex",
"signature",
"raw_data"
],
"additionalProperties": true,
"description": "The complete signed permission transaction from tronWeb.trx.sign(), including visible, raw_data_hex, and signature"
},
"poolAddress": {
"type": "string",
"maxLength": 34,
"description": "The pool address that the permission was granted on"
}
},
"required": [
"signedTransaction",
"poolAddress"
],
"additionalProperties": false,
"$schema": "http://json-schema.org/draft-07/schema#"
}Community
Evidence