MCP Server exposing local AI toolbox (22 AI APIs) to Claude/Cursor agents
All 17 tools share an identical, severely underdeveloped schema. Each tool accepts only a generic 'payload' parameter (type: object, description: 'JSON body for the toolbox endpoint') with no nested field definitions, type constraints, or validation guidance. Tool descriptions are present but minimal (10 - 50 chars), offering no actionable context for LLM selection. No output schemas are documented. The design treats the MCP server as a thin HTTP proxy rather than a well-defined tool interface, violating core patterns around parameter clarity, schema completeness, and LLM-optimized descriptions.
Run a batch of toolbox operations in one request.
Summarize multiple texts at once.
Chat with the AI model with optional conversation history.
Classify text into predefined or provided categories.
Compare two texts or items and highlight differences/similarities.
Extract structured data (entities, fields) from unstructured text.
Compute a textual diff between two texts.
All 17 tools use identical, generic schema: single 'payload' parameter (type: object) with no nested field definitions, constraints, or validation. LLMs cannot infer what fields payload should contain, leading to hallucinated or malformed requests.
Tool descriptions are minimal (10 - 50 chars) and lack actionable context. E.g., 'Summarize a text into a concise summary.' does not explain when to use this vs. batch_summarize, what input format is expected, or what the output structure is.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 35 | 2026-07-28+ | v2 |
Generate a FAQ (questions and answers) from a text.
Extract keywords from a text.
Generate structured meeting minutes from a transcript.
Paraphrase/rewrite a text in a different style or tone.
Query the RAG knowledge base with a natural language question.
Upload a document into the RAG knowledge base.
Review text or code and provide improvement suggestions.
Analyze the sentiment of a text.
Summarize a text into a concise summary.
Translate text into a target language.
No output schemas documented. LLMs cannot plan downstream tool calls or extract structured data from responses. Responses are opaque JSON blobs.
No error handling guidance. When the toolbox returns HTTP 400+ or a network error, the response is a generic error dict with no recovery hints. LLMs cannot self-correct or retry intelligently.
Tool names lack verb-noun clarity. 'batch' and 'batch_summarize' are ambiguous, does 'batch' run arbitrary operations or only summarization? 'chat' is vague, does it create a conversation, send a message, or retrieve history?