Skip to content

BlazePhoenix on-chain DEX aggregator

by blazephoenix.xyz · remote · no sign-in to list tools · v2.0.1 · published by xyz.blazephoenix

On-chain DEX aggregator: quotes and verified swap calldata computed on your own RPC. No API key.

Final · 1Changes · 1

4 tools: 1 do something that can't be undone, 1 change things and 2 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http blazephoenix https://blazephoenix.xyz/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "prepare_quote" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

    Matched text

    annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The input addresses people (input.recipient): what it sends cannot be taken back.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

4 tools

Can't be undone 1Claude Code: ask
  • prepare_quotePrepare an on-chain BlazePhoenix quote to run on YOUR OWN RPC.1 finding

    Why it is in this group

    • The input addresses people (input.recipient): what it sends cannot be taken back.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "prepare_quote" read-only (readOnlyHint: true), and its own name, description or input give the class "irreversible".

      Matched text

      annotations: {"readOnlyHint":true,"idempotentHint":true,"openWorldHint":false}; The input addresses people (input.recipient): what it sends cannot be taken back.

      What this check looks for
    Description, as the server wrote it
    Prepare an on-chain BlazePhoenix quote to run on YOUR OWN RPC. Returns the exact eth_call (Quoter address + calldata, as a ready JSON-RPC request and a curl line) plus a `request` object. Run the call on your node, then pass `request` and the result hex to decode_quote. This server performs no RPC.

    Annotations the server declares

    • title: Prepare an on-chain quote
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
Changes things 1Claude Code: ask
  • decode_quoteDecode the eth_call result YOUR node returned for a prepare_quote call: net output after the 0.28% fee, the minimum the Router enforces on-chain, price impact, the Phoenix Check ve…No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Decode the eth_call result YOUR node returned for a prepare_quote call: net output after the 0.28% fee, the minimum the Router enforces on-chain, price impact, the Phoenix Check verdict (ok / caution / danger / blocked — fails closed) and, with a recipient, verified unsigned calldata. Pure computation.

    Annotations the server declares

    • title: Decode a quote result
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
Only reads 2Claude Code: allow
  • get_abiThe JSON ABI of one BlazePhoenix contract, generated from the Solidity sources, with the source revision it was built from.No findings

    Why it is in this group

    • The name "get_abi" says "get": a word for reading.
    Description, as the server wrote it
    The JSON ABI of one BlazePhoenix contract, generated from the Solidity sources, with the source revision it was built from. Use it to encode your own calls to the addresses get_deployments returns, or pass `errors` to decode a revert reason from a failed swap or quote. Returns { contract, revision, abi }; an unknown name returns ok:false with the accepted list. Pure lookup, no RPC.

    Annotations the server declares

    • title: Contract ABI
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false
  • get_deploymentsThe versioned BlazePhoenix deployment registry: Core, Hub, Solver, Quoter and Router addresses per chain and protocol version (1.0.0 live; 2.0.0 the final generation), and which ve…No findings

    Why it is in this group

    • The name "get_deployments" says "get": a word for reading.
    Description, as the server wrote it
    The versioned BlazePhoenix deployment registry: Core, Hub, Solver, Quoter and Router addresses per chain and protocol version (1.0.0 live; 2.0.0 the final generation), and which version each chain runs now.

    Annotations the server declares

    • title: Deployment registry
    • readOnlyHint: true
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 2.0.1. Values in angle brackets are yours to fill in.

claude mcp add --transport http blazephoenix https://blazephoenix.xyz/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__blazephoenix__get_deployments",
      "mcp__blazephoenix__get_abi"
    ],
    "ask": [
      "mcp__blazephoenix__prepare_quote",
      "mcp__blazephoenix__decode_quote"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as blazephoenix. Review it before you use it.