MCP server for AletaIndex — financial narrative intelligence for AI agents
The AletaIndex MCP server defines 2 tools with clear action verbs and reasonable descriptions. Both tools have complete input schemas with type information and detailed parameter descriptions. The naming follows verb_noun conventions ('get_narratives', 'get_portfolio_risk'). However, output schemas are not documented, the code shows @mcp.tool() decorators but does not explicitly declare return types or response structures. Error handling is comprehensive with detailed, actionable error messages for validation failures and API errors. The server demonstrates good input validation (ticker format, date parsing, holdings parsing) with specific error recovery guidance. Main gaps: no tool annotations (readOnlyHint, destructiveHint, idempotentHint), output schemas not formally documented, and no pagination support documented despite potential for large narrative datasets.
Get financial narrative intelligence for one or more stocks. Returns structured narrative data: persistent story threads (global narratives), daily article clusters, individual articles, and sentiment scores. Use this to understand what stories are driving a stock and how sentiment is evolving.
Analyze narrative risk across a portfolio of stocks. Groups narratives across all holdings by macro theme (e.g. "AI Regulation", "Interest Rate Sensitivity") and identifies which stories create concentrated narrative exposure across multiple positions simultaneously.
Output schemas not documented. Tools return dict but do not declare the structure, field types, or nested object schemas. LLMs cannot reliably plan downstream calls or extract required data from responses.
No tool annotations present. Tools are READ_ONLY (confirmed in metadata) but lack readOnlyHint tool annotation. This prevents agents from optimizing execution and understanding retry safety.
Potential large result sets (narratives, articles, sentiment data) with no pagination support visible in schema. get_narratives supports date ranges (7+ days) that could return hundreds of articles, but no limit/offset or cursor parameters documented.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 74 | 2026-07-28+ | v2 |
API key injection relies on environment variable or context var. While context var (_request_api_key) supports per-request keys via middleware, this is not standard MCP. No documented way for clients to pass API key through MCP protocol.