MCP server exposing 500+ financial analysis tools from the Finance Toolkit library, including fundamental analysis, technical indicators, risk metrics, performance calculations, econometrics, and instrument discovery.
The Finance Toolkit MCP server defines 4 discovery/utility tools with reasonable naming conventions and descriptions. All tools follow verb_noun patterns (search_*, list_*) and include helpful descriptions guiding users on when to call them. However, several tools lack detailed input parameter descriptions, output schemas are not explicitly documented, and error handling guidance is minimal. The tools are read-only and composition-aware (search_categories calls mention list_metrics_by_category as a follow-up), but descriptions fall short of LLM-optimization standards. Average tool description length is ~100-150 chars, below the 194-char baseline for A+ tools. Parameter descriptions are present but terse; none of the tools exceed 25 words in parameter documentation.
List every available metric/tool within a category.
List all available metric categories and how many tools each contains. Use this first to understand what is available, then call ``list_metrics_by_category`` with a specific category name.
Search for financial instruments by ticker, name, ISIN, CIK, or other identifiers.
Search across all metrics by keyword with typo tolerance. Supports minor typos and common financial abbreviations. Tokens shorter than four characters bypass fuzzy matching and require an exact substring hit.
Output schemas not documented. Tool descriptions mention what they return (e.g., 'List all available metric categories') but do not specify the structure of the response. LLMs cannot plan downstream calls without knowing what fields to expect.
Parameter descriptions are minimal. 'category' and 'query' parameters have 1-2 sentence descriptions, below the ~72-char baseline for A+ tools. Descriptions lack explicit guidance on expected format, valid ranges, or failure modes.
search_metrics description mentions 'typo tolerance' and 'fuzzy matching' but does not explain the threshold, or what 'four characters' means in practice. LLMs cannot reason about when fuzzy matching applies without explicit constraints.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | B | 71 | <=2025-11-25 | v2 |
No error handling or recovery guidance documented. Tools do not describe failure modes (e.g., 'Category not found') or how LLMs should respond. Raises risk of agents getting stuck on ambiguous failures.
search_instruments 'query' parameter description is vague: 'Search query for instrument lookup by name, ISIN, CIK, or other identifier.' Does not specify required format, length, or precedence (does 'ticker' take priority over 'name'?). LLMs may pass malformed inputs.
No pagination guidance in tool definitions. If search_metrics or search_instruments return large result sets, tools do not document result limits, offset/cursor parameters, or how to handle partial results. Risk of context window exhaustion.