Skip to main content
Glama
baskcart

W3Ship MCP Server

by baskcart

W3Ship Commerce MCP Server

Let AI shop for you โ€” with no passwords, no logins, just cryptographic identity.

W3Ship is the first MCP (Model Context Protocol) server for AI-powered commerce. It gives AI agents like Claude, Cursor, and VS Code Copilot the ability to create shopping carts, place orders, track shipments, book sessions, swap tokens via Uniswap, sell items P2P, and distribute promotional items with in-store pickup โ€” all using cryptographic identity (SLH-DSA / ECDSA) instead of passwords.

Built on TMF Open API standards (TMF663, TMF622, TMF621) for interoperability.


โšก Quick Start

No installation required โ€” just configure your AI client:

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "w3ship": {
      "command": "npx",
      "args": ["-y", "w3ship-mcp-server"],
      "env": {
        "VALKEY_HOST": "localhost",
        "VALKEY_PORT": "6379"
      }
    }
  }
}

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "w3ship": {
      "command": "npx",
      "args": ["-y", "w3ship-mcp-server"],
      "env": {
        "VALKEY_HOST": "localhost",
        "VALKEY_PORT": "6379"
      }
    }
  }
}

VS Code (.vscode/mcp.json):

{
  "servers": {
    "w3ship": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "w3ship-mcp-server"],
      "env": {
        "VALKEY_HOST": "localhost",
        "VALKEY_PORT": "6379"
      }
    }
  }
}

Prerequisites

  • Node.js 18+

  • Redis / Valkey instance (for cart, order, and shipment storage)

    • Local: docker run -p 6379:6379 redis:latest

    • Or any Redis-compatible service (AWS ElastiCache, Upstash, etc.)


Related MCP server: SCP Local MCP Server

๐Ÿ› ๏ธ Tools (22 total)

๐Ÿ›’ Shopping Cart (TMF663)

Tool

Description

create_cart

Create a shopping cart. Uses W3SHIP_PUBLIC_KEY automatically if configured

get_cart

Retrieve a cart by its public key ID

add_item

Add an item (product offering + quantity) to a cart

delete_cart

Delete a shopping cart

๐Ÿ“ฆ Orders (TMF622)

Tool

Description

create_order

Convert a cart into a confirmed order and initiate fulfillment

get_order

Retrieve order details by order ID

๐Ÿšš Shipment Tracking (TMF621)

Tool

Description

track_shipment

Track delivery status with simulated real-time updates

๐Ÿ“… Session Booking

Tool

Description

get_available_slots

Get available session time slots by location and date (VR, fitness, dining, salon, etc.)

hold_slot

Reserve a session slot (held for 10 minutes pending payment)

list_bookings

List confirmed bookings, optionally filtered by location/date

๐Ÿ” Identity Lookup

Tool

Description

ship_address

Retrieve a physical shipping address using a public key + timed signature

Identity lookups are forwarded to the centralized W3Ship API (w3ship.com/api/identity). Signature verification and database access happen server-side โ€” no AWS credentials needed on your end.

๐Ÿงช Setup & Demo

Tool

Description

generate_demo_key

Generate a demo ECDSA key pair for testing โ€” try the commerce flow without a wallet

get_identity

Show the currently configured identity or instructions on how to set one up

๐Ÿ”„ Uniswap Swap (NEW in v1.3.0)

Tool

Description

get_swap_quote

Get a swap quote from Uniswap โ€” returns output amount, gas estimate, price impact, and routing path. Supports V2, V3, V4, and UniswapX. Default chain: Base (8453).

check_token_approval

Check if a token is approved for swapping on Uniswap. Returns approval transaction data if needed.

Requires UNISWAP_API_KEY โ€” get yours free at developers.uniswap.org. Built-in token addresses for Base chain: ETH, USDC, USDT, DAI, WETH. Pass any ERC-20 contract address for other tokens.

๐Ÿช P2P Marketplace (NEW in v1.4.0)

Tool

Description

create_listing

Sell anything โ€” no merchant onboarding needed. Set title, price, currency, and your wallet address for payment. Listings expire after 30 days by default.

search_listings

Browse active listings by category (electronics, gifts, clothing, etc.) or keyword search.

get_listing

Get full details of a listing: description, price, seller, payment address, shipping regions.

remove_listing

Remove your own listing. Seller address must match.

Categories: electronics, clothing, collectibles, home, sports, gifts, books, other. Anyone with a wallet address is a merchant.

๐Ÿ’ณ Payment & Fulfillment (NEW in v1.4.0)

Tool

Description

confirm_payment

Submit an on-chain transaction hash to verify payment. Supports Base (8453) and Tempo chains. Updates order to "paid".

add_tracking

Seller provides real carrier tracking (UPS, FedEx, USPS, DHL, etc.) after shipping the item.

P2P orders auto-detect listing items (LST-* prefix), fill in seller wallet address, and set payment status to awaiting_payment. After payment, sellers use add_tracking to provide shipping info.

๐ŸŽ Promotional Items & Pickup (Updated in v1.6.0)

Tool

Description

claim_promo

Claim a FREE promotional listing. Supports shipping or in-store pickup. One per wallet.

New in v1.6.0: In-Store Pickup

Promo listings now support three fulfillment modes:

Mode

How It Works

ship

Customer pays shipping, item mailed (original flow)

pickup

Customer picks up at a physical location โ€” zero cost

both

Customer chooses shipping or pickup

Create a pickup promo:

create_listing(
  isPromo: true,
  fulfillmentType: "pickup",
  pickupLocations: [{
    id: "qbm",
    name: "Quaker Bridge Mall",
    address: "3320 Brunswick Pike, Lawrenceville NJ",
    hours: "Mon-Sat 10am-9pm",
    instructions: "Visit the kiosk near the food court. Show your claim ID."
  }]
)

Claim with pickup:

claim_promo(listingId: "...", fulfillmentChoice: "pickup", pickupLocationId: "qbm")

The AI returns the pickup location, hours, and instructions. No address registration needed for pickup claims โ€” only wallet identity is required.


๐Ÿ” Cryptographic Identity

W3Ship uses cryptographic identity โ€” no usernames, no passwords, no accounts. Three identity types are supported:

Scheme

Key Size

Use Case

EVM Address

20 bytes (40 hex chars)

MetaMask / any Ethereum wallet

ECDSA (P-256)

33 bytes (compressed) / 65 bytes (uncompressed)

Standard web3 wallets

SLH-DSA

32 bytes (64 hex chars)

Post-quantum secure identity (Dah.mx)

Your wallet address or public key IS your cart ID. No sign-up required.


โš™๏ธ Configuration

Environment Variables

Variable

Required

Default

Description

W3SHIP_PUBLIC_KEY

No

โ€”

Your wallet address or public key (hex). Set once and all tools use it automatically

UNISWAP_API_KEY

No

โ€”

Uniswap Trading API key for swap quotes. Get yours at developers.uniswap.org

VALKEY_HOST

No

localhost

Redis/Valkey host

VALKEY_PORT

No

6379

Redis/Valkey port

VALKEY_PASSWORD

No

โ€”

Redis/Valkey password (if auth enabled)

W3SHIP_API_URL

No

https://w3ship.com

Base URL for the W3Ship API (identity, session booking)

Getting Your Key

  • MetaMask users: Just copy your Ethereum address (e.g. 0x1234...abcd) โ€” it works directly

  • Dah.mx users: Settings โ†’ AI Assistant Setup โ†’ Copy key

  • Demo/Testing: Don't set a key โ€” use generate_demo_key in your AI assistant instead


๐Ÿ—๏ธ Architecture

The MCP server is a thin client that combines local cart/order storage with centralized W3Ship services:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  AI Client (Claude / Cursor / VS Code)      โ”‚
โ”‚  "Create a cart and book a fitness session"  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                   โ”‚ stdio (MCP Protocol)
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  W3Ship MCP Server (your machine)           โ”‚
โ”‚                                              โ”‚
โ”‚  Local Storage (Redis/Valkey):               โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚ Cart     โ”‚ โ”‚ Orders  โ”‚ โ”‚ Shipment     โ”‚  โ”‚
โ”‚  โ”‚ (TMF663) โ”‚ โ”‚ (TMF622)โ”‚ โ”‚ (TMF621)     โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                                              โ”‚
โ”‚  Centralized API (w3ship.com):               โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚ Booking      โ”‚  โ”‚ Identity Lookup     โ”‚  โ”‚
โ”‚  โ”‚ /api/slots   โ”‚  โ”‚ /api/identity       โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
  • Commerce (cart, order, shipment) โ†’ stored locally in your Redis

  • Identity (address lookup) โ†’ forwarded to w3ship.com API

  • Session Booking โ†’ forwarded to w3ship.com API

  • No AWS credentials needed. No cloud config required.


๐Ÿ’ก Example Conversations

Shopping & Booking

You:    "I want to shop on W3Ship"
Claude: [calls get_identity โ€” no key configured]
        [calls generate_demo_key โ€” creates a test identity]
        [calls create_cart with the demo key]
        "You're all set! I've created a shopping cart for you.
         What would you like to buy?"

You:    "Book me a VR session for this afternoon"
Claude: [calls get_available_slots for today]
        "Here are today's sessions at Downtown VR:
         โ€ข 2:00 PM - $45 (3 spots left)
         โ€ข 4:00 PM - $45 (5 spots left)
         Which time works?"

You:    "4 PM"
Claude: [calls hold_slot โ†’ add_item]
        "Slot held for 10 minutes. Added to your cart."

You:    "Place the order"
Claude: [calls create_order]
        "Order confirmed! Tracking: TRK-8392751046"

Claiming a Promo with Pickup (NEW in v1.6.0)

You:    "Any free promos I can grab?"
Claude: [calls search_listings with category: promotional]
        "There's a free VR Experience Card available!
         You can pick it up at Quaker Bridge Mall."

You:    "I'll take it"
Claude: [calls claim_promo with fulfillmentChoice: pickup]
        "Claimed! Here's your pickup info:
         ๐Ÿ“ Quaker Bridge Mall, Lawrenceville NJ
         ๐Ÿ• Mon-Sat 10am-9pm
         ๐ŸŽŸ๏ธ Claim ID: CLM-MMB1ZW3W-W98I
         Show your claim ID at the VR kiosk near the food court."

Tip: For production use, set your real wallet key via W3SHIP_PUBLIC_KEY in your MCP config. See Getting Your Public Key above.


๐Ÿ“ฐ Press



๐Ÿ“„ License

MIT โ€” see LICENSE

Available Tools

22 tools
add_itemA

Add an item to an existing shopping cart. Uses W3SHIP_PUBLIC_KEY as cartId if not provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
cartIdYesPublic key ID of the cart. Optional if W3SHIP_PUBLIC_KEY is set.
itemYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It discloses the environment variable fallback behavior (W3SHIP_PUBLIC_KEY), which is valuable operational context. However, it omits other critical behavioral traits like idempotency, error cases (e.g., cart not found), or side effects beyond the addition itself.

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

Conciseness5/5

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

Two sentences total. The first establishes purpose; the second explains the optional cartId behavior. Every sentence earns its place with no redundancy or filler, efficiently front-loading the essential information.

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

Completeness3/5

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

Given the complex nested object structure for 'item', lack of output schema, and absence of annotations, the description provides minimal viable context. It covers the primary action and cartId resolution, but leaves significant gaps regarding the item payload structure and return behavior.

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 50% (cartId described in schema, item is not). The description adds the specific environment variable name (W3SHIP_PUBLIC_KEY) for the cartId parameter, clarifying the fallback mechanism. However, it fails to compensate for the undocumented 'item' parameter structure, leaving the nested productOffering and quantity objects unexplained.

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 explicitly states 'Add an item to an existing shopping cart' with a specific verb (add) and resource (item). The word 'existing' effectively distinguishes this from the sibling create_cart tool, making the scope unambiguous.

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 constraints by specifying 'existing shopping cart' (suggesting the cart must already exist), and explains the W3SHIP_PUBLIC_KEY fallback mechanism. However, it lacks explicit guidance on when to use create_cart instead, or prerequisites like cart existence validation.

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

add_trackingA

Seller tool: Add real shipping tracking info to an order after shipping the item. Provides the buyer with a tracking number and carrier.

ParametersJSON Schema
NameRequiredDescriptionDefault
orderIdYesThe order ID
carrierYesShipping carrier: UPS, FedEx, USPS, DHL, etc.
trackingNumberYesCarrier tracking number
sellerAddressNoSeller wallet address (for verification). Uses W3SHIP_PUBLIC_KEY if not provided.

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description carries full burden. It discloses the buyer-side effect ('Provides the buyer with...'), but omits mutation details like idempotency, overwrite behavior, or the verification purpose of sellerAddress mentioned in the schema.

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

Conciseness5/5

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

Two efficient sentences with zero waste. 'Seller tool:' front-loading immediately establishes context. Every word earns its place; no redundancy with schema or name.

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

Completeness3/5

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

Adequate for a 4-parameter mutation tool with no output schemaโ€”it explains the action and primary side effect. However, gaps remain around error cases (e.g., invalid tracking numbers), return value structure, and whether the operation is idempotent.

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 has 100% coverage with clear descriptions. The description references 'tracking number and carrier' and implies the order target, reinforcing the schema, but adds no syntax, format details, or parameter relationships beyond what's in the schema properties.

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

Purpose4/5

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

Clear verb ('Add'), resource ('shipping tracking info'), and scope ('to an order'). The 'Seller tool' prefix effectively restricts the audience. However, it doesn't explicitly differentiate from sibling 'track_shipment' (which likely queries tracking vs. adding it).

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?

Provides implicit guidance via 'after shipping the item' (sequencing) and 'Seller tool' (role restriction). However, it lacks explicit 'when not to use' or named alternatives (e.g., whether to use this vs. updating an order).

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

check_token_approvalA

Check if a token is approved for swapping on Uniswap. Returns whether approval is needed and the approval transaction if so. Requires UNISWAP_API_KEY env var.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenYesToken symbol (USDC, USDT, DAI, WETH) or contract address
amountYesAmount to approve (in human-readable units)
walletAddressNoWallet address. Uses W3SHIP_PUBLIC_KEY if not provided.
chainIdNoChain ID (default: 8453 for Base)

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Successfully discloses return values ('whether approval is needed and the approval transaction') and environment requirement. However, lacks safety profile (read-only vs. state-changing), rate limits, or error handling behavior.

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

Conciseness5/5

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

Three sentences with zero waste: purpose statement, return value disclosure, and prerequisite warning. Front-loaded with specific action verb and efficiently structured.

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 100% input schema coverage and no output schema, the description adequately covers return behavior textually and documents the API key requirement. Minor gap: lacks safety classification (destructive vs. safe) which annotations would normally provide.

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

Parameters3/5

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

Schema description coverage is 100%, establishing baseline 3. Description does not add parameter-specific semantics (e.g., valid token formats, amount precision), but the comprehensive schema makes this acceptable.

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?

Specific verb 'Check' + resource 'token approval' + domain 'Uniswap' provides clear purpose. Effectively distinguishes from sibling 'get_swap_quote' and non-crypto tools like 'create_cart' by specifying the Uniswap swapping context.

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?

Implies workflow context ('for swapping') and prerequisite (UNISWAP_API_KEY), but lacks explicit when-to-use guidance versus sibling 'get_swap_quote' or confirmation that this should be called before executing swaps. No exclusion criteria provided.

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

claim_promoA

Claim a FREE promotional listing. Items are $0. For shipping promos you pay shipping only; for pickup promos it is completely free. One claim per wallet. Must have a registered W3Ship/Dah.mx identity (address required for shipping, wallet-only for pickup).

ParametersJSON Schema
NameRequiredDescriptionDefault
listingIdYesThe promotional listing ID to claim
publicKeyNoYour public key / wallet address for identity verification. Uses W3SHIP_PUBLIC_KEY if not provided.
fulfillmentChoiceNoHow to receive the item: "ship" (mailed to your address โ€” may have shipping cost) or "pickup" (free, collect at pickup location). Defaults based on listing configuration.
pickupLocationIdNoID of the pickup location (required when multiple pickup locations exist and fulfillmentChoice is "pickup")

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations provided, the description carries full disclosure burden and succeeds in explaining cost structures (free items vs shipping costs), identity verification requirements, and claim limits. It omits explicit mutation confirmation or idempotency details.

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

Conciseness5/5

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

Three dense sentences efficiently cover purpose, pricing structure, and prerequisites without repetition. Every clause adds unique information (cost breakdown by fulfillment method, wallet limits, identity requirements).

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 100% schema coverage and no output schema, the description adequately covers the tool's complexity, including conditional logic for fulfillment methods. It could explicitly mention the pickupLocationId requirement for multi-location scenarios, though the schema handles this.

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?

While schema coverage is 100% (baseline 3), the description adds crucial business context: it explains that 'promotional' means $0, clarifies the cost implications of 'ship' vs 'pickup' choices, and explains identity requirements that bridge publicKey and fulfillmentChoice parameters.

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 opens with a specific verb ('Claim') and resource ('FREE promotional listing'), clearly distinguishing this from sibling purchase tools like create_order or confirm_payment by emphasizing the $0 cost and promotional nature.

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?

It provides clear prerequisites ('Must have a registered W3Ship/Dah.mx identity') and constraints ('One claim per wallet') that establish when the tool is applicable, though it doesn't explicitly name sibling alternatives to avoid.

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

confirm_paymentA

Submit an on-chain payment transaction for verification. After paying the seller (send crypto to their wallet address), provide the transaction hash here to verify payment and update the order status to "paid".

ParametersJSON Schema
NameRequiredDescriptionDefault
orderIdYesThe order ID to confirm payment for
txHashYesThe on-chain transaction hash (0x...)
chainIdNoChain ID where payment was sent. Default: 8453 (Base)

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden and successfully discloses that this is a state-mutating operation ('update the order status'). However, it lacks details on validation logic (e.g., confirmation depth, amount verification), error scenarios, or side effects like seller notifications.

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

Conciseness5/5

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

Two well-structured sentences with zero waste. The first states the core action; the second provides the workflow context and prerequisites. Information is front-loaded and every sentence earns its place.

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

Completeness4/5

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

Given the 100% schema coverage and clear workflow description, the essential information for successful invocation is present. However, for a financial transaction tool with no output schema or annotations, it lacks guidance on error cases (invalid hash, wrong chain) or what indicates successful verification.

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

Parameters3/5

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

Schema description coverage is 100%, establishing a baseline of 3. The description adds workflow context ('provide the transaction hash here') that reinforces the parameter purpose, but does not add syntactic details or format constraints beyond what the schema already provides (e.g., '0x...' for txHash).

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 specific action ('Submit an on-chain payment transaction for verification') and the outcome ('update the order status to paid'). It effectively distinguishes this from sibling tools like create_order (which precedes payment) and get_order (read-only).

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 temporal guidance ('After paying the seller... provide the transaction hash here') establishing the correct sequence in the workflow. However, it does not explicitly mention alternative tools for different payment scenarios or failure recovery.

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

create_cartA

Create a new TMF663 shopping cart. If W3SHIP_PUBLIC_KEY is configured, it is used automatically โ€” no id required. Otherwise provide an SLH-DSA or ECDSA public key (hex).

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoPublic key (hex). Optional if W3SHIP_PUBLIC_KEY env var is set.
customerNo

TDQS

A3.9/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Discloses authentication behavior (env var vs SLH-DSA/ECDSA hex keys) well, but lacks disclosure on return values, idempotency, side effects, or cart persistence 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?

Two sentences with zero waste. Front-loaded with purpose (TMF663 cart creation), followed immediately by configuration logic. Every word earns its place.

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

Completeness3/5

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

Moderate complexity tool with no output schema. Description adequately covers the non-trivial authentication flow but fails to document the customer parameter structure or hint at return value expectations.

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 50%. Description adds value for 'id' parameter (key algorithm types SLH-DSA/ECDSA, conditional requirement logic) beyond schema. However, completely omits documentation for the 'customer' object and its sub-fields (id, name).

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?

Description uses specific verb 'Create' with resource 'TMF663 shopping cart'. The TMF663 reference distinguishes it from generic carts, and clearly differentiates from siblings like get_cart (retrieval) and delete_cart (deletion).

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 conditional logic for when the 'id' parameter is required versus when W3SHIP_PUBLIC_KEY environment variable suffices. Could improve by distinguishing from sibling create_order or create_listing tools.

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

create_listingA

Create a P2P marketplace listing. Anyone can sell items โ€” no merchant onboarding needed. Specify title, price, currency (USDC/ETH/etc), and your wallet address for payment.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesItem title (e.g. "PS5 Console")
descriptionYesItem description
priceYesPrice amount (e.g. 200). Set to 0 for promotional items.
currencyNoPayment currency (USDC, ETH, DAI, etc). Default: USDC
categoryNoCategory: electronics, clothing, collectibles, home, sports, gifts, books, promotional, other
sellerAddressNoSeller wallet address for payment. Uses W3SHIP_PUBLIC_KEY if not provided.
sellerNameNoOptional display name for the seller
conditionNoItem condition: new, like_new, used, refurbished. Default: new
quantityNoHow many available. Default: 1
shipsToNoCountries that can be shipped to (e.g. ["US", "CA"]). Default: ["US"]
expiresInDaysNoListing expires after N days. Default: 30
isPromoNoSet to true for promotional/free items. Price auto-sets to 0, category to "promotional".
shippingCostNoFor promo items: shipping cost the buyer pays (e.g. 8.99). Default: 0
promoQuantityNoFor promo items: how many are available to claim (e.g. 500). Default: 100
fulfillmentTypeNoFulfillment method: "ship" (mail only), "pickup" (in-store only), "both" (customer chooses). Default: "ship". Set to "pickup" for zero-cost promo distribution.
pickupLocationsNoPickup locations for in-store fulfillment. Required when fulfillmentType is "pickup" or "both".

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full disclosure burden. It successfully conveys the permissionless nature ('no merchant onboarding needed') and payment mechanism (wallet address), but fails to disclose critical behavioral traits like whether this creates an on-chain transaction, associated gas fees, listing immutability, or activation timing.

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 consists of two highly efficient sentences. The first states the core action, while the second front-loads the most critical constraints (no onboarding) and required parameters. There is no redundant or wasted language.

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

Completeness3/5

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

Given the high complexity (16 parameters) and lack of output schema or annotations, the description is minimally adequate but misses opportunities to guide the agent through the tool's significant capabilitiesโ€”specifically the promotional item mode (isPromo, promoQuantity) and fulfillment logistics (fulfillmentType, pickupLocations) which represent distinct usage patterns beyond basic selling.

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?

While the input schema has 100% description coverage, the description adds valuable context beyond the schema: it highlights the cryptocurrency nature (USDC/ETH/etc) and clarifies that sellerAddress is specifically 'for payment'. This semantic framing helps the agent understand the crypto-commerce context that raw parameter descriptions don't convey.

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 provides a specific verb (Create) and resource (P2P marketplace listing) that clearly identifies the tool's function. The 'P2P marketplace' qualifier effectively distinguishes it from sibling tools like 'create_order' or 'add_item' by positioning it as a seller-side listing creation tool.

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

Usage Guidelines3/5

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

The phrase 'Anyone can sell items โ€” no merchant onboarding needed' provides implicit guidance about when to use this (for casual selling without formal merchant setup). However, it lacks explicit when-not-to-use guidance or differentiation from similar tools like 'add_item', and doesn't clarify the relationship to promo-specific workflows.

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

create_orderA

Convert a Shopping Cart into a confirmed Order (TMF622) and initiate fulfillment.

ParametersJSON Schema
NameRequiredDescriptionDefault
cartIdYesThe ID of the shopping cart to convert

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full disclosure burden. It successfully indicates side effects ('initiate fulfillment') and state change ('confirmed Order'), but omits critical mutation details: idempotency behavior, whether the cart is deleted post-conversion, error handling, or payment prerequisites.

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

Conciseness5/5

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

Single sentence with zero waste. Information is front-loaded with the action ('Convert'), followed by input/output resources, standard reference (TMF622), and side effects ('initiate fulfillment'). Every clause earns its place.

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

Completeness3/5

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

Adequate for the simple single-parameter schema, but gaps remain given the lack of annotations and output schema. The description omits what the operation returns (order ID? full object?) and the cart lifecycle outcome (persistence vs. deletion), which are important for a state-changing operation.

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

Parameters3/5

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

Schema description coverage is 100%, establishing a baseline of 3. The description references 'Shopping Cart' which conceptually aligns with the 'cartId' parameter, but adds no specific syntax, format constraints, or guidance on obtaining the ID beyond what the schema already provides.

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 specific verbs ('Convert', 'initiate') and clearly identifies the resource transformation (Shopping Cart โ†’ confirmed Order). It distinguishes effectively from siblings like 'create_cart' (creates empty carts) and 'get_order' (retrieves orders) by specifying this converts existing carts into confirmed orders.

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 prerequisites by referencing 'Shopping Cart,' suggesting a cart must exist first, but lacks explicit workflow guidance. It does not clarify the sequence relative to siblings like 'confirm_payment' or 'add_item,' nor does it state when NOT to use it (e.g., empty carts, unpaid carts).

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

delete_cartC

Delete a shopping cart.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPublic key ID of the cart

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Delete' implies destruction, it fails to clarify if the operation is permanent, what happens to items contained in the cart, or whether it triggers cancellation of associated orders. No mention of required permissions or reversibility.

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?

Extremely concise at four words with no redundancy. However, for a destructive operation, this brevity borders on under-specification; nonetheless, the sentence earns its place and is appropriately front-loaded.

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

Completeness2/5

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

Inadequate for a destructive operation with no annotations and no output schema. The description omits critical safety context such as permanence, side effects on cart items, or relationship to the order creation workflow (given sibling tools like create_order and confirm_payment).

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

Parameters3/5

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

The input schema has 100% description coverage for the 'id' parameter ('Public key ID of the cart'). The description adds no additional parameter context, but with complete schema coverage, the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description uses a specific verb ('Delete') and resource ('shopping cart'), making the basic purpose immediately clear. It implicitly distinguishes from siblings like get_cart (read) and create_cart (write), though it does not explicitly differentiate from remove_listing or clarify the cart vs. order lifecycle.

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 provided on when to use this versus alternatives (e.g., whether to use this for abandoned carts versus cancelling active orders), nor are prerequisites stated (e.g., whether the cart must be empty or if it affects pending checkouts).

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

generate_demo_keyA

Generate a demo ECDSA key pair for testing. Returns a public key hex that can be used with create_cart and other tools. Useful for trying out the commerce flow without a real wallet.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It discloses the return format ('public key hex') and testing purpose, but fails to clarify critical behavioral aspects: whether the private key is returned, stored server-side, or discarded, and whether multiple calls create conflicting keys.

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

Conciseness5/5

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

Three well-structured sentences with zero waste. Front-loaded with the core action ('Generate...'), followed by integration context ('can be used with create_cart'), and concluding with use-case rationale ('without a real wallet'). Every sentence earns its place.

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

Completeness4/5

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

Appropriately complete for a zero-parameter tool lacking output schema. Covers generation purpose, output format, and integration with sibling tools. Minor gap regarding private key disposition and persistence, which would be valuable given the cryptographic nature of the operation.

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?

Input schema contains zero parameters, establishing a baseline of 4 per evaluation rules. No parameter description is needed, and the description correctly focuses on behavior and output rather than inventing parameter documentation.

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?

Description uses specific verb 'Generate' with clear resource 'demo ECDSA key pair' and scope 'for testing'. It distinguishes from siblings by emphasizing 'demo' and 'without a real wallet', clearly positioning it as a testing utility distinct from production wallet operations.

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 clear context on when to use ('trying out the commerce flow without a real wallet', 'testing') and explicitly names sibling tool 'create_cart' as a consumer of the output. Lacks explicit negative guidance (e.g., 'do not use in production'), though this is strongly implied.

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

get_available_slotsA

Get available session time slots for a location on a given date. Returns times, capacity, pricing, and activity type. Works for any bookable service (VR, fitness, dining, salon, etc.).

ParametersJSON Schema
NameRequiredDescriptionDefault
locationIdYesLocation ID (e.g. loc_downtown, loc_mall)
dateYesDate in YYYY-MM-DD format
activityIdNoOptional activity/service ID to filter slots

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Compensates well by disclosing return values (times, capacity, pricing, activity type) absent an output schema. However, missing operational details like whether data is real-time vs cached, rate limits, or timezone handling.

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

Conciseness5/5

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

Three sentences, zero waste: sentence 1 states purpose, sentence 2 discloses return structure, sentence 3 defines applicable domains. Front-loaded with action verb. No redundant or filler text.

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 3-parameter query tool with no output schema, description adequately compensates by listing return fields and service domains. Would benefit from mentioning pagination (if many slots) or error cases (invalid dates), but covers core functionality well.

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?

Input schema has 100% description coverage (locationId with examples, date format specified, activityId noted as optional). Description references 'location' and 'date' but adds no semantic details beyond the schema documentation. Baseline 3 appropriate since schema is self-sufficient.

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?

Excellent specificity with verb 'Get' + resource 'available session time slots' + scope 'for a location on a given date'. The examples of bookable services (VR, fitness, dining, salon) clearly distinguish this from sibling action tools like hold_slot, create_order, and list_bookings.

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?

Provides domain context by listing applicable service types (VR, fitness, dining, salon), implying this is a pre-booking availability check. However, lacks explicit guidance on workflow transition to hold_slot for reserving or create_order for purchasing, and doesn't state prerequisites.

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

get_cartA

Retrieve a shopping cart by its Public Key ID. Uses W3SHIP_PUBLIC_KEY if no id is provided.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoPublic key ID (hex). Optional if W3SHIP_PUBLIC_KEY is set.

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Adds valuable context about environment variable fallback behavior, but omits other behavioral traits like error handling when cart not found, read-only nature, or authentication requirements.

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

Conciseness5/5

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

Two sentences with zero waste: first establishes purpose, second covers default behavior. Front-loaded with the essential action and appropriately sized for a single-parameter retrieval tool.

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?

Adequate for a simple retrieval operation with one optional parameter. Captures the critical environment variable dependency. Could be improved by mentioning error behavior (e.g., what happens if cart doesn't exist), but sufficient given the tool's limited complexity and lack of output schema.

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 has 100% coverage and already documents the W3SHIP_PUBLIC_KEY fallback mechanism. Description repeats this information without adding semantic depth (e.g., ID format examples, validation rules) beyond what the schema provides. Baseline 3 appropriate for high schema coverage with minimal added description context.

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?

Uses specific verb 'Retrieve' with clear resource 'shopping cart' and identifier type 'Public Key ID'. Distinct from siblings like create_cart, delete_cart, and get_order through precise resource naming.

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?

Implies usage by documenting the W3SHIP_PUBLIC_KEY fallback mechanism, indicating when the id parameter can be omitted. However, lacks explicit guidance on when to use this versus sibling tools like create_cart or delete_cart.

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

get_identityA

Show the currently configured identity (W3SHIP_PUBLIC_KEY). Returns the public key and its type if set, or instructions on how to configure one.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations, description carries full burden. Discloses conditional return behavior (public key/type vs. configuration instructions), which is valuable. Missing: side effects, error conditions, or format details of the 'instructions' return value.

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

Conciseness5/5

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

Two sentences with zero waste. Front-loaded with main action ('Show the currently configured identity'), followed by precise return value specification. Every clause earns its place.

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

Completeness4/5

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

Appropriately complete for a simple parameter-less getter. Compensates for missing output schema by describing both success states (key present vs. absent). Minor gap: lacks error handling description or return format specifics.

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?

Zero parameters present, establishing baseline 4. Description references W3SHIP_PUBLIC_KEY but as the resource identifier, not a parameter. No parameter documentation needed given empty input schema.

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

Purpose4/5

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

Clear verb 'Show' and specific resource 'configured identity (W3SHIP_PUBLIC_KEY)'. Clearly distinguishes from commerce-focused siblings (add_item, create_cart, etc.) as the sole identity/auth management tool. Minor gap: could explicitly state this is for authentication purposes.

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

Usage Guidelines3/5

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

Implies usage context through 'if set' conditional, suggesting it's for checking authentication status. However, lacks explicit guidance on when to use versus alternatives (e.g., generate_demo_key) or prerequisites for other operations.

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

get_listingB

Get full details of a specific marketplace listing by ID.

ParametersJSON Schema
NameRequiredDescriptionDefault
listingIdYesThe listing ID

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Get' implies a read-only operation, the description lacks critical details: error behavior when the ID doesn't exist, authentication requirements, rate limits, or what constitutes 'full details' given the absence of an output schema.

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

Conciseness5/5

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

The description is a single, efficient sentence of nine words. It is front-loaded with the action verb and contains no redundant or filler text. Every word serves a purpose in defining the tool's function.

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

Completeness3/5

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

For a single-parameter retrieval tool, the description meets minimum viability. However, given the lack of an output schema or annotations, the description should ideally characterize the returned data structure or content types. As written, it leaves significant ambiguity about the response format.

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% ('The listing ID'), establishing a strong baseline. The description reinforces the parameter's role with 'by ID' but does not add semantic constraints (e.g., format, length, source from create_listing) or usage examples beyond what the schema already provides.

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

Purpose4/5

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

The description uses a specific verb ('Get') and resource ('marketplace listing') and clarifies scope ('full details', 'by ID'). It implicitly distinguishes from sibling 'search_listings' by emphasizing 'specific' retrieval by ID rather than querying, though explicit differentiation would strengthen this.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like 'search_listings' (for finding listings without an ID) or 'get_cart'/'get_order' (for different business objects). No prerequisites or conditions are mentioned.

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

get_orderC

Retrieve detailed information about a specific Order (TMF622).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe generic Order ID

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It implies read-only access via 'Retrieve' but fails to disclose error handling (e.g., invalid ID), return value structure, caching behavior, or idempotency traits.

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?

Single sentence is efficiently structured with no redundant words. However, given the absence of annotations and output schema, the description may be overly terse rather than appropriately concise.

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

Completeness2/5

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

Lacks output schema and annotations, yet the description fails to compensate by describing the return structure, field details, or error scenarios. The phrase 'detailed information' is vague and insufficient for an agent to predict the response shape.

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

Parameters3/5

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

Schema description coverage is 100% (the 'id' parameter is fully documented as 'The generic Order ID'). The description adds no additional parameter semantics, meeting the baseline for high-coverage schemas.

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

Purpose4/5

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

Uses specific verb 'Retrieve' with resource 'Order' and references standard 'TMF622', clearly indicating a read operation. However, it does not explicitly distinguish from sibling 'create_order' or other 'get_' tools in the description text.

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?

Provides no guidance on when to use this tool versus alternatives like 'create_order' or 'get_cart', nor does it mention prerequisites such as needing a valid Order ID from a previous operation.

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

get_swap_quoteA

Get a swap quote from Uniswap. Returns estimated output, routing path, gas fees, and price impact. Supports V2, V3, V4, and UniswapX protocols. Requires UNISWAP_API_KEY env var.

ParametersJSON Schema
NameRequiredDescriptionDefault
tokenInYesInput token symbol (ETH, USDC, USDT, DAI, WETH) or contract address
tokenOutYesOutput token symbol (ETH, USDC, USDT, DAI, WETH) or contract address
amountYesAmount of input token to swap (in human-readable units, e.g. "100" for 100 USDC)
walletAddressNoWallet address of the swapper. Uses W3SHIP_PUBLIC_KEY if not provided.
chainIdNoChain ID (default: 8453 for Base)

TDQS

A4/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Discloses return structure, supported protocol versions, and critical auth requirement (UNISWAP_API_KEY). Implies read-only nature via 'Get' and quote semantics, though could explicitly state it does not execute transactions.

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?

Four sentences, zero waste. Front-loaded with purpose, followed by returns, capabilities, and requirements. Every clause delivers distinct value (what, output, protocols, auth).

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?

Compensates well for missing output schema by detailing return values (estimated output, routing, gas, impact) and operational requirements. Lacks error handling or rate limit disclosure, which would elevate to 5 for a financial API tool.

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

Parameters3/5

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

Schema description coverage is 100%, providing complete parameter documentation (token symbols/addresses, human-readable amounts, defaults). Description does not add parameter-specific guidance beyond schema, earning baseline 3.

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

Purpose5/5

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

Description opens with specific verb 'Get' and specific resource 'swap quote from Uniswap', clearly distinguishing it from e-commerce siblings like create_order or add_item. Unambiguous scope.

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?

Implies usage context by detailing return values (output, routing, gas, impact) and supported protocols (V2-V4, UniswapX), but lacks explicit when-to-use guidance relative to sibling check_token_approval or which protocol version to select.

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

hold_slotA

Hold/reserve a session time slot for a customer. The slot is held for 10 minutes pending payment. Works for any bookable service.

ParametersJSON Schema
NameRequiredDescriptionDefault
slotIdYesThe time slot ID to hold
cartIdYesThe cart ID to associate with the hold
participantsNoNumber of participants (default: 1)

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully communicates the critical 10-minute expiry window and the pending payment state, but omits other important behavioral details such as failure modes, idempotency, or what happens when the hold expires.

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 three-sentence structure is optimally front-loaded: action definition first, critical constraint (10 minutes) second, scope clarification third. Every sentence conveys essential information with zero redundancy or filler text.

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 absence of both output schema and annotations, the description adequately compensates by explaining the operational effect (temporary hold). However, it could be improved by describing the return value or success/failure indicators expected from this mutation operation.

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

Parameters3/5

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

The input schema has 100% description coverage, establishing a baseline of 3. The description implies the relationship between parameters ('pending payment' hints at cartId's purpose), but does not add syntax details, validation rules, or format constraints beyond what the schema already provides.

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 provides specific verbs (hold/reserve), identifies the exact resource (session time slot), and clarifies the beneficiary (customer). The phrase 'Works for any bookable service' effectively scopes the tool's applicability and distinguishes it from potentially service-specific booking tools.

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 provides clear temporal context ('held for 10 minutes pending payment') that implies the tool's position in a checkout workflow. However, it stops short of explicitly naming sibling alternatives like confirm_payment or stating exclusion conditions (e.g., 'do not use if slot already held').

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

list_bookingsB

List all confirmed session bookings. Optionally filter by location or date.

ParametersJSON Schema
NameRequiredDescriptionDefault
locationIdNoFilter by location ID
dateNoFilter by date (YYYY-MM-DD)

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. Mentions 'confirmed' state but doesn't explain booking lifecycle states, pagination behavior, or what happens when filters match nothing. Omits auth/permission requirements.

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

Conciseness5/5

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

Two efficient sentences with zero waste. Front-loaded with primary action, followed by filtering capabilities.

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

Completeness3/5

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

Adequate for a simple 2-parameter list operation without output schema, but lacks domain context (what defines a 'session' vs other bookable entities) and return value expectations.

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. The description confirms filters are optional ('Optionally'), matching the zero required parameters, but adds no syntax guidance beyond the schema's YYYY-MM-DD hint.

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

Purpose4/5

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

Clear verb ('List') and resource ('confirmed session bookings'), with 'confirmed' usefully distinguishing from sibling 'get_available_slots'. However, it doesn't clarify relationship to 'hold_slot' or 'get_order' which may represent similar concepts in this domain.

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 versus siblings like 'hold_slot' (which likely precedes booking) or 'get_order'. No mention of prerequisites or filter selection strategy.

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

remove_listingA

Remove a marketplace listing. Only the seller can remove their own listing.

ParametersJSON Schema
NameRequiredDescriptionDefault
listingIdYesThe listing ID to remove
sellerAddressNoSeller wallet address (must match listing). Uses W3SHIP_PUBLIC_KEY if not provided.

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It successfully discloses the authorization requirement (seller-only), but omits behavioral details like idempotency, side effects on associated orders/carts, return values, or reversibility of the deletion.

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

Conciseness5/5

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

Two sentences, zero waste. The first states the action; the second states the critical authorization constraint. Both earn their place and are front-loaded with no filler text.

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 two-parameter deletion tool with 100% schema coverage, the description covers the essential business logic (auth) and action. It lacks return value documentation (compounded by no output schema), but adequately covers the operational contract for an AI agent to invoke the tool correctly.

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?

While the schema has 100% coverage documenting both listingId and sellerAddress, the description adds crucial business context: 'Only the seller can remove their own listing' reinforces the validation rule on sellerAddress ('must match listing'), adding semantic meaning beyond the schema's syntax description.

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 a specific verb ('Remove') with a clear resource ('marketplace listing'), immediately distinguishing it from sibling tools like get_listing (fetch) or create_listing (create). The scope is unambiguous.

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

Usage Guidelines4/5

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

The second sentence ('Only the seller can remove their own listing') provides explicit authorization constraints, effectively guiding when to use (you are the seller) and when not to use (you are not the seller). It lacks explicit naming of alternatives for non-sellers, but the permission boundary is clearly stated.

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

search_listingsA

Browse the W3Ship P2P marketplace. Search by category (electronics, gifts, clothing, etc.) or keyword. Returns active listings with prices and seller info.

ParametersJSON Schema
NameRequiredDescriptionDefault
categoryNoFilter by category (electronics, clothing, collectibles, home, sports, gifts, books, other)
keywordNoSearch keyword (matches title, description)
limitNoMax results to return. Default: 20

TDQS

A3.6/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. Discloses return content ('active listings with prices and seller info') and state filtering ('active'). However, missing pagination behavior, sorting logic, or error conditions that would be expected for a search tool.

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

Conciseness5/5

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

Three well-structured sentences with zero waste. Front-loaded with action ('Browse'), followed by usage mechanics, then return value. Every sentence earns its place.

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

Completeness4/5

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

Adequately compensates for missing output schema by describing return structure (prices, seller info). Given simple 3-parameter input and no nested objects, description covers essential context, though could note pagination or result ordering.

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%, establishing baseline 3. Description reinforces parameter meaning by categorizing them as search mechanisms and providing category examples, but doesn't add syntax details or validation rules beyond the schema.

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

Purpose4/5

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

Clear verb+resource ('Browse the W3Ship P2P marketplace', 'Search by category...'). Distinguishes from sibling 'get_listing' through plural 'listings' and search/filter semantics, though it doesn't explicitly name the sibling alternative.

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?

Provides implied usage through parameter explanation ('Search by category... or keyword'), indicating when filters apply. However, lacks explicit when-to-use guidance versus 'get_listing' or other sibling tools like 'create_listing'.

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

ship_addressB

Securely retrieve a physical address using a public key and a timed cryptographic signature.

ParametersJSON Schema
NameRequiredDescriptionDefault
publicKeyYesThe hex-encoded public key to lookup.
signatureYesThe hex-encoded signature of the timestamp.
timestampYesThe current Unix timestamp in milliseconds.

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the security model ('securely', 'timed cryptographic signature') implying replay protection and authentication requirements, but omits failure modes, rate limits, or return value structure.

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

Conciseness5/5

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

Single, dense sentence of 11 words. Every word earns its place: action ('retrieve'), resource ('physical address'), and security mechanism ('public key', 'timed cryptographic signature') are all front-loaded with zero redundancy.

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

Completeness3/5

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

Adequate for invoking the tool given the well-documented schema, but incomplete regarding what the tool returns (no output schema exists) and error conditions (e.g., invalid signature behavior). Given the 'secure' nature, more behavioral context would strengthen this.

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%, establishing a baseline of 3. The description adds minimal semantic value beyond the schemaโ€”'timed' reinforces the timestamp-signature relationship already documented in the schema, but doesn't explain parameter formats or validation rules beyond 'hex-encoded'.

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

Purpose4/5

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

States a specific action ('retrieve') and resource ('physical address') clearly. The cryptographic mechanism distinguishes it implicitly from sibling getters like get_identity, though it doesn't explicitly differentiate from them.

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

Usage Guidelines2/5

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

Provides no guidance on when to use this tool versus alternatives (e.g., get_identity) or prerequisites for the cryptographic signature. The 'securely' qualifier hints at sensitive use cases but lacks explicit direction.

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

track_shipmentC

Track the delivery status of a shipment (TMF621).

ParametersJSON Schema
NameRequiredDescriptionDefault
shipmentIdNoThe unique Shipment ID
orderIdNoThe Order ID (optional, to lookup shipment)

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. While 'Track' implies a read operation, the description does not confirm it is read-only, describe the return format, mention error cases (e.g., invalid shipmentId), or disclose rate limits.

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 a single, front-loaded sentence with minimal waste. However, the '(TMF621)' reference adds limited value for an AI agent without additional context about this standard.

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

Completeness3/5

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

For a two-parameter tool with simple string inputs and 100% schema coverage, the description is minimally adequate. However, given the lack of annotations and output schema, it should ideally describe the return value (tracking details) and confirm the read-only nature of the operation.

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?

With 100% schema description coverage (both shipmentId and orderId are documented), the baseline score is 3. The description does not add semantic details beyond the schema (e.g., ID format examples or lookup semantics), but the schema already adequately defines the parameters.

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

Purpose4/5

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

The description clearly states the specific action (Track), resource (shipment), and scope (delivery status). However, it does not explicitly distinguish from sibling tools like `add_tracking` (which likely adds tracking data rather than querying it) or `get_order` (which may also return status information).

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives such as `get_order` or `add_tracking`, nor does it mention prerequisites like requiring a valid shipmentId or when to use the optional orderId parameter instead.

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. 22 tool updatesv1.7.0
    • First observedadd_item
    • First observedadd_tracking
    • First observedcheck_token_approval
    • First observedclaim_promo
    • First observedconfirm_payment
    • First observedcreate_cart
    • First observedcreate_listing
    • First observedcreate_order
    • First observeddelete_cart
    • First observedgenerate_demo_key
    • First observedget_available_slots
    • First observedget_cart
    • First observedget_identity
    • First observedget_listing
    • First observedget_order
    • First observedget_swap_quote
    • First observedhold_slot
    • First observedlist_bookings
    • First observedremove_listing
    • First observedsearch_listings
    • First observedship_address
    • First observedtrack_shipment

TDQS

B3.4/5.0

Scored across 22 tools

Disambiguation3/5

Most tools have distinct purposes, but there is some overlap in the commerce flow (e.g., create_cart, add_item, get_cart, delete_cart are clearly related but could be confused for similar operations). The Uniswap tools (check_token_approval, get_swap_quote) are distinct from marketplace tools, but within domains, boundaries are generally clear with descriptions aiding differentiation.

Naming Consistency4/5

Tool names follow a consistent verb_noun pattern throughout (e.g., add_item, create_cart, get_listing, remove_listing), with only minor deviations like 'ship_address' (which could be 'get_ship_address' for full consistency). The naming is predictable and readable across all tools.

Tool Count3/5

With 22 tools, the count is borderline high for a server covering commerce, marketplace, bookings, and Uniswap integration. It feels slightly heavy, as some tools might be consolidated (e.g., cart operations), but it's not extreme and remains manageable given the broad scope.

Completeness4/5

The server covers multiple domains well: commerce (cart CRUD, order creation, payment), marketplace (listing CRUD, search), bookings (slots, bookings), and Uniswap (approval, quotes). Minor gaps exist, such as no tool for updating listings or canceling bookings, but core workflows are supported and agents can work around these omissions.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Primary purpose is to maintain a self verifying ledger that requires no consesus. Additional features include support for evm compatible and other block chains.
    6
    13 npm
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MAP (Maraventano Agent Protocol). One MCP server with three subtractive parts โ€” Merchant Key (read any product URL into one CleanRead), Atlas (publish your own catalog by reading yourself), Provisions (wallet curriculum), Teacher, not butler: never signs, pays, or holds keys.
    23
    31 npm
    -