Onlyswaps

Created By
OnlySwaps4 months ago
Multi-chain DEX meta-aggregator for AI agents. Queries 15+ DEX aggregators (0x, 1inch, Paraswap, etc.) and returns the best swap price across 13 chains.
Overview
⚠️

@onlyswaps/mcp-server
TypeScript icon, indicating that this package has built-in type declarations

0.2.3 • Public • Published

OnlySwaps MCP Server

Multi-chain DEX meta-aggregator for AI agents. Queries 15+ DEX aggregators, returns the best price.

MCP (Model Context Protocol) server that enables AI agents to execute token swaps. We query 0x, 1inch, Paraswap, DODO, Uniswap, Li.Fi, and 10+ more sources, returning only the best available quotes.

Why OnlySwaps?

  • Meta-Aggregator: Queries 15+ DEX aggregators (0x, 1inch, Paraswap, Li.Fi, etc.) and returns the best available price
  • 13 Chains: Ethereum, Base, Arbitrum, Optimism, Polygon, BSC, Avalanche, Solana, and more
  • One Integration: Single API call to access all DEX liquidity across all chains
  • AI-Native: Built for MCP - works with Claude Desktop, Cursor, and any MCP client

Tools

ToolDescription
get_quoteGet swap quotes from multiple DEX aggregators
build_swap_txBuild unsigned swap transaction (ready for client-side signing)
execute_swapExecute swap end-to-end with embedded wallet (Privy)
get_portfolioGet user token holdings across chains
get_tx_statusCheck transaction status
estimate_gasEstimate gas for a transaction
search_tokenSearch tokens by name or symbol

Quick Start

Using npx

npx @onlyswaps/mcp-server

Claude Desktop Configuration

Add to ~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "onlyswaps": {
      "command": "npx",
      "args": ["-y", "@onlyswaps/mcp-server", "stdio"],
      "env": {
        "ONLYSWAPS_API_URL": "https://api.onlyswaps.fyi"
      }
    }
  }
}

Hosted Server (SSE)

Connect to our hosted MCP server:

https://mcp.onlyswaps.fyi/mcp

Supported Chains

ChainIDNative Token
Ethereum1ETH
Optimism10ETH
BSC56BNB
Gnosis100xDAI
Polygon137MATIC
Fantom250FTM
zkSync Era324ETH
Base8453ETH
Arbitrum42161ETH
Avalanche43114AVAX
Linea59144ETH
Scroll534352ETH
SolanasolanaSOL

Tool Examples

get_quote

Get the best swap quote across all aggregators.

{
  "fromToken": "ETH",
  "toToken": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
  "amount": "1000000000000000000",
  "chainId": "base"
}

Returns:

{
  "bestQuote": {
    "provider": "1inch",
    "buyAmount": "3245000000",
    "sellAmount": "1000000000000000000",
    "estimatedGas": "150000",
    "priceImpact": "0.05"
  },
  "allQuotes": [...],
  "meta": { "chain": "Base", "chainId": 8453, "sourcesQueried": 5 }
}

build_swap_tx

Build an unsigned transaction ready for client-side signing.

{
  "fromToken": "ETH",
  "toToken": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
  "amount": "1000000000000000000",
  "chainId": "base",
  "userAddress": "0xYourWalletAddress",
  "slippage": 1
}

Returns transaction data (to, data, value, gas, chainId) ready to sign.

execute_swap

Execute a swap end-to-end using an embedded Privy wallet. Requires Privy configuration.

{
  "fromToken": "ETH",
  "toToken": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
  "amount": "1000000000000000000",
  "chainId": "base",
  "userId": "privy-user-id"
}

get_portfolio

Get user token holdings across all supported chains.

{
  "address": "0xYourWalletAddress",
  "chainIds": ["ethereum", "base", "arbitrum"]
}

get_tx_status

Check the status of a transaction.

{
  "txHash": "0xabc123...",
  "chainId": "base"
}

estimate_gas

Estimate gas for a swap transaction.

{
  "fromToken": "ETH",
  "toToken": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
  "amount": "1000000000000000000",
  "chainId": "base",
  "userAddress": "0xYourWalletAddress"
}

search_token

Search for tokens by name or symbol.

{
  "query": "USDC",
  "chainId": "base"
}

Environment Variables

VariableDefaultDescription
MCP_PORT3001HTTP server port
MCP_TRANSPORThttpTransport mode: http or stdio
ONLYSWAPS_API_URL-OnlySwaps backend API URL
ONLYSWAPS_API_KEY-API key for authenticated access
CORS_ORIGINS*Comma-separated CORS origins
PRIVY_APP_ID-Privy App ID (for execute_swap)
PRIVY_APP_SECRET-Privy App Secret (for execute_swap)
PRIVY_AUTHORIZATION_PRIVATE_KEY-Privy auth key (for execute_swap)

Running Locally

# Install dependencies
pnpm install

# Build pnpm build

# Run HTTP server pnpm start

# Run stdio mode (for Claude Desktop) node dist/index.js stdio

Docker

docker build -t onlyswaps-mcp .
docker run -p 3001:3001 \
  -e ONLYSWAPS_API_URL=https://api.onlyswaps.fyi \
  onlyswaps-mcp

API Endpoints

EndpointDescription
GET /healthHealth check
GET /capabilitiesSupported chains and tools
GET /mcpMCP SSE connection endpoint
POST /mcp/messagesMCP message handler

License

MIT

Server Config

{
  "mcpServers": {
    "onlyswaps": {
      "command": "npx",
      "args": [
        "-y",
        "@onlyswaps/mcp-server",
        "stdio"
      ],
      "env": {
        "ONLYSWAPS_API_URL": "https://api.onlyswaps.fyi"
      }
    }
  }
}
Project Info
Created At
4 months ago
Updated At
4 months ago
Author Name
OnlySwaps
Star
-
Language
-
License
-
Category

Recommend Servers

View All
AI Work Market — USDC settlement rails for AI labor on Base Mainnet)
@Dario (DME)

AI Work Market is a USDC escrow protocol on Base Mainnet, designed for autonomous AI agents to find work, post jobs, and settle payments without humans in the loop. This MCP server exposes 10 tools: **Escrow lifecycle** - `create_intent_quote` — get calldata + gas estimate for funding a new escrow intent - `submit_proof_quote` — get calldata for the seller to submit a proof URI - `release_funds_quote` — get calldata for the buyer to release payment (or claim/refund) **x402 single-call binding** - `x402_consume` — replaces the 5-step x402 flow with one HMAC-signed POST that returns a delivery URL **Onboarding & discovery** - `agent_onboard` — generate a signed agent card with marketplace attestation - `agent_search` — tf-idf search over the live agent catalog - `agent_reputation` — server-side reputation from on-chain Released/Refunded/Disputed events **Live state** - `system_status` — live on-chain state (nextIntentId, accumulatedFees, contract balance, owner) - `escrow_rules` — contract semantics, lifecycle, call guides, failure modes - `events_subscribe` — SSE stream of new on-chain intent events All endpoints are serverless (Vercel) and return their schema on GET. No browser, no wallet UI required for an agent to integrate. The protocol takes a 1% commission on every settlement; the rest goes to the seller. The full AgentCard is at `/.well-known/agent-card.json` (A2A-compatible). The OpenAPI 3.0.3 spec is at `/.well-known/openapi.json` with `components.securitySchemes` (none, hmacX402). `robots.txt` allows GPTBot, ClaudeBot, anthropic-ai, PerplexityBot, Google-Extended, Applebot-Extended, CCBot, Amazonbot.

7 hours ago
Bring your real authenticated browser session to AI coding agents. Local-first MCP server + Chrome MV3 extension. No cloud. No telemetry.
@Cubenest

peek records the user's actual logged-in browser (DOM via rrweb, console events, network metadata, optional response bodies via opt-in Deep capture) through a Chrome MV3 extension. The extension ships events through a native-messaging stdio bridge to a local MCP server (peek-mcp), which persists them to a SQLite database at ~/.peek/sessions.db. AI coding agents (Claude Code, Cursor, Cline, Windsurf) read sessions from the database via 10 MCP tools: Tool What it does list_recent_sessions List recently recorded sessions (id, origin, ts, event count). get_session_summary LLM-readable narrative summary of a session. get_session_console_errors Console errors recorded in a session. get_session_network_errors Failed/notable network requests in a session. get_user_action_before_error Last N user actions before a console error. generate_playwright_repro Generate a runnable Playwright test from a session. get_dom_snapshot Reconstruct the DOM at a given timestamp. query_dom_history Timeline of attribute/text changes for a selector. request_authorization Side-panel consent for write actions (Level 3). execute_action Dispatch a UI action (gated by permission level + destructive blocklist). Why local-first matters Every other "browser session for AI" tool ships to a vendor cloud. peek's SQLite + extension live on the user's machine — no remote endpoints, no telemetry. The privacy policy (docs/peek/PRIVACY_POLICY.md) is the source of truth. Install # 1. Add the MCP server to Claude Code claude mcp add peek -- npx -y @peekdev/mcp # 2. Install the Chrome extension from the Chrome Web Store # (link added once the CWS listing is approved)

a day ago