Skip to main content
Glama

Rialto Swap MCP (read-only)

Read-only MCP service for Rialto — the onchain best-execution swap router on Robinhood Chain (chain id 4663) for crypto and tokenized equities, ETFs, and commodities. It deliberately contains no submit, execute, signing, or wallet tool — quoting and pricing only.

Hoodly's own agents get real swap execution through a native, server-wallet tool pair inside the Hoodly API (rialto_read / rialto_action in api-hoodly), not through this MCP. This project exists for any other MCP client — Claude Desktop, an inspector, a third-party agent — that wants Rialto pricing without building the API integration itself.

Tools

  • rialto_list_tokens — every token quotable on Rialto for Robinhood Chain (symbol, address, decimals, type). Public, no key needed.

  • rialto_get_quote — best-execution quote: expected output, guaranteed minimum, every fee line, route stats, blockers. Requires RIALTO_API_KEY.

  • rialto_preflight — validates a quote against baseline safety checks (balance/allowance issues, settlement sanity, staleness, slippage ceiling, fee cap, zero-output guard) before any signing step.

  • rialto_build_unsigned_tx — returns the unsigned payload (tx + EIP-712 typed data + signature offset) for a user-signed wallet to complete elsewhere. This server never signs.

Related MCP server: hl-read

Why no execute tool

Rialto's /quote and /gasless/submit responses carry real transactions — rialto_build_unsigned_tx hands back exactly what a wallet needs to sign, and stops there deliberately. Adding a submit/execute tool here would mean either holding a private key in a generically-installable MCP process (a step backwards from any reasonable custody boundary) or forwarding to some external signer this project has no relationship with. Neither is appropriate for a standalone, general-purpose MCP server. If your integration needs to sign, sign in your own client with your own key material, using rialto_build_unsigned_tx's output.

Environment

RIALTO_API_KEY=rialto_live_<prefix>.<secret>   # never logged, never committed
MCP_TRANSPORT=http                              # or stdio
PORT=3008                                       # http mode only
HOST=0.0.0.0                                    # http mode only

Run it

npm install
npm run dev          # stdio: set MCP_TRANSPORT=stdio in .env first
{
  "mcpServers": {
    "rialto": { "command": "node", "args": ["src/index.js"], "env": { "MCP_TRANSPORT": "stdio", "RIALTO_API_KEY": "..." } }
  }
}

Run it with PM2

ecosystem.config.cjs runs the HTTP transport on port 3081. RIALTO_API_KEY still comes from .env (dotenv doesn't override vars PM2 already sets, so PORT/HOST/MCP_TRANSPORT in the config win, and the secret key stays out of the config file).

pm2 start ecosystem.config.cjs   # start
pm2 restart mcp-rialto           # after a code change
pm2 logs mcp-rialto              # tail logs
pm2 stop mcp-rialto              # stop
pm2 delete mcp-rialto            # remove from the pm2 process list
pm2 save                         # persist the process list across reboots

The matching local workflow is SKILL.md.

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hoodly-agent/mcp-rialto'

If you have feedback or need assistance with the MCP directory API, please join our Discord server