Futures position sizing and P&L calculator MCP server
Futures Calc MCP demonstrates solid fundamentals: all 4 tools have clear verb-noun naming (get_, calculate_), descriptions between 80-180 chars, and complete Zod schemas with typed parameters. Input schemas are well-structured with descriptions for every parameter. However, output schemas are not formally documented, responses are free-text markdown strings rather than structured objects. Error handling is minimal (only unknown symbol checks). No tool annotations (readOnlyHint, idempotentHint) despite all tools being read-only. Parameter descriptions lack format constraints (e.g., 'risk_pct' should specify range 0-100). Missing output documentation forces LLMs to parse unstructured text.
Calculate profit or loss on a futures trade given entry, exit, number of contracts, and direction.
Calculate how many futures contracts to trade based on account size, risk percentage, and stop loss distance.
Calculate risk/reward ratio and required win rate for a trade setup.
Get specifications for a futures contract including tick size, tick value, point value, and margin requirements.
Output schemas not documented. All tools return free-text markdown strings in content[].text rather than structured JSON objects. LLMs must parse unstructured text, increasing errors and token waste.
Parameter constraints missing. 'risk_pct' lacks range (0-100), 'stop_ticks' and 'contracts' lack min/max bounds. Descriptions should state 'risk_pct: 0-100 (e.g., 1 for 1%)' and 'stop_ticks: positive integer (e.g., 10)'.
No tool annotations. All 4 tools are read-only and idempotent, but lack readOnlyHint and idempotentHint annotations. This prevents agents from reasoning about safety and retry behavior.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 62 | 2026-07-28+ | v2 |
Minimal error handling. Only checks for unknown symbols; does not validate numeric ranges, provide recovery guidance, or categorize errors as retryable. Error messages lack actionable next steps.
No pagination or result limits. While current tools return single objects, if extended to list contracts or historical trades, results could grow unbounded. Add limit/offset parameters and document max result size.