Chainflip Broker as a Service
Server Details
Native cross-chain swaps: Bitcoin, Ethereum, Solana, Polkadot, Tron, Arbitrum. Quote, swap, track.
- Status
- Healthy
- Uptime
- 100.0% over 79 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- CumpsD/broker-as-a-service
- GitHub Stars
- 10
- Server Listing
- Chainflip Broker as a Service
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 6 tools
Most tools target clearly distinct actions (status check, asset listing, two swap starters). The only overlap is get_quotes vs get_native_quotes, but their descriptions explicitly distinguish native-unit vs standard amounts, so an agent can tell them apart.
All six tools use a consistent snake_case verb_noun pattern (check_status, get_quotes, get_native_quotes, list_assets, start_swap, start_dca_swap). No mixing of conventions or vague verbs.
Six tools is well-scoped for a swap broker: quoting, asset discovery, swap initiation (simple and DCA), and status tracking. Each tool earns its place without redundancy.
The core lifecycle (list assets, get quotes, start swap, check status) is covered, including a DCA variant. Minor gaps exist, such as no cancel-swap or list-all-swaps/history operation, but agents can work around these.
Available Tools
6 toolscheck_statusCheck StatusARead-onlyInspect
Check the status of a swap by its ID. Returns the current swap state including deposit detection, swap progress, and egress information.
| Name | Required | Description | Default |
|---|---|---|---|
| swapId | Yes | The swap ID returned by start_swap or start_dca_swap |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false. The description adds behavioral context by indicating what status information is returned, which goes beyond the annotations. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no wasted words. Purpose is front-loaded, and every sentence adds value. Ideal conciseness for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description adequately explains what the tool returns. For a simple read-only tool with one parameter, the description covers all needed context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter. The description does not add new semantics beyond the schema's description of the swapId parameter. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it checks swap status by ID, listing specific return components (deposit detection, swap progress, egress info). This distinguishes it from sibling tools which are for quotes or starting swaps.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied (after starting a swap) but no explicit guidance on when to use or alternatives is provided. The description does not mention when not to use or compare to other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_native_quotesGet Native QuotesARead-onlyInspect
Get swap quotes for exchanging one crypto asset to another using native (smallest unit) amounts. Returns available quotes with exchange rates, fees, and estimated output amounts. Use this when you have amounts in native units (e.g., satoshis for BTC, wei for ETH). API key is optional.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount to swap in native units (e.g., '100000000' for 1 BTC in satoshis) | |
| apiKey | No | Optional partner API key. | |
| sourceAsset | Yes | Source asset identifier (e.g., 'btc.btc', 'eth.eth', 'usdc.eth') | |
| destinationAsset | Yes | Destination asset identifier (e.g., 'eth.eth', 'btc.btc', 'sol.sol') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false. The description adds context about return fields (exchange rates, fees, estimated output) and API key optionality. No contradictions. Does not mention rate limits or permissions, but annotations cover safety adequately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, no wasted words. Front-loaded with purpose and key distinguishing feature (native units). Each sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only quote tool with complete schema descriptions and safety annotations, the description covers return values and optional API key. Could mention quote multiplicity or that it's non-executing, but overall sufficient for typical usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed parameter descriptions. The description reinforces the native unit concept with examples, adding marginal value 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it gets swap quotes for crypto assets using native units, distinguishing it from sibling tools like get_quotes that likely use decimal amounts. The verb 'get' and resource 'native quotes' are specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use: when amounts are in native units. Also notes API key is optional. Could strengthen by explicitly naming alternative tools (e.g., get_quotes for decimal amounts), but the guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_quotesGet QuotesARead-onlyInspect
Get swap quotes for exchanging one crypto asset to another. Returns available quotes with exchange rates, fees, and estimated output amounts. API key is optional.
| Name | Required | Description | Default |
|---|---|---|---|
| amount | Yes | Amount to swap in human-readable format (e.g., 1.5 for 1.5 BTC) | |
| apiKey | No | Optional partner API key. | |
| sourceAsset | Yes | Source asset identifier (e.g., 'btc.btc', 'eth.eth', 'usdc.eth') | |
| destinationAsset | Yes | Destination asset identifier (e.g., 'eth.eth', 'btc.btc', 'sol.sol') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only and non-destructive behavior. The description adds context about returning quotes with rates, fees, and estimated outputs, which is consistent but does not reveal additional behavioral traits beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core purpose, and concisely adds return value details and parameter note. No redundant or extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately covers return values (rates, fees, output amounts). However, it omits potential error conditions, pagination, or size limits. Annotations provide safety context, making it fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds no new meaning over the schema descriptions. The human-readable format note is already in the schema. No additional semantics beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it gets swap quotes for crypto asset exchange and explains the return value (exchange rates, fees, output amounts). However, it does not distinguish itself from the sibling tool 'get_native_quotes', which likely has a similar purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions 'API key is optional', which provides some usage guidance, but it does not specify when to use this tool versus alternatives like 'get_native_quotes' or any conditions/exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_assetsList AssetsARead-onlyIdempotentInspect
List all available swap assets and their details including ticker, network, direction, decimals, minimum amounts, and current USD prices.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is clear. The description adds value by specifying the exact fields returned (ticker, network, etc.), though it could mention whether the list is exhaustive or if there are pagination considerations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no wasted words. Every phrase adds value, listing the key output fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains the return details. However, it could mention that no input is required and briefly note error handling or that the list is a flat collection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so schema coverage is 100%. With no parameters, the description need not add parameter details, and the baseline is 4. The description correctly focuses on the output.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'List' and resource 'all available swap assets', enumerating specific details (ticker, network, direction, decimals, minimum amounts, USD prices), which distinguishes it from sibling tools like get_quotes or start_swap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving a list of assets but does not explicitly state when to use it versus alternatives like get_quotes or start_swap, nor does it provide when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_dca_swapStart DCA SwapBInspect
Start a DCA (Dollar Cost Averaging) cross-chain swap that splits into multiple sub-swaps over time. Returns the deposit address. API key is optional.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Optional partner API key. | |
| sourceAsset | Yes | Source asset identifier (e.g., 'btc.btc', 'eth.eth', 'usdc.eth') | |
| minimumPrice | No | Optional minimum accepted price as a destination-per-source ratio (e.g., for a btc.btc to eth.eth swap, 28.5 means 1 BTC gets at least 28.5 ETH). When omitted, automatically calculated from current pool prices with 2% slippage tolerance. Set to 0 to accept any price. | |
| refundAddress | Yes | Refund address on the source chain, used if minimum price cannot be met | |
| numberOfChunks | Yes | Number of sub-swaps for DCA (Dollar Cost Averaging). Must be >= 1. | |
| destinationAsset | Yes | Destination asset identifier (e.g., 'eth.eth', 'btc.btc', 'sol.sol') | |
| destinationAddress | Yes | Destination address on the target chain | |
| chunkIntervalBlocks | No | Optional delay between DCA sub-swaps in state-chain blocks (1 block = 6 seconds). Defaults to 2 blocks (12 seconds). | |
| livePriceSlippageTolerancePercent | No | Optional live price protection: how far, in percent (0 to 100, at most 2 decimals, e.g. 0.5), the execution price may fall below Chainflip's oracle price before a sub-swap is retried and the rest refunded. Use a quote's recommendedLivePriceSlippageTolerancePercent. Rejected when either asset has no oracle price on Chainflip. When omitted, Chainflip's default protection for the pair applies. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare write (readOnlyHint=false), open-world, non-idempotent, non-destructive semantics, so the safety profile is covered. The description usefully adds that it 'Returns the deposit address,' signaling a deposit-required flow, but omits the critical follow-up (funding that address and later checking via check_status) and any failure/refund behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the core purpose and the non-obvious return behavior. Minor redundancy: 'API key is optional' restates the schema's nullable default for apiKey, but it is not costly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description correctly compensates by stating it returns a deposit address. However, for a non-idempotent, open-world swap tool it leaves the operational lifecycle unexplained (that funds must be sent to that address, and that check_status tracks progress), which is the main gap for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (9/9 params documented, including nuanced fields like minimumPrice and livePriceSlippageTolerancePercent), so the schema carries full parameter meaning. The description adds nothing beyond what the schema already states, which is the expected baseline when coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Start a DCA cross-chain swap') and adds the defining trait that separates it from the sibling start_swap: it 'splits into multiple sub-swaps over time.' That distinction lets an agent route correctly without opening start_swap's schema, though it never names start_swap explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use guidance and no comparison to the single-swap sibling start_swap. The only contextual hint is 'API key is optional,' which does not tell an agent when DCA is preferable to a one-shot swap or what prerequisites exist.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_swapStart SwapBInspect
Start a cross-chain swap. Returns the deposit address where you should send your source asset. API key is optional.
| Name | Required | Description | Default |
|---|---|---|---|
| apiKey | No | Optional partner API key. | |
| sourceAsset | Yes | Source asset identifier (e.g., 'btc.btc', 'eth.eth', 'usdc.eth') | |
| minimumPrice | No | Optional minimum accepted price as a destination-per-source ratio (e.g., for a btc.btc to eth.eth swap, 28.5 means 1 BTC gets at least 28.5 ETH). When omitted, automatically calculated from current pool prices with 2% slippage tolerance. Set to 0 to accept any price. | |
| refundAddress | Yes | Refund address on the source chain, used if minimum price cannot be met | |
| destinationAsset | Yes | Destination asset identifier (e.g., 'eth.eth', 'btc.btc', 'sol.sol') | |
| destinationAddress | Yes | Destination address on the target chain | |
| livePriceSlippageTolerancePercent | No | Optional live price protection: how far, in percent (0 to 100, at most 2 decimals, e.g. 0.5), the execution price may fall below Chainflip's oracle price before the swap is retried and then refunded. Use a quote's recommendedLivePriceSlippageTolerancePercent. Rejected when either asset has no oracle price on Chainflip. When omitted, Chainflip's default protection for the pair applies. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, openWorldHint=true and destructiveHint=false, so the write/non-idempotent/non-destructive profile is covered. The description usefully discloses the deposit-address return value, but omits meaningful behavior: that the swap does not execute until funds reach that address, and that unmet price conditions route to the refundAddress. What it adds is thin relative to the annotations already carrying the safety profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and the key return value. The closing 'API key is optional' is mild redundancy with the schema and is the only sentence that does not clearly earn its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter, non-idempotent swap-initiation tool with no output schema, the description does cover the critical return value (deposit address) and the essential next step of sending funds. It still leaves the lifecycle incomplete: no mention of monitoring via check_status, no note that each call creates a new swap, and no reference to the refund path already present in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already explains sourceAsset, destinationAsset, destinationAddress, refundAddress, minimumPrice and livePriceSlippageTolerancePercent in detail. The description contributes only 'API key is optional,' which duplicates the schema's own default of null and 'Optional partner API key.' Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Start a cross-chain swap') and adds the concrete outcome ('returns the deposit address where you should send your source asset'), which an agent can act on immediately. It does not explicitly distinguish itself from the sibling start_dca_swap, so an agent must infer that this is the one-off swap versus the recurring variant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The return-value sentence implies the workflow (call this, then send the source asset to the deposit address), which is implied usage. However, there is no guidance on prerequisites or alternatives: nothing says to fetch get_quotes/get_native_quotes first, nor when to prefer this over start_dca_swap or how check_status fits afterward.
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.
2 tool updates
- Changed
start_dca_swap1 field changed- added
Input schema / properties / livePriceSlippageTolerancePercentAdded value: +{ + "default": null, + "description": "Optional live price protection: how far, in percent (0 to 100, at most 2 decimals, e.g. 0.5), the execution price may fall below Chainflip's oracle price before a sub-swap is retried and the rest refunded. Use a quote's recommendedLivePriceSlippageTolerancePercent. Rejected when either asset has no oracle price on Chainflip. When omitted, Chainflip's default protection for the pair applies.", + "type": [ + "number", + "null" + ] +}
- Changed
start_swap1 field changed- added
Input schema / properties / livePriceSlippageTolerancePercentAdded value: +{ + "default": null, + "description": "Optional live price protection: how far, in percent (0 to 100, at most 2 decimals, e.g. 0.5), the execution price may fall below Chainflip's oracle price before the swap is retried and then refunded. Use a quote's recommendedLivePriceSlippageTolerancePercent. Rejected when either asset has no oracle price on Chainflip. When omitted, Chainflip's default protection for the pair applies.", + "type": [ + "number", + "null" + ] +}
6 tool updates
- First observed
check_status - First observed
get_native_quotes - First observed
get_quotes - First observed
list_assets - First observed
start_dca_swap - First observed
start_swap
Publisher details
- Operator
- Broker as a Service
- Operator website
- https://chainflip-broker.io
- Vendor relationship
- First-party
- Documentation
- https://chainflip-broker.io/ai
- Trust center
- https://docs.chainflip-broker.io/
- Restrictions
- No restrictions.
Related MCP Connectors
Quote, create and track cross-chain crypto swaps. Non-custodial exchange, no account, no KYC.
Cross-chain swap API for native Bitcoin, Solana and EVM chains. No API key, no custody.
Best-price cross-chain swap quotes across 70 chains (EVM + Solana). Holds no keys, never signs.
Swap crypto across chains, including Monero (XMR): quote, create and track swaps.
Related MCP Servers
- AlicenseAqualityAmaintenanceReal-time non-custodial crypto swap rates, fees, and on-chain routing across 240+ multi-chain pairs.142MIT
- AlicenseAqualityAmaintenanceEnables cross-chain swap execution across 12 venues and 17 chains, including native Bitcoin as source or destination, with tools for quoting, execution, status, and health checks. No signup, API key, or protocol fee required.5MIT
- AlicenseNot gradedqualityCmaintenanceEnables users and agents to obtain MEV-protected multichain swap and cross-chain bridge quotes, check supported chains, and generate prefilled swap URLs, with gasless Permit2 execution and x402 or API-key access.107 npmMIT
- FlicenseNot gradedqualityFmaintenanceEnables cross-chain cryptocurrency swap quotes and operations using the deBridge DLN protocol. Provides read-only access to swap estimates, supported chains, token information, and order status tracking across multiple blockchain networks.1-
Glama MCP Gateway
Add one secure layer between your agents and this server.