MCP server for placing stock buy and sell orders via Zerodha Kite Connect API
Both tools have minimal descriptions (10-13 chars, well below the 50-200 char baseline for A+ tools) and lack critical context. Parameters have type definitions and basic descriptions, but no enums, constraints, or error guidance. No output schema documented. No error handling or recovery guidance. Tool names follow verb_noun pattern (positive), but descriptions fail to explain WHEN to use each tool, prerequisites, or that these are destructive operations. Missing security context around credentials and API key exposure in source code.
Buy a stock
Sell a stock
Descriptions critically short (10-13 chars). 'Buy a stock' and 'Sell a stock' lack context on WHEN to use, prerequisites, or that these are irreversible financial operations. Baseline for A+ tools is 50-200 chars.
No output schema documented. LLMs cannot plan downstream calls or extract structured data. Both tools return generic text responses without field definitions.
API credentials (apiKey, accessToken) hardcoded in source code (trade.ts). Secrets must never appear in tool parameters OR source code. Use environment variables or vault injection.
No error handling or recovery guidance. placeOrder() catches errors but only logs to console. LLMs receive no actionable error messages to guide retry or fallback logic.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 39 | 2026-07-28+ | v2 |
No input validation. Parameters accept any string/number without constraints. Missing enums for stock symbols, min/max for quantity, or format validation. LLMs can pass invalid values.