CoW Protocol MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CoW Protocol MCP ServerGet a quote to sell 1 ETH for USDC on mainnet."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
CoW Protocol MCP Server
An MCP (Model Context Protocol) server for interacting with CoW Protocol's order book API.
Features
Token Tools
cow_resolve_token - Look up token address by symbol (uses official CoW Swap token list)
cow_search_tokens - Search for tokens by name/symbol across networks
Order Tools
cow_get_quote - Get price and fee quotes for trades (accepts symbols OR addresses)
cow_get_order - Get full order details by UID
cow_get_order_status - Check order status (open, filled, cancelled, expired)
cow_get_trades - Fetch trade history for an address or order
cow_get_auction - View current auction batch information
Related MCP server: Uniswap Trader MCP
Token Resolution
The server uses the official CoW Protocol token list for symbol resolution. This is the same list used by CoW Swap.
Example: Instead of providing the full address for USDC or COW, you can just use the symbol:
sellToken: "WETH"
buyToken: "COW"And it will automatically resolve to the correct address for the specified network.
Supported Networks
mainnet (Ethereum)
gnosis (Gnosis Chain)
arbitrum (Arbitrum One)
base (Base)
avalanche (Avalanche)
polygon (Polygon)
bnb (BNB Chain)
sepolia (Sepolia testnet)
Installation
npm install
npm run buildUsage
With Claude Desktop
Add to your Claude Desktop config:
{
"mcpServers": {
"cow": {
"command": "node",
"args": ["/path/to/cow-mcp-server/dist/index.js"]
}
}
}With OpenClaw
Add to your OpenClaw MCP servers configuration.
Testing with MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.jsDevelopment
# Watch mode
npm run dev
# Build
npm run build
# Clean
npm run cleanAPI Reference
cow_get_quote
Get a quote for a potential trade:
{
"network": "mainnet",
"sellToken": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2",
"buyToken": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
"kind": "sell",
"amount": "1000000000000000000",
"from": "0xYourAddress"
}cow_get_order_status
Check an order's status:
{
"network": "mainnet",
"orderUid": "0x..."
}cow_get_trades
Get trade history:
{
"network": "mainnet",
"owner": "0xYourAddress",
"limit": 20
}License
MIT
Available Tools
8 toolscow_get_auctionGet Current CoW AuctionARead-only
Get information about the current auction batch on CoW Protocol.
CoW Protocol batches orders into auctions that solvers compete to settle. This returns the current auction state.
Args:
network: The blockchain network
Returns:
Current auction ID
Block number
Orders in the batch
Prices for tokens in the batch
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | The network to get auction info for | mainnet |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds that the tool returns the current auction state (ID, block, orders, prices), providing concrete behavioral expectations beyond the annotation hints. 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?
The description is well-structured with a brief introductory line, a contextual sentence, and bullet lists for args and returns. It is concise but includes helpful protocol context; could be slightly trimmed without losing value.
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 simple read-only tool with one parameter and clear annotations, the description covers the essential return fields. However, it lacks details on potential pagination or limits for orders, and does not mention error cases. Still, it is largely 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% with a clear description for the parameter. The description merely restates 'network: The blockchain network' and does not add significant new meaning beyond the schema's enum definition and default value.
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 begins with a clear verb-resource statement: 'Get information about the current auction batch.' It distinguishes from sibling tools like cow_get_order (individual order) and cow_get_quote by specifying it returns the batch-level auction state, including orders and prices.
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 the current auction state but does not explicitly state when to prefer this tool over siblings, nor does it mention when not to use it. Some guidance on selecting between auction and order-level tools would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cow_get_orderGet CoW Order DetailsARead-onlyIdempotent
Get full details of an order on CoW Protocol.
Args:
network: The blockchain network
orderUid: The unique order identifier
Returns the complete order data including:
Sell/buy tokens and amounts
Fee amount
Validity period
Signature and signing scheme
App data
Creation timestamp
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | The network the order is on | mainnet |
| orderUid | Yes | The order UID to fetch |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, idempotent, and safe. The description adds value by listing the specific return fields, providing transparency beyond annotations.
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 concise (two sentences plus bullet lists), front-loaded with the purpose, and uses a clear structure without unnecessary words.
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 the tool's simplicity (two parameters, no output schema) and rich annotations, the description fully covers purpose, parameters, and return content, leaving no gaps.
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 clear descriptions for both parameters. The description only restates the parameter names and types, adding no new semantic meaning beyond the 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 uses the specific verb 'Get' with the resource 'full details of an order', clearly distinguishing it from siblings like cow_get_order_status which returns only status, and cow_get_quote which returns quotes.
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 purpose is clear and implies usage for retrieving complete order data, but does not explicitly state when not to use it or mention alternatives like cow_get_order_status for lighter queries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cow_get_order_statusGet CoW Order StatusARead-onlyIdempotent
Get the current status of an order on CoW Protocol.
Args:
network: The blockchain network
orderUid: The unique order identifier
Returns the order status which can be:
presignaturePending: Order is waiting for on-chain signature
open: Order is active and waiting to be matched
fulfilled: Order has been completely filled
cancelled: Order has been cancelled
expired: Order has expired
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | The network the order is on | mainnet |
| orderUid | Yes | The order UID (unique identifier) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds value by listing all possible return values (statuses), giving the agent concrete expectations.
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 concise and well-structured with Args and Returns sections. It front-loads the core purpose. Slight redundancy (repeating param names) but acceptable.
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 the tool's simplicity and no output schema, the description adequately explains return values. It could add more context about status transitions, but current information is sufficient for a status endpoint.
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?
Both parameters are fully described in the schema (100% coverage). The description's Args section adds no new meaning beyond what the schema provides. 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 the verb 'Get' and the resource 'current status of an order on CoW Protocol', making the purpose unambiguous. It is distinct from siblings like cow_get_order, which returns full order details.
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 fetching order status but does not explicitly state when to prefer this over siblings like cow_get_order. No when-not-to-use or alternative guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cow_get_quoteGet CoW Protocol QuoteARead-only
Get a price and fee quote for a potential trade on CoW Protocol.
This returns the estimated amounts, fees, and a prepared order structure that can be signed and submitted.
Args:
network: The blockchain network (mainnet, gnosis, arbitrum, base, avalanche, polygon, bnb, sepolia)
sellToken: Token to sell (address or symbol like 'WETH')
buyToken: Token to buy (address or symbol like 'USDC')
kind: 'sell' for market sell (exact sell amount), 'buy' for market buy (exact buy amount)
amount: The amount in wei as a string
from: The trader's address (used for balance/allowance simulation)
receiver: Optional address to receive bought tokens (defaults to 'from')
partiallyFillable: Whether the order can be partially filled (default: false)
slippageBps: Optional slippage tolerance in basis points
Returns the quoted order with:
sellAmount, buyAmount, feeAmount
expiration timestamp
quote ID for tracking
Whether the quote was verified via simulation
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | The address that would create the order (used for simulation) | |
| kind | Yes | Order kind: 'sell' for exact sell amount, 'buy' for exact buy amount | |
| amount | Yes | The amount in wei (as string). For 'sell' this is sellAmount, for 'buy' this is buyAmount | |
| network | No | The network to get a quote on | mainnet |
| buyToken | Yes | The token to buy (address or symbol like 'USDC', 'COW') | |
| receiver | No | Optional receiver address for the bought tokens | |
| sellToken | Yes | The token to sell (address or symbol like 'WETH', 'USDC') | |
| slippageBps | No | Slippage tolerance in basis points (e.g., 50 = 0.5%) | |
| partiallyFillable | No | Whether the order can be partially filled |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds transparency by detailing what the tool returns: estimated amounts, fees, an order structure, quote ID, and simulation verification. This provides context beyond the annotations.
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 well-structured with clear sections for Args and Returns. It is appropriately detailed but contains some redundancy with the schema, slightly reducing conciseness. Overall, it is efficient and front-loaded.
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 fully explains the return values (sellAmount, buyAmount, feeAmount, expiration, quote ID, verification status). All 9 parameters are covered, and the tool's purpose is completely specified.
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 baseline is 3. The description includes an Args section that restates parameter descriptions but adds minimal new meaning (e.g., example tokens). It does not significantly enhance understanding beyond the schema's existing descriptions.
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 tool's purpose: 'Get a price and fee quote for a potential trade on CoW Protocol.' It specifies the verb 'get' and resource 'quote', and distinguishes from sibling tools like cow_get_auction and cow_get_order by focusing on quotes for potential trades.
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 context: it returns estimated amounts and a prepared order structure that can be signed and submitted. It does not explicitly state when to use vs alternatives, but the context is clear that this is for obtaining a quote before trading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cow_get_tradesGet CoW Trade HistoryARead-onlyIdempotent
Get trade history for an address or order on CoW Protocol.
Args:
network: The blockchain network
owner: The address to fetch trades for (optional if orderUid provided)
orderUid: Filter trades by specific order (optional if owner provided)
limit: Maximum number of trades to return (1-100, default 20)
offset: Pagination offset (default 0)
Note: Either owner or orderUid must be provided, but not both.
Returns a list of executed trades with:
Transaction hash
Sell/buy amounts and tokens
Block number and timestamp
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint=false. The description adds value by detailing the return fields (transaction hash, amounts, block number), enhancing understanding of the tool's 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?
Well-structured with sections for args, note, and returns. Each sentence adds value, no redundancy. Front-loaded with purpose.
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?
Covers usage constraints and return format comprehensively for a read tool. The schema mismatch is a flaw but not a completion gap in the description itself.
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 input schema is empty (0 parameters), but the description lists 5 parameters with details. This creates a contradiction; an agent cannot use the described parameters. Schema_description_coverage is 100% vacuously, but the description's parameter info is unsupported, limiting its utility.
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 'Get trade history for an address or order on CoW Protocol.' Verb-resource pair is specific and distinct from sibling tools like cow_get_auction or cow_get_order.
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?
Provides explicit constraint 'Either owner or orderUid must be provided, but not both.' This guides usage, though it does not explicitly compare to siblings, the context makes it clear this is for trades.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cow_prepare_orderPrepare CoW Order for SigningARead-onlyIdempotent
Prepare an order for signing with EIP-712.
This generates the typed data structure needed to sign a CoW Protocol order. Use this after getting a quote from cow_get_quote.
Args:
network: The blockchain network
sellToken, buyToken: Token addresses or symbols
sellAmount, buyAmount, feeAmount: Amounts from the quote
validTo: Expiration timestamp from the quote
from: The address that will sign the order
kind: Order kind (sell/buy)
partiallyFillable: Whether partial fills are allowed
receiver: Optional receiver (defaults to from)
appData: Optional app data hash
Returns:
EIP-712 typed data JSON
Foundry cast command to sign the order
curl command to submit the signed order
| Name | Required | Description | Default |
|---|---|---|---|
| from | Yes | The address that will sign and own the order | |
| kind | No | Order kind | sell |
| appData | No | Optional app data hash (defaults to empty) | |
| network | No | The network to prepare the order for | mainnet |
| validTo | Yes | Unix timestamp when order expires (from quote.validTo) | |
| buyToken | Yes | The token to buy (address or symbol) | |
| receiver | No | Optional receiver address (defaults to from) | |
| buyAmount | Yes | The minimum amount to buy in wei | |
| feeAmount | Yes | The fee amount in wei (from quote) | |
| sellToken | Yes | The token to sell (address or symbol) | |
| sellAmount | Yes | The exact amount to sell in wei | |
| partiallyFillable | No | Whether the order can be partially filled |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and non-destructive. The description adds behavioral details: it generates typed data structure, returns EIP-712 JSON and shell commands. This goes beyond annotations by describing the output format and the signing preparation nature, confirming it does not submit orders.
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 extremely concise with two short paragraphs and bullet lists for args and returns. Every sentence adds value: the first line states the action, the workflow hint, then structured parameter and return details. No fluff.
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 12 parameters (7 required) and no output schema, the description is complete: it explains the tool's purpose, workflow position, full input list (though not detailed beyond schema), and detailed return structure (three items). No gaps.
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 each parameter already has a description. The description's Args section lists parameters but does not add new information beyond the schema. It does group them and notes they come from the quote, which is mild added value. 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 the tool prepares an order for EIP-712 signing, a distinct step after getting a quote. It uses specific verbs and resource, and the sibling tools list shows no overlap (e.g., cow_get_quote, cow_get_order). The workflow hint 'Use this after getting a quote from cow_get_quote' further distinguishes it.
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 explicitly says to use this tool after cow_get_quote, providing clear context for its place in the workflow. It does not explicitly state when not to use it or mention alternatives, but the use case is very specific and well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cow_resolve_tokenResolve Token Symbol to AddressARead-onlyIdempotent
Look up a token's contract address by its symbol on a specific network.
This is useful when you know the token symbol but not the address.
Args:
symbolOrAddress: Token symbol (e.g., 'USDC', 'WETH', 'COW') or an address (returns info if found)
network: The blockchain network
Returns:
Token address
Symbol and name
Decimals
Chain ID
| Name | Required | Description | Default |
|---|---|---|---|
| network | No | The network to search on | mainnet |
| symbolOrAddress | Yes | Token symbol (e.g., 'USDC', 'COW', 'WETH') or contract address |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive. The description adds value by detailing the return fields and noting that passing an address also returns info. 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?
The description is concise with a clear first sentence, a useful note, and well-structured bullet points for arguments and returns. No wasted words.
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 the tool's simplicity, full schema coverage, and annotations, the description is complete. It explains purpose, parameters, and return values adequately.
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 descriptions cover both parameters fully. The tool description adds examples and clarifies that symbolOrAddress can be a symbol or address, enhancing understanding beyond the 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 resolves a token symbol to its contract address on a specific network, which is a specific verb+resource. It distinguishes itself from sibling tools like cow_search_tokens by focusing on direct symbol-to-address lookup.
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 explicitly says 'Useful when you know the token symbol but not the address,' providing a clear use case. It does not explicitly mention when not to use it but the context implies it's for known tokens.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cow_search_tokensSearch for TokensARead-onlyIdempotent
Search for tokens by symbol or name across networks.
Args:
query: Search string (e.g., 'USDC', 'cow', 'wrapped')
network: Optional network filter
Returns up to 10 matching tokens with addresses and metadata.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (symbol or name) | |
| network | No | Optional network filter |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, idempotent, non-destructive. Description adds key behavioral details: returns up to 10 matching tokens with addresses and metadata, going beyond annotations.
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?
Extremely concise: two sentences plus an argument list format. Every sentence is necessary and front-loaded with the core purpose. No wasted words.
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 (up to 10 tokens with addresses and metadata). It could mention the limit of 10 more prominently, but overall complete for an idempotent search tool.
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 clear descriptions. The description adds value by providing concrete examples ('USDC', 'cow', 'wrapped') and explaining the optional network filter, enhancing usability.
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 tool searches for tokens by symbol or name across networks, using specific verbs 'search' and 'tokens', distinguishing it from siblings like cow_resolve_token which likely does exact resolution.
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 guidance on when to use this tool versus alternatives (e.g., cow_resolve_token for exact match). The description only explains the tool's action without context for selection.
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.
8 tool updates
v1.0.0- First observed
cow_get_auction - First observed
cow_get_order - First observed
cow_get_order_status - First observed
cow_get_quote - First observed
cow_get_trades - First observed
cow_prepare_order - First observed
cow_resolve_token - First observed
cow_search_tokens
TDQS
Scored across 8 tools
Each tool targets a distinct aspect of CoW Protocol: auction state, order details, order status, quote, trades, order preparation, token resolution, and token search. No overlapping functionality.
All tools follow a consistent 'cow_verb_noun' pattern with snake_case. Examples: cow_get_auction, cow_prepare_order, cow_search_tokens.
8 tools is well-scoped for a protocol-specific server. They cover key operations without being excessive or minimal.
Covers core query and preparation operations but lacks direct submission of orders, cancellation, and listing of all orders for a user. Agents must rely on external curl commands for submission.
Maintenance
Related MCP Connectors
Gasless, MEV-protected onchain token swaps for AI agents on 14 EVM chains, built on CoW Protocol.
Doc search, intent & cross-chain swaps, limit orders, portfolio, spot prices, gas & all APIs.
Non-custodial DeFi for AI agents: swaps, concentrated liquidity (V3/V4) zaps + ranges, 5 EVM chains
Enable AI assistants to interact seamlessly with the DefiLlama API by translating MCP tool calls i…
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables interaction with DeFi trading and portfolio analytics through Odos DEX aggregation and Zerion APIs. Provides access to swap quotes, liquidity operations, token pricing, portfolio analysis, and transaction history across multiple blockchain networks.3-
- AlicenseNot gradedqualityDmaintenanceEnables AI agents to automate token swaps on Uniswap DEX across multiple blockchains including Ethereum, Optimism, Polygon, Arbitrum, and more, with real-time price quotes, swap execution, and multi-hop route optimization.8MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to securely trade on Hyperliquid perpetual exchange, including order placement, position management, market data retrieval, and vault operations via natural language.21MIT
- AlicenseBqualityDmaintenanceIntegrates with Hyperliquid DEX to enable trading, account management, and market data queries through natural language.12153MIT