Skip to main content
Glama

BlazePhoenix MCP server

solvency

On-chain DEX aggregator tools for AI agents. The defining property: every quote is computed by the on-chain Quoter contract (previewPlan, a free eth_call), the same logic that executes the swap, and it runs on your own RPC. There is no pricing server to trust, and every number an agent relays is reproducible by anyone.

  • Local server: @blazephoenix/mcp over stdio. Quotes, unsigned calldata, simulation and solvency, all read through the node you configure.

  • Remote endpoint: https://blazephoenix.xyz/mcp (streamable HTTP, stateless). Deployment registry, ABIs and the pure quote codec. It performs no RPC call.

  • Auth: none · API key: none

  • Chains: Base (8453), Ethereum (1), Optimism (10), Arbitrum (42161), Robinhood Chain (4663)

Local server

claude mcp add blazephoenix -e BLAZEPHOENIX_RPC_BASE=<your Base node URL> -- npx -y @blazephoenix/mcp

Any MCP client (JSON config):

{
  "mcpServers": {
    "blazephoenix": {
      "command": "npx",
      "args": ["-y", "@blazephoenix/mcp"],
      "env": { "BLAZEPHOENIX_RPC_BASE": "<your Base node URL>" }
    }
  }
}

The RPC comes from the environment only, never from a tool argument:

Variable

Meaning

BLAZEPHOENIX_RPC_URL

One node, used for every chain it serves

BLAZEPHOENIX_RPC_BASE, _ETH, _OPTIMISM, _ARBITRUM, _ROBINHOOD

A node per chain. Use either this or BLAZEPHOENIX_RPC_URL, not both

A value may hold several URLs separated by commas; they are your fallback order. The server never prints your URLs, since they may carry a key.

Tools

Tool

What it does

get_quote

Swap quote through your RPC: net output after the fee, the minimum the Router enforces, price impact and the Phoenix Check verdict (ok / caution / danger / blocked, fails closed). exact: true dry-runs every concentrated leg.

build_swap

Quote and return verified unsigned Router calldata, with the minimum output and deadline baked in.

simulate_swap

Build the swap and dry-run it from a given account with an eth_call.

check_solvency

Live staking solvency: isSolvent() and the decoded solvency() struct.

get_token_info

Symbol, decimals and name of a token, read from the chain.

get_deployments

The versioned deployment registry: Core, Hub, Solver, Quoter and Router per chain and version.

verify_deployment

Check that the registry addresses for a chain and version match what is deployed on-chain.

Every tool is read-only. The server never signs and never holds a key. build_swap returns calldata for you to review and sign in your own wallet, and the SDK's wallet-taking execute() is deliberately not exposed.

Related MCP server: evmscope

Remote endpoint

claude mcp add --transport http blazephoenix https://blazephoenix.xyz/mcp
{ "mcpServers": { "blazephoenix": { "type": "http", "url": "https://blazephoenix.xyz/mcp" } } }

Tool

What it does

prepare_quote

The exact eth_call to run on your node for a quote, plus a request object

decode_quote

Turns your node's answer into the quote, the Phoenix Check verdict and verified calldata (pure)

get_deployments

The versioned deployment registry

get_abi

Generated ABI of a protocol contract

The source of the endpoint is in Blaze-Phoenix-API.

Install as a plugin or extension

Claude Code plugin (hosted MCP endpoint plus the BlazePhoenix agent skill):

claude plugin marketplace add blazephoenixxyz-crypto/blazephoenix-mcp
claude plugin install blazephoenix@blazephoenix

Gemini CLI extension (hosted MCP endpoint plus a context file):

gemini extensions install https://github.com/blazephoenixxyz-crypto/blazephoenix-mcp

Both connect https://blazephoenix.xyz/mcp, which needs no key and performs no RPC. For the full toolset on your own node, use the local server.

Verify instead of trusting

Nothing here requires trusting BlazePhoenix:

# the solvency claim, straight from the chain, bypassing the site entirely
cast call 0x3f60C7aa0c36a78D200405feBE143d2Cf3fA0c77 "isSolvent()(bool)" --rpc-url https://mainnet.base.org

# re-execute any published fact live, with its block height
curl -s "https://blazephoenix.xyz/api/verify?fact=solvency-live"

# reproduce every live claim in ~60 seconds
curl -sO https://blazephoenix.xyz/repro/verify-everything.sh && bash verify-everything.sh

Build and test

npm install
npm run build
npm test

The test spawns the built server over stdio with no RPC configured and checks the tool surface, that failures come back as tool results, and that no tool takes an RPC, key or signer argument or signs anything.

More machine surfaces

Security

To report a vulnerability, see SECURITY.md.

License

The code is MIT (see LICENSE). This documentation is CC BY 4.0. The protocol contracts are BUSL-1.1 (free to read, audit and verify; production use before the 2030 change date requires a license). The mechanisms and terminology (Iron Law Φ, Monoslot, Master Conservation Identity) are original BlazePhoenix work: attribute with a link.

Contact: contact@blazephoenix.xyz · Security: https://blazephoenix.xyz/.well-known/security.txt

Available Tools

7 tools
build_swapBuild unsigned swap calldataA
Read-onlyIdempotent
Inspect

Quote a swap and return verified UNSIGNED calldata for the Router, with the minimum output and deadline baked in. Nothing is signed or sent: review it, then sign in your own wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault
fromNothe account that will send the swap; enables the allowance check
chainNobase | eth | optimism | arbitrum | robinhood, or a numeric chain id. Optional when your RPC has a single chain.
amountNoinput amount in human units, for example "1.5"
tokenInYesinput token: a 0x address, or a symbol such as ETH, WETH, USDC, BZPX
versionNoprotocol version: latest (default) | 1 | 2 | 2.0.0
amountInNoinput amount in base units, as an integer string
tokenOutYesoutput token: a 0x address, or a symbol such as ETH, WETH, USDC, BZPX
recipientYeswho receives tokenOut
userMinOutNooptional explicit minimum output, in base units of tokenOut
deadlineSecNodeadline horizon in seconds, 10-3600, default 120
slippageBpsNo0-5000, default 50; never below the on-chain floor

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive, and the description is consistent with them, adding that nothing is signed or sent and that min-output and deadline are baked into the returned calldata. It goes beyond the structured fields by clarifying the output is inert and requires a separate signing step.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler; the core action and the safety-relevant constraint (unsigned, not sent) are front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 11 params, no output schema, and annotations covering the safety profile, the description covers the essential nature of the result (unsigned Router calldata). It could say more about what the calldata payload contains or that a quote is performed first, but it is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all 11 parameters including `from`, `chain`, `slippageBps` bounds and `userMinOut`. The description only gestures at 'minimum output and deadline', adding no syntax or format detail beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific action (quote a swap and produce unsigned calldata) plus the target resource (Router) and the key baked-in values. An agent can distinguish this from get_quote (quote only) and simulate_swap (simulation) without inspecting schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Adds workflow guidance ('review it, then sign in your own wallet'), which implies this is the build step before signing. However it never states when to prefer this over get_quote or simulate_swap, nor any prerequisites (e.g. needing an allowance check via the `from` param).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_solvencyCheck staking solvencyB
Read-onlyIdempotent
Inspect

Live staking solvency read from the chain: isSolvent() and the decoded solvency() struct. Defaults to Base.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNobase | eth | optimism | arbitrum | robinhood, or a numeric chain id. Optional when your RPC has a single chain.

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld). The description adds that the read is live from chain and returns both a boolean and a decoded struct, but omits failure behavior, RPC prerequisites, and whether results are cached.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, no filler, with the core action front-loaded. It is appropriately sized, though the method-name jargon could read as terse for an agent unfamiliar with the contract.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-optional-parameter read tool with full annotations and no output schema, the description is largely sufficient but leaves the shape of the decoded solvency() struct and any error/latency behavior unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the chain parameter's accepted values and optionality are already documented. The description adds only the default value ('Base'), which the schema does not state, a small but genuine increment over the schema baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: a live on-chain solvency read, naming the contract methods (isSolvent() and solvency()) it surfaces. This clearly distinguishes it from the sibling swap/quote/deployment tools, though it never explicitly says so.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, prerequisites, or alternatives are given. The only implicit context is that it checks a staking position's solvency, and 'Defaults to Base' merely states a default rather than a usage condition.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_deploymentsGet the deployment registryB
Read-onlyIdempotent
Inspect

The versioned deployment registry: Core, Hub, Solver, Quoter and Router addresses per chain and protocol version.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds useful content scope (which addresses and dimensions the registry covers) but nothing about freshness, lookup keys, or whether missing chains/protocol versions yield empty results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the colon-fragment is slightly terse but every clause earns its place by naming what the registry contains.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no input parameters and no output schema, the description carries the return-value burden and does list the registry's dimensions (entity type, chain, protocol version), though it omits the response shape and how to key into a specific deployment.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4; there is nothing for the description to compensate for on the parameter axis.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific resource (the versioned deployment registry) and enumerates its contents — Core, Hub, Solver, Quoter and Router addresses — keyed by chain and protocol version. That is far more specific than a tautology, though it never distinguishes itself explicitly from the nearest sibling, verify_deployment.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use or when-not-to-use guidance. An agent must infer that this is a reference lookup to resolve contract addresses before invoking build_swap, get_quote or verify_deployment; the description never says so or names an alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_quoteGet a swap quoteA
Read-onlyIdempotent
Inspect

Quote a swap on-chain through YOUR RPC: net output after the fee, the minimum the Router enforces, price impact and the Phoenix Check verdict (ok / caution / danger / blocked; it fails closed). Set exact=true for an execution-grade dry-run of every leg.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNobase | eth | optimism | arbitrum | robinhood, or a numeric chain id. Optional when your RPC has a single chain.
exactNotrue: previewPlanExact, every concentrated leg dry-run
amountNoinput amount in human units, for example "1.5"
tokenInYesinput token: a 0x address, or a symbol such as ETH, WETH, USDC, BZPX
versionNoprotocol version: latest (default) | 1 | 2 | 2.0.0
amountInNoinput amount in base units, as an integer string
tokenOutYesoutput token: a 0x address, or a symbol such as ETH, WETH, USDC, BZPX
userMinOutNooptional explicit minimum output, in base units of tokenOut

TDQS

A3.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/openWorld/idempotent/non-destructive, so the safety profile is covered. The description adds real behavior beyond that: it fails closed, the verdict has four enumerated states, output is net of fee, and exact=true changes the execution mode to a per-leg dry-run.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two dense sentences, front-loaded with verb and resource, then the return contents, then the exact flag. Every clause carries information; the em-dash list is efficient rather than padded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully enumerates the return fields an agent should expect, and the fails-closed behavior is disclosed. Only the routing relative to sibling quote/simulate tools is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all eight parameters including exact and version defaults. The description reinforces exact=true semantics but adds no syntax or constraints the schema lacks, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (quote) and resource (swap) and enumerates the returned quantities: net output after fee, Router minimum, price impact, Phoenix Check verdict. An agent can distinguish this from build_swap/simulate_swap, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this versus simulate_swap or build_swap, and no prerequisites or exclusions. The only usage hint is the parameter-level 'exact=true for an execution-grade dry-run,' which is guidance about a flag, not about tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_token_infoGet token infoB
Read-onlyIdempotent
Inspect

Symbol, decimals and name of a token, read from the chain through your RPC.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNobase | eth | optimism | arbitrum | robinhood, or a numeric chain id. Optional when your RPC has a single chain.
tokenYesa 0x address, or a symbol such as USDC

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so safety and caching behavior are covered. The description adds that values come live from the chain via the caller's RPC rather than a cache, which is useful context beyond the annotations, but it says nothing about behavior for unknown or ambiguous symbols.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence with the returned fields and the data source front-loaded; every clause earns its place and nothing is redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter read tool with rich annotations and no output schema, the description listing the returned fields effectively covers the output contract and the data source. Only the error/ambiguity behavior and explicit routing against sibling read tools are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (chain, token) are fully documented in the schema, including the enum-ish chain list and address-or-symbol token format. The description contributes no additional parameter meaning, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a concrete resource and enumerates the exact fields returned (symbol, decimals, name) plus the data source ('read from the chain through your RPC'). It is clearly distinct in subject matter from siblings like get_quote or build_swap, though it never explicitly contrasts itself with them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives or what preconditions apply. The only implicit cue is 'through your RPC,' which hints at the environment but not at when an agent should pick this over get_quote or get_deployments.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

simulate_swapSimulate a swapA
Read-onlyIdempotent
Inspect

Build the swap, then dry-run it from the given account with an eth_call on your node. Returns the plan and the simulation. Nothing is signed or sent.

ParametersJSON Schema
NameRequiredDescriptionDefault
fromYesthe account the simulation runs from
chainNobase | eth | optimism | arbitrum | robinhood, or a numeric chain id. Optional when your RPC has a single chain.
amountNoinput amount in human units, for example "1.5"
tokenInYesinput token: a 0x address, or a symbol such as ETH, WETH, USDC, BZPX
versionNoprotocol version: latest (default) | 1 | 2 | 2.0.0
amountInNoinput amount in base units, as an integer string
tokenOutYesoutput token: a 0x address, or a symbol such as ETH, WETH, USDC, BZPX
recipientYeswho receives tokenOut
userMinOutNooptional explicit minimum output, in base units of tokenOut
deadlineSecNodeadline horizon in seconds, 10-3600, default 120
slippageBpsNo0-5000, default 50; never below the on-chain floor

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so safety is covered structurally; the description adds real value by disclosing the execution mechanism (eth_call on your node, implying an RPC dependency) and the return contents ('the plan and the simulation'). It stops short of describing failure/revert behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, zero filler, with the core action front-loaded and the key non-mutating guarantee placed last for emphasis. Every sentence carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, 11-parameter tool with full schema coverage and no output schema, the description is nearly sufficient: it names the mechanism and says what is returned. It omits what a failed/reverting simulation looks like and any chain/version caveats that a caller might want.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema fully documents all 11 parameters including the amount/amountIn and slippage/deadline semantics. The description only loosely anchors the 'from' parameter ('from the given account') and adds no other parameter meaning, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (simulate/dry-run a swap) plus the exact mechanism (eth_call from the given account), which is more precise than the bare name. It implicitly relates to sibling build_swap by saying it 'builds the swap, then dry-runs it', but never names alternatives to route against explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'dry-run' and 'Nothing is signed or sent' imply the use case (preview before executing), so usage is inferable. However, it never states when to choose this over build_swap or get_quote, nor any preconditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

verify_deploymentVerify a deployment on-chainB
Read-onlyIdempotent
Inspect

Check that the registry addresses for a chain and version match what is deployed on-chain, through your RPC.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainNobase | eth | optimism | arbitrum | robinhood, or a numeric chain id. Optional when your RPC has a single chain.
versionNolatest (default) | 1 | 2 | 2.0.0

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so safety is covered. The description adds that the check runs through the user's RPC against live on-chain state, which is meaningful context, but it doesn't say what happens on mismatch or what the result conveys.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no redundancy; every clause (what is compared, for which inputs, via what channel) earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-optional-parameter read-only verification tool with annotations covering the safety profile, the description is largely sufficient. A brief note on the outcome shape (match/mismatch or error) would close the remaining gap, since no output schema exists.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the chain enum values, numeric-chain-id fallback, optionality, and version formats are all documented in the schema. The description adds no syntax or format detail beyond that, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (verify/check) and a precise resource (registry addresses for a chain and version) and clarifies it compares against on-chain state. An agent can tell it apart from listing tools conceptually, but no sibling is named (e.g., get_deployments), so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description never says when to prefer this over siblings like get_deployments or check_solvency, nor any prerequisites or exclusions. Use is only implied by the check itself, matching the 'no when-to-use guidance' bar.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 7 tool updatesv1.0.0
    • First observedbuild_swap
    • First observedcheck_solvency
    • First observedget_deployments
    • First observedget_quote
    • First observedget_token_info
    • First observedsimulate_swap
    • First observedverify_deployment

TDQS

A3.7/5.0

Scored across 7 tools

Disambiguation3/5

The three swap tools overlap: build_swap builds calldata, simulate_swap builds and dry-runs, and get_quote with exact=true also performs an execution-grade dry-run. Descriptions help distinguish intended use, but an agent could still reasonably confuse which tool to call for a quote versus a simulation.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern: build_swap, get_quote, simulate_swap, check_solvency, get_token_info, get_deployments, verify_deployment. There are no mixed conventions or vague standalone verbs.

Tool Count5/5

Seven tools is well-scoped for a focused DeFi swap and deployment-verification server. Each tool covers a distinct part of the quote/build/simulate/verify lifecycle without excessive surface area.

Completeness4/5

The server covers swap quoting, calldata building, simulation, token metadata, solvency checking, and deployment registry verification. Minor gaps remain around token approvals, balances, or gas estimation, but core workflows can be completed through the exposed tools.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Description: EVM blockchain intelligence toolkit for AI agents. 20 tools for token prices, gas comparison, swap quotes, yield rates, honeypot detection, and transaction simulation across 5 EVM chains. Zero config, no API keys required.
    26
    45 npm
    3
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides access to live swap quotes and routing on the Base network via the o1.exchange DEX aggregator. Read-only and safe by default, it returns routing data and unsigned calldata for you to sign in your own wallet.
    3
    MIT