MCP server for interacting with Coinbase trading APIs, enabling portfolio management, product discovery, order history retrieval, and order creation.
Server has 5 tools with complete schemas and descriptions. Naming follows verb_noun pattern (get*, create*). Descriptions are present and adequate (avg ~120 chars), meeting the 10-1024 char baseline. All parameters have type definitions and descriptions. However, several patterns are underutilized: no tool annotations (readOnlyHint/destructiveHint), limited error guidance, no pagination support for list operations, and parameter descriptions lack format/constraint details. The createCoinbaseOrder tool lacks confirmation/dry-run pattern for an irreversible operation. Output schemas are well-structured but could include more chaining IDs for multi-step workflows.
Creates a market order on Coinbase for the given product, size and side.
Returns a list of orders for the given product IDs, start date, and end date. If no arguments are provided, it will return the last 10 orders.
Get a detailed breakdown of a specific Coinbase portfolio, including total balance and individual spot positions.
List all Coinbase portfolios. Returns a list of portfolios including their name, UUID, and type.
Search for Coinbase trading products(only spot) by name or ID. Returns a list of available assets like 'BTC-USD', including metadata like min/max order sizes and price increments.
createCoinbaseOrder lacks confirmation/dry-run pattern for irreversible operation. No validation that quote_size or base_size is provided before execution, and no pre-execution confirmation step to prevent accidental trades.
No tool annotations (readOnlyHint/destructiveHint/idempotentHint) declared. The risk field is present in metadata but not exposed in tool schema. LLMs cannot distinguish safe reads from destructive writes without explicit annotations.
getCoinbaseOrdersHistory lacks pagination parameters (limit, offset, cursor). Description states 'last 10 orders' as default but no way for LLM to request more or iterate. Large result sets could exhaust context window.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2025-06-18+ | v2 |
Parameter descriptions lack format constraints. 'portfolio_uuid' and 'product_ids' lack format hints (UUID format, valid product ID patterns). 'start_date' and 'end_date' mention RFC3339 but don't specify timezone handling or validation behavior.
Error handling in createCoinbaseOrder is minimal. ToolError raised for missing size params, but no guidance on valid ranges, minimum order sizes, or recovery steps. LLM cannot self-correct without additional context.