Minimal MCP server for Solobank agents on Solana — address, balance, send, and MPP pay tools
Solobank MCP has 14 tools with basic schemas and descriptions, but significant gaps limit production readiness. All tools have descriptions (10-200 chars, mostly adequate), and input schemas are present with type definitions. However, parameter descriptions are sparse or missing context. Many tools lack output schema documentation. Error handling is minimal, no recovery guidance, no categorization of retryable vs. fatal errors. The server exposes financial operations (swap, lend, borrow, send) without documented safeguards, confirmation patterns, or dry-run validation. Tool naming is verb-noun compliant but descriptions do not explain WHEN to use each tool or dependencies between them (e.g., solobank_swap vs solobank_swap_quote). No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Parameter constraints are underdocumented (e.g., slippageBps has no range; protocol enum values not validated).
Return the wallet address.
Return token balances (SOL, USDC, etc).
Borrow assets against collateral from a lending protocol.
Get or set safeguard configuration (spending limits, lock status).
Supply assets to a lending protocol (Kamino or Marginfi) to earn yield.
Query current lending/borrowing rates from Kamino and Marginfi. Read-only.
Pay an MPP-protected API endpoint and return the response. Gateway: https://mpp.solobank.ink — example: https://mpp.solobank.ink/openai/v1/chat/completions
No output schema documentation. Tools like solobank_swap, solobank_lend, solobank_pay return responses but LLMs cannot infer structure. Downstream tool chaining is impossible without documented return fields.
Destructive operations (send, swap, lend, borrow, repay) lack dry-run or confirmation patterns. No dryRun parameter on solobank_swap, solobank_lend, solobank_borrow, solobank_repay, solobank_send (except send has dryRun). Agents can execute irreversible financial transactions without safeguards.
Parameter descriptions lack constraints and ranges. solobank_swap_quote.slippageBps has no min/max; protocol enums (kamino, marginfi, auto) are not validated in schema; amount parameters have no range. LLMs will pass invalid values.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 51 | 2026-07-28+ | v2 |
Move supplied assets between lending protocols to optimize yield.
Repay borrowed assets to a lending protocol.
Send SOL or SPL tokens. Use dryRun to preview.
List all available MPP-protected API services on the Solobank gateway (https://mpp.solobank.ink). Returns service names, endpoints, and pricing.
Execute a token swap via Jupiter aggregator.
Get a swap quote from Jupiter without executing. Read-only.
Withdraw supplied assets from a lending protocol.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Risk levels are declared in metadata but not in tool schema. LLMs cannot distinguish safe reads from destructive writes without explicit hints.
Error handling is absent. No recovery guidance, no error categorization (retryable vs. fatal), no actionable error messages. solobank_pay accepts arbitrary URLs and maxPrice but provides no validation error details if the call fails.