An MCP server that converts FastAPI endpoints into MCP tools and enables multi-turn conversations with Google Gemini, using function calling to invoke the FastAPI endpoints
Single tool 'multiply' with minimal, generic description and completely undocumented schema. Tool definition is auto-generated from OpenAPI spec via FastMCP.from_openapi(), making it inferred rather than explicitly registered. Input schema visible but lacks proper parameter-level descriptions. No output schema documented. No error handling guidance. No composition guidance for chaining with other tools. Server is fundamentally a wrapper around a trivial FastAPI endpoint with zero production-grade tooling patterns applied.
Multiply two numbers together
Tool definition inferred from OpenAPI spec auto-generation; not explicitly registered with MCP schema. Tool names, descriptions, and parameters are derived from FastAPI route metadata rather than intentionally designed for LLM interaction.
Description 'Multiply two numbers together' is under 20 characters (23 chars), generic, and provides zero context for when/why an LLM would call this tool. Lacks information about use cases, prerequisites, or relationships to other tools. Rubric hard cap: description score ≤40.
Input schema visible in code but parameters 'a' and 'b' have only inline descriptions ('First number to multiply', 'Second number to multiply'). No constraints documented: are negative numbers allowed? What is the valid range? Can they be integers or floats only? Rubric requires range, format, and constraint documentation in parameter descriptions.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 36 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 30 | - | v1 |
No output schema documented. Tool returns {a, b, result} but response structure is invisible to the MCP protocol, not registered in tool definition. LLM cannot infer what fields to expect or how to use the result in downstream calls.
No error handling. Code does not validate inputs, provide recovery guidance, or categorize errors as retryable/user-fixable. If multiply is called with non-numeric input, FastAPI returns a raw 422 error, LLM receives no actionable guidance.
Generic, single-purpose tool with no composition strategy. 'Multiply' does not chain naturally with other tools, no multi-step workflows suggested. No guidance on when to call it vs alternatives (if any exist). Lacks discovery helpers.
Tool name 'multiply' is a verb but not action-specific. Baseline naming guidance suggests clarity: 'multiply_numbers' or 'calculate_product' would be slightly more self-documenting. Current name is borderline acceptable but generic.