MCP server that provides company financial report details by querying a REST API backend running on port 5000
Single tool with minimal definition quality. The tool 'company_details' has a basic description and schema, but lacks depth in parameter descriptions, error handling guidance, and output documentation. No evidence of LLM-optimized descriptions or actionable error recovery patterns. The implementation converts all output to string via str(data), which defeats structured output benefits. Tool names do not follow action-verb conventions (should be 'get_company_details' not 'company_details'). This server exhibits poor adherence to the 54 Agentic Tool Patterns and falls in the 'D' tier (50-59 range, pulled down by STDIO transport cap).
Retrieves company financial report details for a specified company, year, and period from the REST API backend
Tool name lacks action verb prefix. Should be 'get_company_details' not 'company_details'.
Parameter descriptions are minimal and lack constraints. 'period' should specify allowed enum values (Annually, Quarterly, Monthly) in the description or as a formal enum constraint, not rely on title-casing in implementation.
Output schema is not documented. Tool returns str(data) which loses structure. No specification of what fields the response contains (balance_sheet, income_statement, etc.), forcing LLMs to parse unstructured text.
No error handling or recovery guidance. If the REST API returns 404 or invalid period, no actionable error message is produced. LLM receives either an exception or invalid JSON with no context for self-correction.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 42 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 26 | - | v1 |
Tool description does not explain WHEN to use it vs alternatives, or WHAT it returns. Description is 95 characters but lacks detail on output structure and typical use cases.
No parameter validation or dependency documentation. 'year' is an integer with no range constraints (can LLM pass -1 or 9999?). No note that 'period' must match a specific company's available periods.