sdp-mcp
v0.1.1
Published
76-tool MCP server for the Solana Developer Platform — stablecoin issuance, payments, trading, wallets, and compliance
Maintainers
Readme
sdp-mcp
76-tool MCP server for the Solana Developer Platform -- stablecoin issuance, payments, trading, wallets, and compliance.
The only MCP bridge to SDP. Built for enterprise Solana development. Covers the full SDP API surface: issue stablecoins and RWAs, move money on/off-chain, trade via DEX aggregation, manage wallets and custody, and screen addresses for compliance -- all from any MCP-compatible AI agent.
SDP is the enterprise gateway to Solana used by Mastercard, Western Union, Worldpay, and other global payment networks.
Tool Count by Family
| Family | Tools | Coverage | |--------|------:|----------| | Issuance | 28 | Stablecoins, tokenized deposits, RWAs, templates, deploy, mint, burn, freeze, pause, seize, allowlist, authorities | | Wallets | 14 | Create, delete, initialize, custody switching, signing configs, balances, public keys, signer verification | | Projects | 10 | CRUD, member management, project-scoped API keys | | Payments | 9 | Fiat on/off-ramp, stablecoin transfer, fee estimation, wallet balances, payment policies | | API Keys | 6 | CRUD, rotation with grace period | | Trading | 6 | DEX swap quotes, swap execution (Jito bundles), automated vaults (DCA/TWAP/limit/rebalance), FX rates | | Health | 2 | Service health, dependency readiness | | Compliance | 1 | Address screening (Chainalysis, Elliptic, TRM Labs) | | Total | 76 | |
Quick Start
npx (zero install)
SDP_API_KEY=your-key npx sdp-mcpClaude Desktop / Claude Code
Add to claude_desktop_config.json (or .mcp.json):
{
"mcpServers": {
"sdp": {
"command": "npx",
"args": ["-y", "sdp-mcp"],
"env": {
"SDP_API_KEY": "your-key-here",
"SDP_NETWORK": "devnet"
}
}
}
}Global install
npm install -g sdp-mcp
SDP_API_KEY=your-key sdp-mcpEnvironment Variables
| Variable | Required | Default | Description |
|----------|----------|---------|-------------|
| SDP_API_KEY | Yes | -- | SDP API key for authentication |
| SDP_API_URL | No | https://api.platform.solana.com | Base URL for the SDP API |
| SDP_NETWORK | No | devnet | Solana network (devnet, testnet, mainnet-beta) |
Full Tool Reference
Health (2)
| Tool | Description |
|------|-------------|
| sdp_health_check | Check SDP service health, API version, and uptime. No auth required. |
| sdp_health_ready | Check readiness of all SDP dependencies (database, RPC, custody). |
API Keys (6)
| Tool | Description |
|------|-------------|
| sdp_api_key_list | List all account-level API keys with permissions and status. |
| sdp_api_key_create | Create a new API key with permission scoping and IP allowlist. |
| sdp_api_key_get | Get details of a specific API key by ID. |
| sdp_api_key_update | Update key name, permissions, or IP allowlist. |
| sdp_api_key_delete | Permanently revoke an API key. |
| sdp_api_key_rotate | Rotate a key with configurable grace period (default 24h). |
Wallets (14)
| Tool | Description |
|------|-------------|
| sdp_wallet_initialize | Initialize wallet signing with a custody provider (Privy, Fireblocks, BitGo, etc.). |
| sdp_wallet_create | Create a new Solana wallet with optional label and project association. |
| sdp_wallet_get | Get wallet details including public key, balances, and custody provider. |
| sdp_wallet_list | List all wallets with IDs, labels, public keys, and balances. |
| sdp_wallet_update | Update a wallet's label. |
| sdp_wallet_delete | Permanently delete a wallet (ensure zero balance first). |
| sdp_wallet_set_default | Set the default wallet for signing operations. |
| sdp_wallet_get_public_key | Get the base58-encoded public key for a wallet. |
| sdp_wallet_get_signing_config | Get the active custody provider and signing policy. |
| sdp_wallet_list_signing_configs | List all initialized custody providers and their configurations. |
| sdp_wallet_aggregate_balances | Sum token holdings across all wallets, optionally by mint. |
| sdp_wallet_list_switch_options | List available custody providers for migration. |
| sdp_wallet_switch_custody | Migrate signing from one custody provider to another. |
| sdp_wallet_signer_check | Verify custody signing works by sending a memo transaction. |
Projects (10)
| Tool | Description |
|------|-------------|
| sdp_project_list | List all projects with names, IDs, and creation dates. |
| sdp_project_create | Create a new project as an organizational container. |
| sdp_project_get | Get project details by ID. |
| sdp_project_update | Update project name or description. |
| sdp_project_delete | Permanently delete a project and disassociate resources. |
| sdp_project_list_members | List project members with roles and join dates. |
| sdp_project_add_member | Add a member by email with role assignment. |
| sdp_project_remove_member | Remove a member and revoke their project access. |
| sdp_project_list_api_keys | List API keys scoped to a specific project. |
| sdp_project_create_api_key | Create a project-scoped API key. |
Issuance (28)
| Tool | Description |
|------|-------------|
| sdp_create_stablecoin | Issue a Token-2022 stablecoin with configurable authorities and supply cap. |
| sdp_create_tokenized_deposit | Issue a tokenized bank deposit (demand, time, savings). |
| sdp_create_rwa | Issue a real-world asset token with transfer restrictions and valuation oracle. |
| sdp_get_token_info | Get token metadata and on-chain state. |
| sdp_list_tokens | List issued tokens, filterable by type. |
| sdp_mint_tokens | Mint new supply to a recipient wallet. |
| sdp_issuance_list_templates | List available token templates (stablecoin, security, custom). |
| sdp_issuance_get_template | Get full template configuration and default parameters. |
| sdp_issuance_update_token | Update token name, symbol, or metadata. |
| sdp_issuance_deploy_token | Deploy a token on-chain (execute mode, SDP signs). |
| sdp_issuance_deploy_token_prepare | Prepare unsigned deployment transaction for external signing. |
| sdp_issuance_mint_tokens_prepare | Prepare unsigned mint transaction for external signing. |
| sdp_issuance_burn_tokens | Burn tokens to reduce supply (execute mode). |
| sdp_issuance_burn_tokens_prepare | Prepare unsigned burn transaction for external signing. |
| sdp_issuance_force_burn | Force-burn from any account using permanent delegate authority. |
| sdp_issuance_force_burn_prepare | Prepare unsigned force-burn transaction. |
| sdp_issuance_seize_tokens | Force-transfer (seize) tokens for regulatory compliance. |
| sdp_issuance_seize_tokens_prepare | Prepare unsigned seizure transaction. |
| sdp_issuance_update_authority | Change token authority (mint, freeze, close, delegate). |
| sdp_issuance_update_authority_prepare | Prepare unsigned authority update transaction. |
| sdp_issuance_pause_token | Globally pause all transfers for a token. |
| sdp_issuance_unpause_token | Resume transfers for a paused token. |
| sdp_issuance_freeze_account | Freeze a specific token account. |
| sdp_issuance_unfreeze_account | Unfreeze a previously frozen account. |
| sdp_issuance_list_frozen_accounts | List all frozen accounts for a token. |
| sdp_issuance_manage_allowlist | List or add entries to a token's transfer allowlist. |
| sdp_issuance_remove_allowlist_entry | Remove an address from the transfer allowlist. |
| sdp_issuance_list_token_transactions | List transactions for a specific token with filtering. |
Payments (9)
| Tool | Description |
|------|-------------|
| sdp_create_onramp | Fiat-to-stablecoin onramp (Stripe, Circle, MoonPay). |
| sdp_create_offramp | Stablecoin-to-fiat offramp (ACH, SEPA, PIX). |
| sdp_transfer_stablecoin | Transfer stablecoins between wallets with auto ATA creation. |
| sdp_get_payment_status | Check payment status by ID. |
| sdp_list_payments | List payment history with filtering and pagination. |
| sdp_estimate_fees | Estimate fees before executing a payment. |
| sdp_payments_get_wallet_balances | Get SOL, USDC, and all SPL token balances for a wallet. |
| sdp_payments_get_wallet_policies | Get payment policies (allowlist, limits) for a wallet. |
| sdp_payments_update_wallet_policies | Update destination allowlist and transfer limits. |
Trading (6)
| Tool | Description |
|------|-------------|
| sdp_get_swap_quote | Get best-price swap quotes via DEX aggregation (Jupiter, Raydium, Orca). |
| sdp_execute_swap | Execute a swap with optional Jito bundle for MEV protection. |
| sdp_create_vault | Create an automated trading vault (DCA, TWAP, limit, rebalance). |
| sdp_get_vault_info | Get vault state, performance metrics, and PnL. |
| sdp_list_vaults | List vaults with strategy, status, and owner filtering. |
| sdp_get_fx_rate | Get exchange rates: crypto-crypto, crypto-fiat, fiat-fiat. |
Compliance (1)
| Tool | Description |
|------|-------------|
| sdp_compliance_screen_address | Screen address against Chainalysis, Elliptic, Range, and TRM Labs. |
Architecture
- @psm/mcp-core-ts -- shared MCP infrastructure (McpAction, output filtering, rate limiting, input validation)
- @modelcontextprotocol/sdk -- MCP protocol transport (stdio)
- zod + zod-to-json-schema -- input validation with auto-generated JSON schemas
- fetch -- HTTP client for SDP API calls (no external HTTP deps)
Security
- API key redacted from error messages and responses
- Output filter strips secrets (API keys, tokens, JWTs) and PII from all responses
- Rate limited to 60 calls/minute
- Input parameter length limits enforced (8KB max per field)
- Control characters stripped from all string inputs
- Tool name injection validation
License
MIT
