Model Context Protocol (MCP) server for the Alpaca Markets API — exposes all Trading, Market Data, Broker, and AuthX endpoints to AI agents
Critical gaps across all dimensions. Tool names lack clear action verbs (alpaca_getAccount vs get_account); descriptions are minimal (10-20 chars, well below 50-200 char baseline); input schemas present but parameters lack descriptions entirely. No output schemas documented. No error handling guidance. Tool definitions appear generated from OpenAPI specs without MCP-specific refinement. This is a code-generated server that bypassed human review for LLM usability.
Cancel an order
Get account information
Get all open positions
Get all orders
Get order by order ID
Get market news
Place a new order
Get latest quote for a symbol
Parameter descriptions completely missing. All 9 tools have input schemas with properties but zero descriptions for any parameter (symbol, qty, side, type, time_in_force, order_id). LLMs cannot infer parameter meaning from names alone.
Tool descriptions are trivial (10-20 chars). 'Get account information', 'Get all orders', 'Get market news' provide no context for when to use each tool vs alternatives, no prerequisites, no return value hints. Baseline is 50-200 chars.
No output schemas documented. Tools return data but LLMs have no visibility into response structure (fields, types, pagination). Agents cannot plan downstream calls or extract required IDs.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 34 | 2025-06-18+ | v2 |
Get latest trade for a symbol
Naming convention inconsistent and verbose. 'alpaca_getAccount' vs 'alpaca_getAllOrders' vs 'alpaca_stockLatestTradeSingle', mixed camelCase/snake_case, inconsistent prefixes, no clear verb-noun pattern. LLMs struggle to parse intent from names.
No error handling guidance. Tools declare risk levels (READ_ONLY, WRITE, REVERSIBLE) but provide no recovery hints. If alpaca_postOrder fails, LLM has no guidance on whether to retry, ask user, or abort.