MCP server for StoneX Client API integration, providing tools to access accounts, balances, positions, activity, documents, and other financial data
20 tools with consistent naming (verb_noun pattern: get_, list_, search_) and basic descriptions. All tools are READ_ONLY, reducing complexity. However, descriptions are uniformly terse (10-80 chars, well below the 194-char baseline for A+ tools), lacking context on WHEN to use each tool or dependencies between them. Input schemas use Zod with type declarations and descriptions, but many tools lack parameters entirely (no pagination, no filtering beyond required IDs). Output schemas are undocumented, LLMs cannot predict response structure. Error handling is generic (catch-all errorResult) with no recovery guidance. No tool annotations (readOnlyHint, idempotentHint) despite all being read-only.
Get delivery elections for a specific account
List available account election / delivery options
Get feature flags for a specific account
Get account activity / transactions for a date range
List available activity type view filters
Get monthly account balances (POST /v1/Client/balances)
Descriptions uniformly terse (10-80 chars vs. 194-char baseline). Missing WHEN to use each tool, dependencies, and prerequisites. E.g., 'List promotions available to the authenticated StoneX user' does not explain when to call this vs. other discovery tools or what the response structure is.
No output schemas documented. LLMs cannot predict response structure (fields, types, nesting). This forces agents to guess what data is available and risks failed downstream tool calls. E.g., stonex_get_summary returns 'account summary including cash, market values, P&L, and current positions' but no schema for these fields.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 64 | 2026-07-28+ | v2 |
List documents for an account and document type (statements, confirms, etc.)
List feature flags / items enabled for the user
Get open orders and funds for an account
Get monthly performance history for an account
Get current positions for an account
Get previous-period summary totals across accounts
Get projected income / yield for an account
List promotions available to the authenticated StoneX user
Get recent activity across accounts
Get account summary including cash, market values, P&L, and current positions
Get the authenticated user's language and timezone preferences
Get the authenticated StoneX user profile and feature tree
List StoneX Client accounts for the authenticated user
Search ACH instructions for an account
No pagination support. Tools like stonex_get_activity, stonex_get_documents, and stonex_get_recent_activity accept optional 'size' or 'count' but lack 'page', 'offset', or 'next_cursor' parameters. Large result sets will blow context windows without pagination.
Generic error handling. All tools use catch-all errorResult(error) with no recovery guidance. Errors do not categorize as retryable, user-fixable, or fatal. LLMs receive no actionable next steps (e.g., 'User not found. Try search_users() first.').
No tool annotations. All 20 tools are read-only and idempotent, but lack readOnlyHint or idempotentHint annotations. This forces LLMs to infer safety from descriptions, increasing reasoning overhead and error risk.