Skip to main content
Glama

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 build

Usage

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.js

Development

# Watch mode
npm run dev

# Build
npm run build

# Clean
npm run clean

API 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 tools
cow_get_auctionGet Current CoW AuctionA
Read-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

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoThe network to get auction info formainnet

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 DetailsA
Read-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

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoThe network the order is onmainnet
orderUidYesThe order UID to fetch

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 StatusA
Read-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

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoThe network the order is onmainnet
orderUidYesThe order UID (unique identifier)

TDQS

A3.9/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

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 '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.

Usage Guidelines3/5

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 QuoteA
Read-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

ParametersJSON Schema
NameRequiredDescriptionDefault
fromYesThe address that would create the order (used for simulation)
kindYesOrder kind: 'sell' for exact sell amount, 'buy' for exact buy amount
amountYesThe amount in wei (as string). For 'sell' this is sellAmount, for 'buy' this is buyAmount
networkNoThe network to get a quote onmainnet
buyTokenYesThe token to buy (address or symbol like 'USDC', 'COW')
receiverNoOptional receiver address for the bought tokens
sellTokenYesThe token to sell (address or symbol like 'WETH', 'USDC')
slippageBpsNoSlippage tolerance in basis points (e.g., 50 = 0.5%)
partiallyFillableNoWhether the order can be partially filled

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness4/5

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.

Completeness5/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 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.

Parameters3/5

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.

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 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.

Usage Guidelines4/5

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 HistoryA
Read-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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters2/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 SigningA
Read-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

ParametersJSON Schema
NameRequiredDescriptionDefault
fromYesThe address that will sign and own the order
kindNoOrder kindsell
appDataNoOptional app data hash (defaults to empty)
networkNoThe network to prepare the order formainnet
validToYesUnix timestamp when order expires (from quote.validTo)
buyTokenYesThe token to buy (address or symbol)
receiverNoOptional receiver address (defaults to from)
buyAmountYesThe minimum amount to buy in wei
feeAmountYesThe fee amount in wei (from quote)
sellTokenYesThe token to sell (address or symbol)
sellAmountYesThe exact amount to sell in wei
partiallyFillableNoWhether the order can be partially filled

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 AddressA
Read-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

ParametersJSON Schema
NameRequiredDescriptionDefault
networkNoThe network to search onmainnet
symbolOrAddressYesToken symbol (e.g., 'USDC', 'COW', 'WETH') or contract address

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 TokensA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch query (symbol or name)
networkNoOptional network filter

TDQS

A4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

  1. 8 tool updatesv1.0.0
    • First observedcow_get_auction
    • First observedcow_get_order
    • First observedcow_get_order_status
    • First observedcow_get_quote
    • First observedcow_get_trades
    • First observedcow_prepare_order
    • First observedcow_resolve_token
    • First observedcow_search_tokens

TDQS

A4.2/5.0

Scored across 8 tools

Disambiguation5/5

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.

Naming Consistency5/5

All tools follow a consistent 'cow_verb_noun' pattern with snake_case. Examples: cow_get_auction, cow_prepare_order, cow_search_tokens.

Tool Count5/5

8 tools is well-scoped for a protocol-specific server. They cover key operations without being excessive or minimal.

Completeness3/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables 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
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to securely trade on Hyperliquid perpetual exchange, including order placement, position management, market data retrieval, and vault operations via natural language.
    21
    MIT