FastAPI server that integrates MCP tools for Sketchfab 3D model search, learning style assessment quiz generation, and text-to-speech synthesis. Uses LangChain agents with Azure OpenAI to process queries and return structured responses.
Server has 3 tools with significant quality gaps. learning_style_quiz_generator has a detailed description (good) but lacks visible input schema validation in the code, only Pydantic model definition exists without explicit schema registration to MCP. The two math tools (add, multiply) have minimal descriptions (8-18 chars, below 20-char threshold) and are defined in a test file, not the main server. No tool annotations, error handling guidance, or output schema documentation. Parameters lack depth beyond type hints.
Add two numbers
This tool generates learning style assessment questions to determine a person's preferred learning style. Each question will have 4 options that correspond to different learning styles: - Option A: Visual learning style (learns through seeing) - Option B: Auditory learning style (learns through hearing) - Option C: Kinesthetic learning style (learns through doing) - Option D: Reading/Writing learning style (learns through reading/writing) The questions are designed to be situation-based rather than direct preference questions. Use this tool when: 1. You need to create a learning style assessment quiz 2. You want to help someone understand their learning preferences 3. You need to provide educational guidance based on learning styles The tool will return a list of questions, each with 4 options corresponding to different learning styles.
Multiply two numbers
learning_style_quiz_generator's input schema is defined as a Pydantic BaseModel (LearningStyleQuizInput) but not explicitly registered or exposed in the MCP tool definition. The args_schema field references the class, but there is no visible JSON Schema serialization or validation in the tool registration code.
No output schemas documented for any tool. learning_style_quiz_generator's _run method has no return type annotation or documented response structure. Agents cannot plan downstream calls or extract fields without knowing what the tool returns.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 36 | 2026-07-28+ | v2 |
No error handling or recovery guidance. The learning_style_quiz_generator's _run method has no try-catch, validation, or error messages. If the LLM call fails or returns invalid JSON, the agent receives no actionable error.
Math tools (add, multiply) are defined in test/server.py, not integrated into the main FastAPI app (main.py). They are not registered as MCP tools in the production server, only learning_style_quiz_generator is exposed via the router.