agent-wallet-mcp

agent-wallet-mcp

A non-custodial RWA service for AI agents on Solana that provides yield comparison, tokenized US-equity quotes, and ready-to-sign transactions.

Category
访问服务器

README

agent-wallet-mcp

License: MIT Solana MCP Status

A non-custodial RWA service for AI agents on Solana — yield comparison, tokenized US-equity quotes, and ready-to-sign transactions. Funds stay in your wallet; we never sign.

Connect this MCP server to Claude, Cursor, Claude Code, or any MCP-compatible client. Your AI can then:

  • Compare USDC lending yields across Solana, Ethereum, Base, Arbitrum (read-only data).
  • Quote and build transactions to buy Backed xStocks (16 tickers — NVDAx, TSLAx, SPYx, QQQx, COINx, …) on Solana.
  • Snapshot any wallet's portfolio (SOL, USDC, held xStocks valued live via Jupiter).
  • Track transaction confirmations.

You sign every transaction in your own Phantom (or other Solana wallet). We do not custody funds, hold keys, or co-sign. Architecturally we are a service — closer to Tradingview than to a wallet.

Signals to act on: pair this with StockWaves — pay-per-call quant signals (equities / crypto / cross-asset macro) over the x402 protocol. StockWaves tells an agent what to trade; this server lets it execute non-custodially.

Why this exists

Tokenized US equities (Backed's xStocks, Ondo Global Markets) and on-chain treasury products are the fastest-growing real-world-asset (RWA) category. As of mid-2026 these have real liquidity on Solana — NVDAx, TSLAx, SPYx all carry $300K-$3M each, with ~$5/share trades incurring zero detectable price impact.

Coinbase, Phantom, and Crossmint all offer "agent wallets," but they are generic. None opinionated about RWA discovery, yield aggregation, or the boring-but-correct execution that makes idle USDC actually earn. This server fills that gap, distributed via the AI tool layer.

Install

Add to ~/Library/Application Support/Claude/claude_desktop_config.json (Claude Desktop on macOS) or your editor's MCP config:

{
  "mcpServers": {
    "agent-wallet": {
      "command": "npx",
      "args": ["-y", "@kaditang/agent-wallet-mcp"]
    }
  }
}

The npm package is published as @kaditang/agent-wallet-mcp (and listed in the official MCP Registry) — the config above runs it directly via npx, no clone needed. Requires @kaditang/agent-wallet-mcp ≥ 0.2.1 (stdio entry).

To run from source instead (for development), clone this repo and run:

git clone https://github.com/kaditang/agent-wallet-mcp.git
cd agent-wallet-mcp && npm install
cp .env.example .env   # then fill in SOL_RPC (api keys are minted via Phantom at /account)
npm run mcp:http       # serves on :3030

Then point your MCP client at http://localhost:3030/mcp with an Authorization: Bearer <your-api-key> header.

Solana RPC endpoint (recommended)

Public RPCs (api.mainnet-beta.solana.com) rate-limit aggressively and reject getTokenAccountsByOwner in some cases. For any meaningful traffic you want a paid endpoint as primary; public ones are kept as fallback automatically.

Free tier from Helius is enough for V1:

  1. Sign up → New project → copy the RPC URL (looks like https://mainnet.helius-rpc.com/?api-key=...)
  2. Set in .env:
    SOL_RPC=https://mainnet.helius-rpc.com/?api-key=YOUR_KEY
    
  3. (Optional) add a second provider as SOL_RPC_FALLBACK_1 for redundancy.

The pool tries primary first; on transient failures (429, timeouts, 5xx) it falls through to fallbacks, then to the public mainnet-beta + publicnode endpoints.

Error monitoring (optional)

Set SENTRY_DSN to ship server-side errors to Sentry. Disabled by default; no outbound network when unset. Captures 500s and broadcast failures with sanitized context — request bodies, cookies, headers (which can carry api keys) are stripped before send.

SENTRY_DSN=https://<key>@oXXXXXX.ingest.sentry.io/XXXXXX
SENTRY_RELEASE=<git-sha>            # optional, for release tracking

Tool surface

Tool Purpose Signs anything?
compare_yields Rank USDC lending + tokenized-treasury yields across chains, risk-adjusted (volatility / TVL / protocol / stability / reward-dependence), not headline APY. Solana protocols tagged executable: true. No
list_yield_tokens List supported tokenized treasuries (USDY by Ondo). No
list_xstocks List supported tokenized US equities (Backed xStocks). No
check_xstock_safety Pre-trade safety check for a tokenized US stock (any issuer / mint / EVM address): is it the real token (not a copycat) and OK to buy now — verified vs the issuer's own registry, plus depeg / liquidity / market-hours / trading-halt. Catches impersonator tokens (the #1 risk). Free, read-only. Auto-run before build_buy_xstock_tx. No
quote_tokenized_stock Live Jupiter quote for USDC → xStock + a best-entry-timing signal (premium vs the underlying stock, compared against a same-market-regime baseline — US market open vs closed). No
get_portfolio Snapshot a wallet: SOL, USDC, xStocks + yield tokens valued via Jupiter. No
portfolio_health "Should I do anything?" — holdings vs best risk-adjusted yield + per-xStock timing + actionable notes. No
suggest_rebalance Given a target allocation, compute the buy/sell trades to reach it. Read-only; user executes. No
export_history Export tokenized-equity / yield trade history (date, action, price, CSV) — a record for your accountant, not tax advice. No
track_tx Lookup confirmation status for a Solana signature. No
build_deposit_yield_tx Build unsigned USDC → USDY tx + one-click sign URL. No — user signs in Phantom.
build_withdraw_yield_tx Build unsigned USDY → USDC tx + sign URL. No
build_buy_xstock_tx Build unsigned USDC → xStock tx + sign URL. No
build_sell_xstock_tx Build unsigned xStock → USDC tx + sign URL. No

Architecture

[Claude / Cursor / Claude Code]
        ↓ MCP (stdio or HTTP)
[agent-wallet-mcp server]
   ├─ READ tools (DefiLlama, Jupiter quote, RPC reads)
   ├─ BUILD tools (Jupiter swap → unsigned VersionedTransaction)
   └─ MONITOR tools (RPC signature lookup)
        ↓ returns tx + signUrl
[user's browser]
        ↓ Phantom signs + sends
[Solana mainnet]

Zero custody, zero signing keys held by the server. The service is pure intelligence + transaction construction.

Quick example

User to Claude:

"I have a Solana wallet at 7QCg1LegbEE2eYDJZfgeMX7JhjtFVVZx9su3HzncuSh2. Buy me 5 USDC of NVDA tokenized."

Claude calls build_buy_xstock_tx → receives sign URL → shows it to you. You click, Phantom prompts, you approve. ~0.023 NVDAx lands in your wallet.

Coverage

Asset class V1 V1.5 V2
Backed xStocks (Solana)
USDC lending data (cross-chain)
Solana lending execution (Kamino / MarginFi / JLP)
Ethereum-side RWA execution (BUIDL / OUSG / USDY)
Cross-chain rebalance

Caveats

  • You sign every action. Auto-execution requires V1.5's optional Squads-spending-limit grant (separately, opt-in).
  • Tokenized equities are issued under non-US prospectuses. Issuers (Backed, Ondo) restrict US persons. We do not onboard or KYC anyone — that's between you and the issuer.
  • Markets move. Slippage cap is 0.5% by default; widen it carefully on illiquid pairs.

Security

This service handles a real-money path. We've documented the full security posture, threat model, audit history, and vulnerability-disclosure process in SECURITY.md — including a verifiable account of what "non-custodial" means here (i.e., what an attacker who controls our backend cannot do).

If you find a security issue, please open a private Security Advisory instead of a public issue. See SECURITY.md for the full disclosure process.

License

MIT

Status

Live on Solana mainnet. First USDC → Ondo USDY transaction signed via Phantom + broadcast through this service: 55Agf6...JEusD

Building in public.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选