FastAPI-based AI task server that exposes an MCP tool for text transformation (upper), integrates with OpenAI for Q&A, image generation, and platform-specific content generation, with JWT authentication and SQLite persistence.
Single tool 'upper' with minimal definition. Tool has a name and description, but the schema is trivial (single string parameter), and the tool serves no real purpose beyond demonstration. No error handling guidance, no composition support, and the description is extremely short (32 chars). This is a demo/stub server, not production-grade.
Return the text in uppercase (demo tool).
Tool description is too short (32 chars; baseline 194 chars for production tools). 'Return the text in uppercase (demo tool).' lacks context for LLM selection, missing WHEN to use it, and the '(demo tool)' annotation signals this is not production intent.
No error handling documentation. If the tool receives non-string input or fails, there is no guidance for the LLM on recovery (e.g., 'input must be a string'). Missing pattern: recovery-guide.
Tool naming is generic and non-verb-forward. 'upper' does not clearly convey intent. A verb-noun pattern like 'convert_to_uppercase' or 'uppercase_text' would be clearer for LLM tool selection.
Parameter description is minimal. The 'text' parameter has only 'The text to convert to uppercase', which assumes the LLM already knows what 'text' means. Missing format constraints, examples, or usage context.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 46 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 29 | - | v1 |
No output schema documented. The description states the tool 'returns the text in uppercase', but there is no formal schema definition showing the LLM what field names or structure to expect.
Tool serves as demo/stub only. The entire MCP server is minimal and intentionally underdeveloped. The mcp_client.py is incomplete (code ends mid-function), and the tool has no real integration with the FastAPI app. This is not production-ready.