Skip to main content
Glama

Tollbooth Swap API

Server Details

Token swaps and honeypot/rug checks for AI agents on 8 chains, paid per-call in USDC via x402.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
soundsparkaudiolab/tollboothswap-mcp
GitHub Stars
1
Server Listing
tollboothswap-mcp

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.3/5 across 6 of 6 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct function: quoting, swap building, token safety, receipts, service info, and token resolution. There is no overlap between tools, and the split between free and paid actions is clear.

Naming Consistency5/5

All tool names follow a consistent verb_noun snake_case pattern (build_swap, check_token, get_quote, get_receipt, get_service_info, resolve_token). The naming is predictable and uniform.

Tool Count5/5

Six tools is a well-scoped count for a swap API, covering the essential user workflow without excessive granularity or missing core functions.

Completeness4/5

The tool surface covers the main swap journey: resolve token, check safety, get quote, build swap, and fetch receipts, plus service metadata. A minor gap is the lack of swap status or cancellation endpoints, but these are not core to this service's purpose.

Available Tools

6 tools
build_swapBuild swap transactionAInspect

Build an unsigned swap transaction for the taker wallet to sign and submit. Costs an x402 toll in USDC (paid automatically when the x-tollbooth-payer-key header is set). Returns the transaction, quote, and a signed receipt.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainYesChain to operate on
takerYesWallet address that will sign and send the swap
amountYesSell amount as an integer string in the input token's base units
safeModeNoScreen both tokens first; refuses the build if either is critical-risk (honeypot etc.)
inputTokenYesToken being sold: mint address (solana) or ERC-20 address (EVM chains)
outputTokenYesToken being bought: mint address (solana) or ERC-20 address (EVM chains)
slippageBpsNoMax slippage in bps (default 100)

Output Schema

ParametersJSON Schema
NameRequiredDescription
nextNoSuggested follow-up calls
chainNo
errorNoPresent when the request failed or payment is required
quoteNoQuote the transaction was built from
safetyNoSafety reports when safeMode was requested
acceptsNox402 payment options when unpaid
receiptNoSigned receipt for this build
transactionNoUnsigned transaction for the taker to sign
Behavior4/5

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

Annotations already convey that this is a non-read-only, non-destructive, non-idempotent operation. The description adds meaningful behavioral context by disclosing the x402 toll in USDC, automatic payment via header, and that the transaction is unsigned, which impacts how an agent should handle post-conditions. This goes beyond the structured annotations.

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?

The description is a succinct two-sentence structure: first sentence states the primary action, second adds cost and return details. It is front-loaded, with no filler or redundant repetition of schema 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?

The tool is moderately complex (7 parameters, output schema present), and the description covers the key behavioral requirements: building an unsigned transaction, the toll cost, and the return contents. With the rich schema and output schema, the description is sufficient for correct tool invocation, though it doesn't mention potential failure scenarios or prerequisites.

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 input schema already documents all parameters (chain, taker, amount, safeMode, inputToken, outputToken, slippageBps). The description does not add per-parameter semantics beyond the schema, so it meets the baseline but provides no extra value.

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?

The description clearly states the tool's function: 'Build an unsigned swap transaction for the taker wallet to sign and submit.' This is a specific verb+resource and distinguishes build_swap from sibling tools like get_quote and get_receipt, which have different purposes.

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 description implies usage for constructing a swap transaction but does not explicitly reference alternatives or when-not-to-use. For example, it doesn't say 'use this after getting a quote' or 'if you only need a price, use get_quote.' Thus, guidance is implicit rather than explicit.

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

check_tokenCheck token safetyA
Idempotent
Inspect

Token safety screen before trading: honeypot, rug-pull, freeze/mint authority, transfer hooks, sell tax, blacklists. Returns verdict (ok/warn/critical/unknown), risk score, and findings. Costs an x402 toll.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainYesChain to operate on
tokenYesToken to screen: mint address (solana) or ERC-20 address (EVM chains)

Output Schema

ParametersJSON Schema
NameRequiredDescription
nextNoSuggested follow-up calls
chainNo
errorNoPresent when the request failed or payment is required
tokenNo
sourceNoData source used for the screen
acceptsNox402 payment options when unpaid
verdictNook, warn, critical, or unknown
findingsNoIndividual risk findings
riskScoreNo0 (safe) to 100 (critical)
Behavior5/5

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

The description discloses the x402 toll cost, which is not present in the annotations, and outlines the return structure (verdict, risk score, findings). This adds meaningful behavioral context beyond the idempotent and readOnly hints. There is no contradiction with annotations.

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 sentences carry all necessary information: purpose, checks performed, return values, and cost. The purpose is front-loaded and every clause earns its place.

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

Completeness5/5

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

With only two parameters, a full output schema, and annotations, the description covers purpose, return values, cost, and the checks performed. No significant gaps remain.

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?

The input schema already provides complete descriptions for both 'chain' and 'token' (100% coverage). The tool description does not add further parameter-level meaning, so it earns the baseline score of 3.

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?

The description clearly states the tool checks token safety before trading, enumerating specific checks (honeypot, rug-pull, freeze/mint authority, etc.). This distinguishes it from siblings like get_quote and build_swap, which focus on pricing and swapping.

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

Usage Guidelines4/5

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

The phrase 'before trading' provides clear context on when to use the tool. Mentioning the x402 toll implies users should invoke it judiciously. However, it does not explicitly name alternatives or exclusion criteria, so it stops short of a 5.

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

get_quoteGet swap quoteA
Read-onlyIdempotent
Inspect

Get a free indicative swap quote (output amount includes Tollbooth's fee). Use before build_swap to decide whether to trade.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainYesChain to operate on
amountYesSell amount as an integer string in the input token's base units
inputTokenYesToken being sold: mint address (solana) or ERC-20 address (EVM chains)
outputTokenYesToken being bought: mint address (solana) or ERC-20 address (EVM chains)
slippageBpsNoMax slippage in bps (default 100)

Output Schema

ParametersJSON Schema
NameRequiredDescription
nextNoHow to build the swap transaction
chainNo
feeBpsNoTollbooth fee in basis points
inputTokenNo
inputAmountNoSell amount in base units
outputTokenNo
slippageBpsNo
outputAmountNoEstimated buy amount in base units, after fees
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint. The description adds valuable context beyond these: the output includes Tollbooth's fee, and the quote is 'indicative' (non-binding). This provides useful behavioral nuance without contradicting annotations.

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 sentences, no wasted words. The description front-loads the core purpose and immediately follows with usage guidance. Every sentence earns its place.

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

Completeness5/5

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

With full parameter schema coverage, clear annotations, and an output schema present, the description completes the picture by adding usage context and fee transparency. It is sufficient for an AI agent to select and invoke this tool correctly.

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?

The schema covers 100% of parameters with detailed descriptions, so the description is not required to explain parameters. It does add context about the output ('output amount includes Tollbooth's fee') but does not extend parameter semantics beyond the schema. Baseline 3 is appropriate.

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?

The description clearly states the tool's function: 'Get a free indicative swap quote' with a specific verb and resource. It also differentiates from sibling build_swap by being an 'indicative' quote and explicitly mentions 'Use before build_swap', distinguishing it from the execution tool.

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

Usage Guidelines5/5

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

The description explicitly says 'Use before build_swap to decide whether to trade', providing clear when-to-use guidance. It implies alternatives (build_swap for actual execution) and clarifies this is an informational step, not a trade.

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

get_receiptGet signed receiptA
Read-onlyIdempotent
Inspect

Fetch a signed Tollbooth receipt by id and verify its signature.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesReceipt id returned by build_swap

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNoReceipt id
errorNoPresent when the receipt was not found
validNoWhether the signature verified
receiptNoReceipt payload
signatureNoServer signature over the receipt
Behavior4/5

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

Annotations already declare readOnly and idempotent hints. The description adds the behavior of signature verification, which is relevant context beyond what annotations provide. No contradictions.

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?

Single sentence with no filler. Clearly front-loaded with the primary action and resource.

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 one-parameter read-only tool with output schema, the description is sufficient. It covers the main purpose and verification aspect, though it doesn't mention failure modes, which the output schema could cover.

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% and the param description already explains that id is a receipt id from build_swap. The tool description adds no additional meaning beyond what the schema provides, 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?

The description clearly states the action (Fetch), resource (signed Tollbooth receipt), and distinguishes it from siblings by focusing on receipts and signature verification. This is specific and unambiguous.

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

Usage Guidelines4/5

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

The context of usage is clear: the id comes from build_swap, implying this is used after creating a swap. While it doesn't explicitly say when not to use it, the workflow hint provides sufficient guidance.

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

get_service_infoGet service infoA
Read-onlyIdempotent
Inspect

Get Tollbooth service metadata: supported chains, swap fee, x402 toll pricing.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
nameNoService name
paymentNox402 payment networks and pricing
endpointsNoHTTP endpoints exposed by the service
descriptionNoWhat the service does
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and openWorldHint, covering safety and idempotency. The description adds value by disclosing exactly what metadata is returned (supported chains, swap fee, x402 toll pricing), which is beyond the structured annotations. No contradiction exists.

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?

The description is a single, well-structured sentence that front-loads the action and resource, then lists key content. Every element adds information, with no fluff or redundancy.

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

Completeness5/5

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

For a zero-parameter metadata retrieval tool with an output schema and strong annotations, the description fully covers the necessary context. It specifies the tool's scope and content without needing to describe return formats, which the output schema handles.

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 has zero parameters, so the baseline is 4 per the rubric. The description is not required to explain parameter semantics since there are none, and the schema trivially covers 100%.

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?

The description clearly states the verb 'Get' and the resource 'Tollbooth service metadata', then lists specific content: supported chains, swap fee, x402 toll pricing. This is specific enough to distinguish from sibling tools like get_quote or get_receipt, which focus on trade operations.

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 description implies when to use the tool—whenever service-level metadata is needed—but it does not explicitly mention alternatives or exclusions. Given the zero-parameter, self-contained nature of the tool, the implied usage is acceptable, but explicit guidance is absent.

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

resolve_tokenResolve token symbolA
Read-onlyIdempotent
Inspect

Resolve a token ticker symbol (e.g. PEPE, WIF, USDC) to contract addresses on a chain, free. Curated majors return one verified match; others return live DEX matches ranked by liquidity.

ParametersJSON Schema
NameRequiredDescriptionDefault
chainYesChain to operate on
symbolYesTicker symbol to resolve, e.g. USDC, PEPE, WIF

Output Schema

ParametersJSON Schema
NameRequiredDescription
nextNoSuggested follow-up calls
chainNoChain searched
symbolNoSymbol searched
matchesNoMatching tokens, best first
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, covering safety. The description adds valuable behavioral detail: it is free, curated majors yield one verified match, and others return live DEX matches ranked by liquidity. This goes beyond annotations to explain result variability, aiding expectation-setting.

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?

The description is two sentences long, with the primary purpose stated in the first sentence. Every clause earns its place, providing examples and behavioral expectations without fluff. It is efficiently structured and easy to parse.

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

Completeness5/5

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

The tool has an output schema, so return values are documented elsewhere. The description covers the core functionality, the free aspect, and the two resolution modes (curated vs. live DEX). Given the simple parameter set and annotations, this is a complete description.

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?

Both parameters have descriptions in the schema, so schema coverage is 100%. The description provides example symbols (PEPE, WIF, USDC) and reiterates the chain context, but adds little beyond the schema. It meets the baseline for well-documented parameters without compensating for any gaps.

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?

The description uses the specific verb 'resolve' and clearly states the resource (token ticker symbol) and outcome (contract addresses on a chain). It distinguishes itself from sibling tools like check_token or get_quote by focusing on symbol-to-address resolution. The mention of curated vs. live DEX matches further clarifies its unique scope.

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

Usage Guidelines4/5

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

The description implies the tool is for converting a ticker symbol to contract addresses, which is a distinct use case among siblings. However, it does not explicitly mention when to avoid using it or reference alternative tools. The context is clear enough for an agent to select it for symbol resolution tasks.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.