MCP server for MindTrain training platform providing tools for session management, question handling, knowledge domain management, and training analytics
The server defines 23 tools with reasonable naming conventions and generally clear descriptions, but has significant gaps in schema documentation and parameter descriptions. Most tools follow verb_noun naming (create_, get_, submit_, etc.), which is positive. However, critical input schema details are missing or incomplete for many tools, particularly around complex object parameters. Parameter descriptions exist but often lack constraint information (enums, ranges, formats). Output schemas are not documented at all. Error handling and recovery guidance are absent from descriptions.
Save and enable a previously previewed training domain after explicit user confirmation.
Save and enable a complete draft after explicit user confirmation.
Validate and save a candidate matching the issued generationProfile for its owning session only.
Create a MindTrain training session.
Discard a draft without changing active catalog data.
Finish a session and persist its summary.
Object and complex parameters lack detailed schema specification. Parameters like 'question' (create_candidate_question), 'changes' (revise_saved_question), 'context' and 'proposal' (preview_training_domain) are defined as type 'object' with only high-level descriptions. The actual required fields, nested structures, and field constraints are not documented. This forces LLMs to guess at the structure, leading to malformed requests.
Output schemas are completely undocumented. No tools provide descriptions of what fields are returned, their types, or structures. LLMs cannot plan downstream tool calls or extract data reliably. This violates the baseline that 100% of A+ tools document return types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
Get a training-domain preview, validation result and persistence diff.
Get all root knowledge points and descendants for one domain.
Get one knowledge point with children, relations, sources and coverage.
Get live daily progress, review and new-item counts, scheduler status, content inventory, and mastery classifications.
Get the next safe-to-display question or a structured generationProfile.
Read the full current content of an active question tied to its pending assignment for revision or conflict recovery.
Get due backlog and current new-item allowance.
Get a training-domain draft, validation, warnings and persistence diff.
List the authenticated user's training domains and catalog coverage.
Compatibility alias for preview_training_domain for local-reference clients.
Validate and save an immutable training-domain draft from local references or AI dialogue without changing active data.
Record a clarification, hint request, challenge or follow-up without consuming the question.
Reject an unanswered AI-generated question, physically delete it, restore its new-item allowance, and request a replacement next.
Discard a training-domain proposal without changing active data.
Create an immutable next version of an active saved question after explicit user approval.
Search knowledge points and return their domain and ancestor path.
Submit a formal choice answer and receive deterministic grading.
Missing enumeration constraints for string parameters that accept a limited set of values. 'schedulerProvider' (create_training_session) accepts 'weighted' and possibly others, but no enum is defined. 'eventType' (record_interaction) lists four options in description text only, not as formal enum. 'originType' (preview_training_domain) mentions two values but as free-form string. Enums must be machine-readable.
Error handling and recovery guidance absent from all tool descriptions. No tool explains what can go wrong, what the error means, or what to do next. For irreversible operations (reject_generated_question, delete, confirm_training_domain), there is no guidance on dry-run, confirmation, or rollback. This violates pattern:recovery-guide and pattern:confirmation-request.
No input validation constraints documented for numeric, string, or reference parameters. 'limit' in search_knowledge_topics says '1 to 100' in description, but no minLength/maxLength/enum/pattern is enforced in schema. 'domainId' and 'sessionId' are treated as generic strings with no validation that they are non-empty, valid UUIDs, or reference existing resources.
Parameter dependencies and conditional validity not documented. 'parentAttemptId' (create_candidate_question) is 'required when attemptType is follow_up', but this constraint is only mentioned in the parameter description as free text. No conditional schema (oneOf, if/then) or explicit warning in tool description. LLMs may omit parentAttemptId when it's required.
Destructive operations (reject_generated_question, confirm_training_domain, apply_knowledge_catalog_import) lack explicit confirmation or dry-run support. Pattern:confirmation-request recommends implementing a preview or confirm step for irreversible operations. Current descriptions do not indicate whether these are safe to retry or if they have idempotent guarantees.
Pagination parameters missing for list-like tools. search_knowledge_topics has 'cursor' and 'limit', which is correct, but get_knowledge_catalog_tree, get_learning_report, and get_scheduler_backlog do not describe pagination or result limits. Pattern:paginated-result requires offset/limit and total count or next_cursor for tools returning lists.