Sera MCP Server
OfficialProvides tools to interact with the Ethereum blockchain (mainnet and Sepolia testnet) for querying wallet balances, executing token swaps with automatic approval, managing limit orders, and depositing/withdrawing funds via the Sera stablecoin exchange platform.
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., "@Sera MCP Server Swap 100 USDT for USDC"
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.
Sera MCP Server
A Model Context Protocol (MCP) server for Sera — the stablecoin exchange platform. Enables AI assistants like Claude to query market data, check balances, execute swaps, and manage orders through natural language.
Features
Market Data — Real-time stablecoin prices, metadata, and historical data
Wallet Management — Check balances, token holdings, and exchange deposits
Trading — Get quotes and execute swaps with automatic token approval
Order Management — Place, view, and cancel limit orders
Deposit & Withdraw — Move funds between wallet and exchange
Multi-Network — Supports Ethereum mainnet and Sepolia testnet
Related MCP server: SEI MCP Server V2
Quick Start
cd sera-mcp
npm install
npm run buildThen add the server to your Claude Desktop config. See claude_desktop_config.example.json:
{
"mcpServers": {
"sera": {
"command": "node",
"args": ["/path/to/sera-mcp/dist/index.js"],
"env": {
"EXTERNAL_API_URL": "https://api.dev.sera.cx",
"WALLET_PRIVATE_KEY": "0xYOUR_PRIVATE_KEY",
"RPC_URL": "https://ethereum-sepolia-rpc.publicnode.com"
}
}
}
}Config file location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
Restart Claude Desktop after editing the config.
Mainnet Configuration
{
"env": {
"EXTERNAL_API_URL": "https://api.sera.cx",
"WALLET_PRIVATE_KEY": "0xYOUR_PRIVATE_KEY",
"RPC_URL": "https://eth.llamarpc.com"
}
}Configuration
Variable | Description | Default |
| CLOB/trading API URL |
|
| Private key for signing transactions (optional, enables execute tools) | - |
| Ethereum RPC endpoint |
|
⚠️ Security Warning: Never share or commit your WALLET_PRIVATE_KEY. Use a dedicated wallet for testing with limited funds.
Available Tools
Market Data
Tool | Description |
| Get the complete stablecoin catalogue with live market data |
| Get detailed metadata for a specific coin by ticker |
| Get historical price data for a specific coin |
| Search for stablecoins by name or ticker |
| Get the exchange rate between two tokens |
Wallet & Balance
Tool | Description |
| Get configured wallet address, balance, and chain |
| Get token balances (defaults to configured wallet) |
| Get exchange (vault) balance (defaults to configured wallet) |
Trading
Tool | Description |
| Get available trading pairs for a token |
| Get a price quote for swapping tokens |
| Get a CLOB exchange swap quote |
| Prepare a swap transaction (returns tx data to sign) |
| Execute a swap end-to-end: quote, approve if needed, sign EIP-712 intent, submit. Requires |
Order Management
Tool | Description |
| Place a limit order |
| Get all open orders (defaults to configured wallet) |
| Cancel an open order |
Deposit & Withdraw
Tool | Description |
| Prepare a deposit transaction (returns tx data to sign) |
| Prepare a withdrawal transaction (returns tx data to sign) |
| Execute a deposit end-to-end: builds tx, signs, sends on-chain. Requires |
| Execute a withdrawal end-to-end: builds tx, signs, sends on-chain. Requires |
Example Prompts
Once configured, you can interact with Sera using natural language:
Prompt | What it does |
"Check my wallet balances" | Calls |
"Show me all stablecoins on Sera" | Calls |
"What's the exchange rate between USDT and USDC?" | Calls |
"Swap 100 USDT for USDC" | Calls |
"Deposit 50 USDT to my exchange balance" | Calls |
"Show my open orders and cancel the first one" | Calls |
Key Behaviors
Human-readable amounts: All amount inputs (swap, deposit, withdraw) accept human-readable values like
"100". The server automatically converts to raw units (e.g.,100000000for 6-decimal tokens) using token decimals fetched from the API.Automatic token approval:
execute_swapautomatically checks if the input token has sufficient allowance for the SOR contract. If not (e.g., USDT which doesn't support EIP-2612 permit), it sends an on-chainapprove(spender, maxUint256)transaction, waits for confirmation, refreshes the quote, then proceeds with the swap.EIP-712 signing: Swap intents are signed using EIP-712 typed data (
Intenttype) with the Sera domain. Theuuidfield inroute_paramsis a decimal big integer, not a UUID string.Authenticated endpoints:
get_wallet_balances,get_open_orders, andget_exchange_balancedefault to the configured wallet address. If a differentwallet_addressis provided, they return an info message instead of failing with 403.No-liquidity handling: When the API returns a
no_liquidityerror (HTTP 400), the server returns a structured{ status: "no_liquidity" }response instead of a generic error.Testnet vs Mainnet: Use
EXTERNAL_API_URL=https://api.dev.sera.cxfor testnet (Sepolia) orhttps://api.sera.cxfor mainnet. The RPC URL must match the chain.
Network | API URL | Chain ID | Example RPC |
Mainnet |
| 1 |
|
Sepolia |
| 11155111 |
|
Development
# Run in dev mode with hot reload
EXTERNAL_API_URL=https://api.dev.sera.cx \
WALLET_PRIVATE_KEY=0x... \
npm run devLicense
MIT
Built for Sera 🌐
Available Tools
20 toolscancel_orderB
Cancel an open order by its order ID.
Inputs: order_id (required), owner_address (required).
execute_depositA
Execute a deposit to move funds from wallet to exchange. Requires WALLET_PRIVATE_KEY.
Inputs: amount (required), token_address (required).
execute_swapA
Execute a swap transaction. Gets a quote, handles token approval if needed (sends on-chain approve tx for non-permit tokens like USDT), signs the EIP-712 intent, and submits. Requires WALLET_PRIVATE_KEY.
Inputs: amount (required), to_token (required), from_token (required).
execute_withdrawB
Execute a withdrawal to move funds from exchange back to wallet. Requires WALLET_PRIVATE_KEY.
Inputs: amount (required), token_address (required).
get_clob_swap_quoteA
Get a swap quote from the CLOB exchange. Returns quote with exchange rate. Amount is in human-readable units (e.g., '100' for 100 USDT).
Inputs: to_token (required), from_token (required), from_amount (required), owner_address.
get_coin_historyA
Get historical price data for a specific stablecoin. Returns timestamp and price pairs suitable for sparklines or charts.
Inputs: ticker (required), days.
get_coin_metadataA
Get detailed metadata for a specific stablecoin including description, blockchains, platforms, regulatory info, issuer details, and social links.
Inputs: ticker (required).
get_exchange_balanceA
Get the exchange (vault) balance for the configured wallet. Uses the wallet address from WALLET_PRIVATE_KEY. This is separate from wallet balance - funds deposited into the exchange for trading.
Inputs: wallet_address.
get_exchange_rateA
Get the exchange rate between two tokens. Returns the rate for swapping 1 unit of from_token to to_token.
Inputs: to_token (required), from_token (required), to_decimals, from_decimals.
get_marketA
Get Sera's complete stablecoin catalogue with live market data including price, market cap, volume, and 24h changes. Supports pagination.
Inputs: page, per_page.
get_open_ordersA
Get all open/pending orders for the configured wallet. Uses the wallet address from WALLET_PRIVATE_KEY.
Inputs: wallet_address.
get_swap_quoteB
Get a price quote for swapping between two tokens. Returns expected output amount, rate, and fees.
Inputs: amount_in (required), direction (required), market_id (required).
get_trading_pairsB
Get available trading pairs/markets for a specific token. Returns all pairs where the token can be swapped.
Inputs: token_address (required).
get_wallet_balancesA
Get token balances for the configured wallet. Returns all stablecoin holdings with amounts and metadata. Uses the wallet address from WALLET_PRIVATE_KEY.
Inputs: page, page_size, wallet_address.
get_wallet_infoA
Get information about the configured wallet (address, balance, chain). Requires WALLET_PRIVATE_KEY to be set.
Inputs: no named parameters.
place_limit_orderA
Place a limit order (set your own rate). Creates an order that will be filled when the market reaches your price.
Inputs: price (required), amount (required), to_token (required), from_token (required), +1 more.
prepare_depositB
Prepare a deposit transaction to move funds from wallet to exchange balance.
Inputs: amount (required), owner_address (required), token_address (required).
prepare_swapA
Prepare a swap transaction. Returns transaction data that needs to be signed and sent. May return approval_needed if token allowance is insufficient.
Inputs: to_token (required), amount_in (required), direction (required), from_token (required), +2 more.
prepare_withdrawA
Prepare a withdrawal transaction to move funds from exchange balance back to wallet.
Inputs: amount (required), owner_address (required), token_address (required).
search_coinsA
Search for stablecoins by name or ticker. Returns matching coins from the catalogue.
Inputs: query (required), limit.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 20 tools
Most tools target distinct resources and actions, e.g., get_wallet_balances vs get_exchange_balance clearly separate wallet and vault balances. However, get_swap_quote, get_clob_swap_quote, and get_exchange_rate all return pricing/rate information, which could confuse an agent. Descriptions help differentiate, but the boundary is not immediately obvious.
All tools follow a consistent verb_noun pattern (get, execute, prepare, place, cancel, search). Modifiers are coherent, such as get_market, get_coin_history, and get_exchange_balance, with no mixed conventions like camelCase or arbitrary verbs.
With 20 tools, the set is slightly heavy but each tool serves a clear function in market data, wallet/exchange balances, swaps, deposits/withdrawals, and orders. For a DeFi trading server, this count is reasonable and not overwhelming.
The core lifecycle is covered: exploring stablecoins, checking balances, obtaining quotes, executing swaps/deposits/withdrawals, and managing limit orders. Minor gaps include no order history or transaction status, but these are not critical for basic trading.
Maintenance
Related MCP Connectors
Live crypto + IDX stock market intelligence for AI agents — 19 tools, no API key.
Connect brokerage accounts to AI assistants: holdings, orders, asset lookup, and approved trading.
Financial intelligence for AI: manage balances, transactions, payments, and more
Non-custodial DeFi tools for AI agents on Solana: swaps, perps, lending, staking, equities.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI agents to interact with Saros DeFi through natural language, providing tools for liquidity pool management, portfolio analytics, farming positions, and swap quotes on Solana.5MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with the Sei blockchain ecosystem through natural language, providing DeFi trading, NFT marketplace access, cross-chain bridging, token deployment, and comprehensive on-chain data analytics.13 npmMIT
- AlicenseCqualityBmaintenanceEnables AI assistants to interact with BlindPay's stablecoin payment infrastructure, allowing users to create receivers, process payouts and payins across multiple blockchains, manage virtual accounts and wallets, and configure payment operations through natural language.93960 npm9MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to securely trade on Hyperliquid perpetual exchange, including order placement, position management, market data retrieval, and vault operations via natural language.23 PyPI24MIT