A Model Context Protocol (MCP) server for the Edmate Content Engine. Exposes intelligence and metrics as tools for AI Agents. Provides curriculum-aligned educational content generation and pipeline metrics.
This MCP server exposes 2 tools with basic structure but significant quality gaps. Tool naming follows verb-noun convention (generate_, get_), which is good. However, parameter descriptions are largely absent or minimal, input schemas lack detail (e.g., no descriptions for 'task_type' or 'json_mode'), and output schemas are completely undocumented. The generate_edmate_content tool accepts a 'prompt' parameter with no format guidance, and task_type enum values exist but lack descriptions explaining when to use extraction vs generation vs validation. Error handling is present (see _error_response method) but provides only generic error messages with no recovery guidance. No documentation of what fields are returned or how to chain outputs to other tools. The get_pipeline_metrics tool has an empty input schema with no parameters documented, and its output format is undocumented. Security considerations for LLM token injection via the 'prompt' parameter are not addressed. Overall structure is functional but falls short of production-grade agent tool standards.
Generate curriculum-aligned educational content using the modular Edmate router.
Retrieve real-time cost and token usage for the current session.
Parameter descriptions missing or incomplete. 'task_type' has enum values ['extraction', 'generation', 'validation'] but no description explaining when to use each. 'json_mode' has no description at all. LLMs cannot infer which task type to select without explicit guidance.
No output schema documentation. Both tools return text responses wrapped in content[].text but LLMs have no way to know: (1) what fields the response contains, (2) how to parse metrics output, (3) what IDs or references are returned for chaining. This forces agents to parse unstructured output and guess at downstream dependencies.
get_pipeline_metrics has empty inputSchema with no parameters. The description says 'real-time cost and token usage for the current session' but does not explain: (1) what 'session' means (per-request? per-connection?), (2) how to specify which pipeline to query, (3) whether results are aggregated or per-model. Without parameters, the tool is opaque.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 40 | 2026-07-28+ | v2 |
No error recovery guidance. The _error_response method returns generic error messages like 'Router Error: <str(e)>' with no actionable next steps. A 'Router Error: <KeyError: prompt>' tells the agent nothing about what went wrong or how to retry.
Prompt injection risk unaddressed. The 'prompt' parameter accepts free-form strings and is passed directly to self.router.generate_content() with no documented sanitization. LLMs can be tricked via prompt injection into passing malicious payloads that alter model behavior or exfiltrate data.
Tool descriptions lack WHEN/WHY context. 'Generate curriculum-aligned educational content using the modular Edmate router' does not explain: (1) what 'curriculum-aligned' means in practice, (2) when to call this vs a general LLM, (3) what educational domains it supports, (4) whether it's appropriate for K-12 vs higher ed. LLMs cannot disambiguate from similar tools.
Protocol version hardcoded to 2024-11-05 in initialize response. Current spec is 2026-07-28 (per this evaluation). Server claims an outdated protocol version, which may cause client compatibility issues or version negotiation failures.