A FastAPI-based MCP server providing text processing tools including summarization, grammar checking, and keyword extraction
This server has critical definition quality gaps. All three tools lack proper MCP tool registration with explicit schemas. Tool names are generic verbs without clear action semantics (summarize, grammar_check, keywords). Descriptions are present but minimal (34-72 chars, below the 194-char baseline). Input parameters lack type definitions in a formal schema structure, only inferred from Pydantic models. No output schema is documented. The routing mechanism (string matching on prompt text) is fragile and not MCP-compliant. Tools are not registered via MCP's tool registration protocol; they exist only as FastAPI endpoints. This is a custom HTTP wrapper, not a proper MCP server.
Checks and corrects grammar errors in text using a sequence-to-sequence transformer model
Extracts the top 5 most frequent keywords from text after filtering common stopwords
Summarizes text using a transformer-based summarization pipeline
No explicit MCP tool registration. Tools are inferred from FastAPI routes and string-matching logic, not declared via MCP's tools/list protocol. Cannot see formal JSON Schema definitions for any tool.
Input schemas are missing or not visible. Pydantic models exist (MCPRequest with 'prompt' and 'context' fields) but are not exposed as JSON Schema in tool definitions.
Tool names lack action verbs and are ambiguous. 'summarize' could mean summarize-and-save or summarize-and-return. 'grammar_check' does not clarify if it returns corrections or just flags. 'keywords' is a noun, not a verb. Should be 'extract_keywords', 'correct_grammar', 'generate_summary'.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 22 | 2026-07-28+ | v2 |
Descriptions are too short (34 - 72 chars vs. 194-char baseline). 'Summarizes text using a transformer-based summarization pipeline' lacks WHEN to use it, what it returns, and prerequisites. No guidance on input length limits or output format.
No output schema documented. LLMs cannot plan downstream calls or extract structured data. Tools return a single 'result' string field with no type hints or field descriptions.