MCP server that exposes RAG-based financial report search capabilities with filtering support
The server implements 2 tools with auto-generated schemas from Python function signatures. Both tools have names starting with action verbs (rag_*, get_*) and include descriptions extracted from docstrings. However, critical gaps reduce quality: parameter descriptions are minimal/generic (filter_by lacks any description of its structure or valid keys), no output schemas are documented, no error handling guidance is present, and no validation of inputs is shown. The MCPFunctionTool utility demonstrates reasonable schema generation infrastructure but the actual tool definitions lack the depth needed for confident LLM invocation.
Returns a list of all available filters and values for the finance RAG system.
Searches the ACR Tech finance RAG system for reports based on a query and filters.
filter_by parameter has no description explaining its structure, valid keys, or expected format. The rubric requires EVERY parameter to have a non-empty, actionable description. LLMs cannot infer what filters are available or how to structure them.
No output schema documented for either tool. The rubric explicitly requires: 'Document the output schema. LLMs need to know what fields to expect so they can plan downstream tool calls.' Without knowing what rag_finance_report_search returns (is it a list of objects? A single report? What fields does each report contain?), LLMs cannot chain tools effectively.
No error handling or recovery guidance present. If a search returns no results, or if invalid filters are passed, there is no documented error response or guidance for the LLM on what to do next (retry, refine query, list available filters, etc.).
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 62 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 37 | - | v1 |
rag_finance_report_search description does not clarify what 'filters' are available, how they differ from the 'query', or when to use get_finance_report_filters first. This creates ambiguity about tool selection and usage order.
Auto-generated schemas via MCPFunctionTool may lack specificity. The filter_by parameter is typed as 'object' with additionalProperties=true, but no enum constraints or required sub-keys are enforced. This allows LLMs to hallucinate arbitrary filter keys.