mcp-server-usdd
OfficialProvides tools for interacting with the USDD protocol on Ethereum, including vault lifecycle (open, deposit, mint, repay, withdraw, close), PSM swaps, USDD Savings, token transfers, and protocol analytics.
Click on "Install 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., "@mcp-server-usddCheck my USDD vault on Ethereum"
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.
mcp-server-usdd
An MCP server for the USDD protocol across TRON, Ethereum, and BNB Smart Chain (plus internal testnets). Covers Vault/CDP, PSM, USDD Savings, token transfers, and protocol analytics.
Scope
Current implementation covers:
Vault lifecycle: open, deposit collateral, mint USDD, repay, withdraw, close
PSM lifecycle: inspect fees and routes, swap into USDD, swap out of USDD
Savings lifecycle: inspect USDD Savings, deposit, withdraw
Risk and monitoring for vaults: summaries, oracle status, collateral buffers
Token preflight checks: balances, allowances, approvals
Token transfers: two-step preview → confirm flow for TRX, TRC20, and EVM native/ERC20
Protocol analytics: chain metrics, collateral prices, PSM route metrics, treasury, Smart Allocator, proof of reserve
Supported Networks
Network | Key | Notes |
TRON |
| TRON-native vault and PSM support |
Ethereum |
| Vault, PSM, USDD Savings |
BNB Smart Chain |
| Mirrors ETH deployment structure |
TRON Nile |
| Internal testnet deployment |
Ethereum Sepolia |
| Internal testnet deployment |
BSC Testnet |
| Internal testnet deployment |
Prerequisites
Node.js 20+
Optional but recommended:
TRONGRID_API_KEYfor more reliable TRON accessdedicated
ETH_RPC_URLdedicated
BSC_RPC_URL
Developer
Installation
git clone https://github.com/decentralized-usd/mcp-server-usdd
cd mcp-server-usdd
npm installUsage
npm start
npm run start:http
npm run devConfiguration
Wallet Modes
The server supports two signing modes:
Browser mode (recommended): connect a TronLink-compatible browser wallet and sign in browser.
Agent mode: use encrypted local private keys stored in
~/.agent-wallet/.
For TRON writes, each Claude session shows a one-time signing-mode confirmation reminder before the first write.
You can also manage wallets via CLI or MCP tools:
CLI (agent-wallet)
The server uses @bankofai/agent-wallet for encrypted local wallet storage. On first startup it will automatically initialize ~/.agent-wallet/ and create a default wallet if none exists.
# Import an existing private key or mnemonic
npx agent-wallet add
# Generate a new wallet
npx agent-wallet generate
# List all wallets
npx agent-wallet list
# Switch active wallet
npx agent-wallet activate <wallet-id>MCP Tools (runtime)
Tool | Description |
| Shows current address |
| Connect TronLink / browser wallet for signing |
| Switch between browser and agent signing |
| Show current signing mode and addresses |
| List wallets with per-family active status ( |
| Switch active wallet by ID, optionally scoped by |
Client Configuration
Claude Desktop
Add the following config to:
~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"mcp-server-usdd": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@usdd/mcp-server-usdd"],
"env": {
"TRONGRID_API_KEY": "your_trongrid_api_key"
}
}
}
}Claude Code
Create .mcp.json in the project root directory:
{
"mcpServers": {
"mcp-server-usdd": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@usdd/mcp-server-usdd"],
"env": {
"TRONGRID_API_KEY": "your_trongrid_api_key"
}
}
}
}Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"mcp-server-usdd": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@usdd/mcp-server-usdd"],
"env": {
"TRONGRID_API_KEY": "your_trongrid_api_key"
}
}
}
}Tools
Wallet & Network
Tool | Description | Write? |
| List supported networks | No |
| Set default network for one family ( | Yes |
| Get per-family default networks | No |
| Get active wallet signing mode ( | No |
| Switch active signing mode | Yes |
| Connect a browser wallet and activate browser mode | Yes |
| Show current address for the target network | No |
| List wallets and per-family active pointers ( | No |
| Switch active wallet by ID (supports optional | Yes |
| Import private key/mnemonic into encrypted local store | Yes |
Common
Tool | Description | Write? |
| Show configured protocol addresses, ilks, PSMs, and ceilings | No |
| List configured collateral types and PSM joins | No |
| Read native balance ( | No |
| Read ERC20/TRC20 balance | No |
| Read ERC20/TRC20 allowance and compare against an optional amount | No |
| Approve token allowance | Yes |
Vault
Tool | Description | Write? |
| Inspect oracle and liquidation configuration for an ilk | No |
| List vault IDs for a wallet | No |
| Show collateral, debt, and liquidation metrics | No |
| Summarize risk with warnings | No |
| Open a new vault via DSProxy | Yes |
| Open-and-mint or add collateral and mint | Yes |
| Draw more USDD from a vault | Yes |
| Repay vault debt | Yes |
| Withdraw collateral from a vault | Yes |
| Wipe all debt and free collateral | Yes |
PSM
Tool | Description | Write? |
| Inspect PSM fees and enablement | No |
| Get PSM swap metrics by route (fromToken/toToken/available/fee) | No |
| Swap gem into USDD | Yes |
| Swap USDD into gem | Yes |
USDD Savings
Tool | Description | Write? |
| Show USDD Savings metrics | No |
| Deposit USDD into | Yes |
| Withdraw USDD from | Yes |
Token Transfers
Two-step preview → confirm flow for safe asset transfers. The AI must present the transfer details to the user and wait for explicit confirmation before executing.
Tool | Description | Write? |
| Preview a native or token transfer; returns a | No |
| Execute a previously prepared transfer after user has explicitly confirmed | Yes |
Supports:
TRX (TRON native)
TRC20 tokens (USDD, USDT, WBTC, etc.)
ETH / BNB (EVM native)
ERC20 tokens on Ethereum and BSC
Protocol Metrics
Read-only analytics from mainnet data feeds.
Tool | Description | Write? |
| Aggregated USDD protocol metrics (mainnet) | No |
| Chain-level metrics for | No |
| Latest collateral highest-price data from website API | No |
| PSM route metrics: fromToken, toToken, available liquidity, fees | No |
Treasury
Tool | Description | Write? |
| Latest USDD treasury report summary (mainnet) | No |
| JST buyback and burn statistics from treasury data | No |
Smart Allocator
Tool | Description | Write? |
| Smart Allocator overview: debt, invested amount, earnings, APY | No |
| Invested-asset breakdown by | No |
| Proof-of-reserve style platform investment details | No |
| Debt overview grouped by network vault | No |
Prompts
Prompt | Description |
| Open a vault and verify post-trade risk |
| Run full vault lifecycle flows |
| Use PSM with fee checks |
| Use USDD Savings with inspection and verification |
| Explain risk for a vault |
| Repay and close with verification |
Architecture
mcp-server-usdd/
├── src/
│ ├── core/
│ │ ├── chains.ts
│ │ ├── abis.ts
│ │ ├── tools.ts
│ │ ├── prompts.ts
│ │ ├── resources.ts
│ │ ├── browser-signer.ts
│ │ └── services/
│ │ ├── clients.ts
│ │ ├── contracts.ts
│ │ ├── protocol.ts
│ │ ├── vault.ts
│ │ ├── psm.ts
│ │ ├── savings.ts
│ │ ├── tokens.ts
│ │ ├── transfer.ts ← token/native transfer (prepare + confirm)
│ │ ├── treasury.ts ← treasury report and JST buyback stats
│ │ ├── smart-allocator.ts ← Smart Allocator analytics
│ │ ├── website-metrics.ts ← protocol metrics, chain metrics, collateral prices
│ │ ├── wallet.ts
│ │ └── utils.ts
│ ├── index.ts
│ └── server/
│ ├── server.ts
│ └── http-server.ts
└── build/Notes
Vault writes assume the configured wallet can sign on the target chain.
All tools default to the family-specific defaults set by
set_network; ifnetworkis omitted, tron-family default is used unless the tool call explicitly passesnetwork.ERC20/TRC20 flows often require
approve_tokenfirst.Browser mode now supports real transaction signing on TRON networks (
tron,tron_nile) viatronlink-signer(TronLink/TIP-6963 flow). EVM networks currently continue to use agent-wallet signing.deposit_and_mintis idempotent with respect to vault creation: it checks for an existing vault for the given ilk before opening a new one. If no vault exists, it submits two separate transactions —openthenlockGemAndDraw— to avoid combined-tx reliability issues on TRON.Token transfers use a two-step flow:
prepare_token_transferreturns a preview andconfirmationId;confirm_token_transferexecutes only after the user explicitly approves. Pending confirmations expire after 10 minutes.Protocol analytics tools (
get_protocol_metrics,get_chain_metrics,get_collateral_prices, etc.) read from mainnet data feeds only — they do not reflect testnet state.TRON, ETH, BSC, and internal testnet deployments have similar protocol structure but different addresses and token decimals.
This version intentionally excludes migration and auction actions so we can iterate the Vault + PSM + USDD Savings core first.
Security Considerations
Private keys are encrypted and stored locally in
~/.agent-wallet/.Private keys are never returned by MCP tools.
The optional
AGENT_WALLET_PASSWORDis intended for automation and CI environments.Write operations should be treated as state-changing actions and reviewed carefully before execution.
Vault prompts include risk-review steps so borrowing decisions are checked against current collateral health.
Test on a safe environment or with small amounts before using mainnet-sized positions.
Be cautious with large or unlimited token approvals when using
approve_token.Never share local MCP client configuration files if they contain private keys or sensitive RPC credentials.
Example Conversations
Vault
"What vault types are available on Ethereum?" → AI calls
get_supported_ilkswithnetwork=ethand summarizes the supported vault collateral types."Open a TRX-A/USDT-A/WBTC-A vault on Tron and mint 500 USDD" → AI uses
open_usdd_vault: checks wallet, reviews oracle status, executesdeposit_and_mint(auto-opens a new vault if none exists for that ilk), then verifies the new vault risk."Am I close to liquidation on vault 123?" → AI calls
get_vault_summaryandanalyze_vault_risk, then explains the health factor and collateral buffer."Repay part of my vault debt on BSC" → AI uses
manage_vault_lifecyclewithaction=repay: checks USDD balance and allowance, callsrepay_usdd, then verifies the updated vault state."Close my vault and withdraw the collateral" → AI uses
repay_and_close_vault: checks debt, balance, allowance, callsclose_vault, then confirms the vault state after repayment.
PSM
"What are the current PSM fees on Ethereum?" → AI calls
get_psm_statuswithnetwork=ethand reports fee-in, fee-out, and whether swaps are enabled."Show me available PSM liquidity for USDT on TRON" → AI calls
get_psm_metricswith the PSM-USDT market and reports available amounts and fees for both directions."Swap 10,000 USDT into USDD through the PSM" → AI uses
use_psm: checks PSM status, then callspsm_swap_to_usddand reports the transaction result."Swap 5,000 USDD back to USDC on BSC" → AI calls
get_psm_status, then executespsm_swap_from_usddand reminds the user to re-check balances.
Token & Balances
"What is my USDD balance on Tron?" → AI calls
get_protocol_overviewto identify the USDD token address, then callsget_token_balance."Do I have enough allowance for the USDT PSM?" → AI calls
check_allowancewith the token and PSM spender, then suggestsapprove_tokenonly if needed."Send 100 USDD to TXxxx... on Tron" → AI calls
prepare_token_transferand displays the transfer preview (from, to, amount, balance). After the user confirms, AI callsconfirm_token_transferto execute."Transfer 0.5 ETH to 0xabc..." → AI calls
prepare_token_transferfor native ETH, presents the details, then waits for user approval before executing.
USDD Savings
"What is the current USDD Savings status on Ethereum?" → AI calls
get_savings_statusand summarizes total assets, savings rate, and wallet shares."Deposit 2,000 USDD into sUSDD" → AI uses
use_savings: checks savings status, callsdeposit_savings, then re-checks savings metrics."Withdraw 500 USDD from sUSDD on BSC" → AI calls
get_savings_status, executeswithdraw_savings, and confirms the updated share balance.
Protocol Analytics
"What are the overall USDD protocol metrics?" → AI calls
get_protocol_metricsand reports total collateral, debt ceiling, and utilization."Show me TRON chain metrics" → AI calls
get_chain_metricswithchain=tronand summarizes collateral breakdown and USDD supply on TRON."What are the latest collateral prices?" → AI calls
get_collateral_pricesand lists each collateral type with its current highest price.
Treasury & Smart Allocator
"Show me the USDD treasury summary" → AI calls
get_treasury_summaryand reports reserve breakdown, collateral ratio, and recent changes."How much JST has been bought back and burned?" → AI calls
get_jst_buyback_statsand summarizes cumulative JST buyback volume and burn totals."What is the Smart Allocator overview?" → AI calls
get_smart_allocator_overviewand reports total debt allocated, current invested amount, accumulated earnings, and APY."Break down Smart Allocator investments by protocol" → AI calls
get_assets_breakdownwithdimension=protocoland lists each DeFi protocol with its allocated amount."Show me the Smart Allocator proof of reserve" → AI calls
get_proof_of_reserveand details each platform investment with amounts and verification status."What does the Smart Allocator debt look like by network?" → AI calls
get_debt_overviewand summarizes debt positions grouped by TRON/ETH/BSC vaults.
License
MIT License Copyright (c) 2026 USDD
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/decentralized-usd/mcp-server-usdd'
If you have feedback or need assistance with the MCP directory API, please join our Discord server