# mcp.freaky.fi

Agent-facing surface for freaky.fi, a DEX aggregator that ranks swap
quotes on most EVM chains. Full supported chain list:
[list.freaky.fi/chains/evm?onlyPopular=false](https://list.freaky.fi/chains/evm?onlyPopular=false).

The human-facing site is [freaky.fi](https://freaky.fi).

## Remote MCP connector

`https://mcp.freaky.fi` is a remote MCP server (Streamable HTTP). Add it
as a custom connector in Claude.ai, ChatGPT, Cursor, or any client that
speaks the MCP spec. It exposes read-only tools for swap discovery,
token / chain / price lookup, balances, and history. This server never
signs or broadcasts. Two ways to complete a swap:

- **Atomic batched-call tool** (Base MCP `send_calls`, any EIP-5792
  `wallet_sendCalls`): build `[approveCall, swapCall]` from each
  quote's `tx` and `approval` and submit as one batch.
- **Otherwise**: every `get_quotes` response carries a top-level
  `widgetUrl`. The user clicks it and completes the swap in the
  freaky.fi widget with any wallet; Permit2 and off-chain-signing
  flows are handled natively in the widget UI.

## Available specs

- [`/base/freaky.md`](/base/freaky.md) - Base MCP custom plugin spec.
  Teaches an assistant with Base MCP installed how to fetch a ranked
  quote from `swap.freaky.fi/rank` and execute the swap via
  `send_calls` on a Base Account smart wallet.

## Notes

- Markdown routes serve `Content-Type: text/markdown; charset=utf-8`.
- The MCP transport coexists on the same host: GET requests with a
  non-SSE `Accept` header (or no header) return this markdown index;
  POST and `Accept: text/event-stream` GET requests are handled by the
  MCP server.
- Spec URLs are stable. Install them once and they will keep working
  across swap-worker refactors.
