Skip to main content
Glama

vishwa-ondo-mcp

An MCP server that puts the Vishwa exchange API in reach of any MCP-capable agent (Claude, ChatGPT, Copilot…). It wraps the USDC→USDY flow on Solana — quote, prepare, submit, status — so an agent can price and draft a real subscription by tool call instead of a bespoke integration.

It is a thin wrapper by design:

  • Never signs, never holds funds. prepare_swap returns an unsigned transaction; the signature happens in the user's own wallet.

  • Eligibility is not implied. prepare_swap requires an explicit acknowledgement that the beneficial owner is a non-US, non-restricted person eligible to hold USDY (Reg S). The API enforces this server-side and refuses to build a transaction without it; geo restrictions apply on submit.

  • No credentials in this repo. The API key and agent ID come from the environment.

Tools

Tool

What it does

get_quote

Live USDC→USDY price via Jupiter routing: estimated out, minimum at slippage, price impact, route

prepare_swap

Builds an unsigned Solana transaction (requires eligibilityAck: true)

submit_signed

Broadcasts a wallet-signed transaction, returns the signature

get_status

Reads on-chain status: pending / confirmed / finalized / failed

Related MCP server: Clawswap

Requirements

An instance of the exchange service from vishwanetwork/agent-api (apps/exchange), plus an API key and agent ID issued by its auth service.

Run

npm install
EXCHANGE_BASE_URL=http://localhost:36002 \
VETA_APIKEY=<your key> \
VETA_AGENTID=<your agent id> \
node server.js

Smoke test (lists the tools and fetches a live quote):

node test-client.js

Add to Claude Code

claude mcp add vishwa-ondo \
  -e EXCHANGE_BASE_URL=http://localhost:36002 \
  -e VETA_APIKEY=<your key> \
  -e VETA_AGENTID=<your agent id> \
  -- node /absolute/path/to/server.js

Then just ask: "quote 1000 USDC into USDY".

Environment

Variable

Default

Notes

EXCHANGE_BASE_URL

http://localhost:36002

Where the exchange service is reachable

VETA_APIKEY

—

Required. Sent as the VETA-APIKEY header

VETA_AGENTID

—

Required. Must match the key's agent, or auth fails

Related MCP Connectors

Related MCP Servers