Crypto wallet: balances, P&L, history. Swaps, transfers and withdrawals need Telegram approval.
One address for any MCP client. You sign in at swapwallet.app once, after adding it.
At most: moves money, runs code or commands, deletes data, or sends messages for you.
Odel charges nothing per call. The publisher may charge for its own service.
| Access to | Read | Change |
|---|---|---|
| Wallet | ||
| Portfolio | ||
| Transactions | ||
| Contacts | ||
| Withdraw | Not stated: withdraw:request | |
| Transfer | Not stated: transfer:request | |
| Swap | Not stated: swap:request | |
From the sign-in at swapwallet.app, as the endpoint publishes it. You approve it there.
Odel could not list its tools without signing in.
The official remote MCP server for SwapWallet.
Let your AI assistant read your crypto balances, P&L and history, and request swaps, transfers and withdrawals that run only after you approve them in Telegram.
https://swapwallet.app/mcp
Hosted by SwapWallet: there is nothing to install or run. Add the URL to any MCP client that supports remote servers, sign in once with OAuth, and pick what the assistant may do.
Read tools answer directly. Tools that would move money never do it themselves:
request_swap, request_transfer, request_crypto_withdraw or request_fiat_withdraw.get_action_request.There is no scope that lets an agent move funds without you: withdraw:execute exists and can never be granted. With two-factor authentication on, crypto withdrawals and transfers can't be requested over MCP at all; make those in the app.
| Tool | What it does | Scope | Annotations |
|---|---|---|---|
get_total_balance | Total portfolio value plus a per-token breakdown | wallet:read | read-only |
get_balance | Balance and value of the given tokens | wallet:read | read-only |
get_user_info | Profile, verification level, limits and settings | wallet:read | read-only |
get_deposit_address | Deposit address for a token on a network (created if needed) | wallet:read | idempotent |
get_profit_and_loss | Realized and unrealized P&L, all assets or chosen tokens | portfolio:read | read-only |
get_transactions | Deposits, withdrawals, transfers and trades, newest first, with filters | transactions:read | read-only |
get_contacts | Saved SwapWallet contacts, 10 per page | contacts:read | read-only |
get_ibans | Verified bank accounts (IBANs) for toman withdrawals | contacts:read | read-only |
get_action_request | Status of a request: PENDING, EXECUTED, REJECTED, EXPIRED or FAILED | any | read-only |
request_swap | Prices a swap between two tokens and asks for approval | swap:request | needs approval |
request_transfer | Transfer to one of your saved SwapWallet contacts | transfer:request | needs approval |
request_crypto_withdraw | Crypto withdrawal to an external address | withdraw:request | needs approval, open world |
request_fiat_withdraw | Toman (IRT) withdrawal to a verified IBAN | withdraw:request | needs approval, open world |
Every tool ships MCP annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint). No tool is destructive: a request_* tool only adds a request that you approve or cancel. The full definitions, with input schemas, are in the server card at /.well-known/mcp/server-card.json.
Settings → Connectors → Add custom connector → URL https://swapwallet.app/mcp.
claude mcp add --transport http swapwallet https://swapwallet.app/mcp
Or install it as a plugin from this repository:
/plugin marketplace add SwapWallet/swapwallet-mcp
/plugin install swapwallet@swapwallet
Use the Add to Cursor button above, or add to ~/.cursor/mcp.json:
{
"mcpServers": {
"swapwallet": { "url": "https://swapwallet.app/mcp" }
}
}
Use the Install in VS Code button above, or run:
code --add-mcp '{"name":"swapwallet","type":"http","url":"https://swapwallet.app/mcp"}'
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"swapwallet": { "serverUrl": "https://swapwallet.app/mcp" }
}
}
gemini mcp add --transport http swapwallet https://swapwallet.app/mcp
Or as an extension, which also loads the agent rules in GEMINI.md:
gemini extensions install https://github.com/SwapWallet/swapwallet-mcp
codex mcp add swapwallet --url https://swapwallet.app/mcp
Add https://swapwallet.app/mcp as a remote Streamable HTTP server. The client discovers OAuth on its own from the 401 response.
OAuth 2.1 with dynamic client registration (RFC 7591) and PKCE (S256); public clients, no secret, no API keys. You sign in on SwapWallet's consent page with your phone number and an SMS code, review the scopes, untick any you don't want, and approve. Revoke access any time from the app.
| Scope | Grants |
|---|---|
wallet:read | balances, account info, deposit addresses |
portfolio:read | profit and loss |
transactions:read | transaction history |
contacts:read | saved contacts and verified IBANs |
swap:request | request swaps (you approve in Telegram) |
transfer:request | request transfers to saved contacts (you approve in Telegram) |
withdraw:request | request crypto and toman withdrawals (you approve in Telegram) |
tools/list returns only the tools your granted scopes allow, and scopes are checked again on every call. Access tokens last 1 hour; refresh tokens last until you revoke the grant.
Requirements: a SwapWallet account (sign up at swapwallet.app with a phone number; trading and withdrawals need identity verification), and a linked Telegram account for the request_* tools.
https://swapwallet.app/mcp: Streamable HTTP, JSON responses only, stateless (no session, no SSE, no batches). Protocol versions 2025-06-18, 2025-03-26 and 2024-11-05./.well-known/oauth-protected-resource, /.well-known/oauth-authorization-server, and the server card.token and network are enums listed in each tool's input schema.get_action_request says EXECUTED. PENDING means "waiting for the user in Telegram". The full rules are in skills/swapwallet/SKILL.md.Full reference: swapwallet.app/docs/mcp · REST API: docs.swapwallet.app
The server runs inside SwapWallet's backend; this repository holds its public description and client configs, so you can install it from tools that work with repositories:
| File | For |
|---|---|
server.json | Official MCP Registry entry (app.swapwallet/mcp) |
.mcp.json | Claude Code and other clients that read a project MCP config |
llms-install.md | Step-by-step setup for agents that install servers themselves (Cline) |
.claude-plugin/ | Claude Code plugin and marketplace |
.codex-plugin/ | Codex plugin (same MCP server and skill) |
skills/swapwallet/ | Claude skill: how an agent should use the tools safely (ships with the plugin) |
gemini-extension.json, GEMINI.md | Gemini CLI extension and its context file |
SECURITY.md | How to report a vulnerability |
Found an issue with the docs or a client config? Open an issue or a pull request.
SwapWallet (سواپولت) is an Iranian crypto exchange with a wallet-style app: buy, sell, swap, hold and send crypto, and deposit and withdraw toman. It is custodial, and is operated by Zanjireh Tabdil Soba. Web app, Android apps and a Telegram mini app.
Please report vulnerabilities in the MCP server or the OAuth flow privately, as described in the security policy (security.txt), not in a public issue.
The contents of this repository are released under the MIT license.