Angle One market data and trading API integration
Critical gaps across all dimensions. Tool descriptions are minimal (10-30 chars), far below the 194-char baseline. The place_order tool has a dangerously vague 'order_params' object with no nested schema or constraints, LLMs cannot infer valid structure. No parameter descriptions for any tool. No output schemas documented. Error handling is generic exception strings with no recovery guidance. Credentials are hardcoded in config.py and passed via environment, but the server lacks permission gates, audit logging, and input validation. No tool annotations (readOnlyHint/destructiveHint) despite clear risk levels. The codebase shows HTTP transport but the MCP integration is incomplete, tool registration is inferred from method names rather than explicit schema definitions.
Get historical candlestick data for a symbol
Get current positions
Get user profile information
Get current market quote for a symbol
Place a new order
place_order accepts 'order_params' as a bare object with no nested schema, type constraints, or field descriptions. LLMs cannot infer valid structure (required fields, data types, enums). This invites hallucinated payloads and API failures.
No tool descriptions meet the 194-char baseline (actual: 10 - 30 chars). Descriptions lack WHAT the tool does, WHEN to use it, and prerequisites. LLMs cannot reliably select the right tool or understand dependencies.
No output schemas documented. LLMs do not know what fields to expect from responses, preventing downstream tool chaining and forcing agents to guess field names.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 34 | <=2025-11-25 | v2 |
Error handling returns generic exception strings ('Failed to get profile: {str(e)}') with no recovery guidance. LLMs cannot determine if errors are retryable, user-fixable, or fatal.
place_order (WRITE risk) lacks confirmation/dry-run support and has no permission gates. Agents can execute irreversible trades without safeguards or audit trails.