A starter and reference for building full stack web applications with MCP server integration for workshop content indexing and retrieval
epic-agent demonstrates solid tool definition quality with consistently present descriptions, well-structured schemas, and proper naming conventions. All 5 tools use action-verb naming (list_, retrieve_, search_) and have detailed descriptions explaining purpose, parameters, and return behavior. Input schemas are fully specified with type information and parameter descriptions. Key strengths: pagination support across tools, clear non-deterministic vs deterministic modes documented, output truncation handled transparently. Weaknesses: output schemas not formally documented (inferred from descriptions), no explicit error handling guidance, missing tool annotations (readOnlyHint/destructiveHint), and no confirmation patterns despite READ_ONLY categorization.
Discover valid workshop slugs and coverage metadata. Defaults to fetching all pages; set { all: false } to paginate manually with { limit, cursor }.
Get code-change focused context showing diffs between steps. Optionally focus on specific filename or symbol. May truncate; use 'cursor' for pagination.
Fetch indexed context for quiz authoring and learning. Returns deterministic results for explicit scopes; { random: true } is non-deterministic. May truncate payloads; check 'truncated' and use 'cursor' for pagination.
Retrieve quiz protocol instructions for quizzing learners. Follow the protocol to ask one question at a time and solidify understanding of workshop material.
Find where topics are taught using semantic search (when Vectorize + AI configured) or keyword fallback. Scope searches with workshop, exerciseNumber, and stepNumber. Check 'mode', 'vectorSearchAvailable', and 'warnings' for search capabilities.
Output schemas not formally documented in tool definitions. Descriptions mention truncation, pagination, and return fields (e.g., 'truncated', 'cursor'), but no explicit JSON Schema for response payloads visible in registration code.
Tool annotations (readOnlyHint, destructiveHint, idempotentHint) not present in tool registration, despite all tools being marked READ_ONLY in metadata. MCP spec 2026-07-28 expects explicit tool annotations for LLM safety.
No error handling guidance in tool descriptions. Descriptions state tools 'may truncate' or have conditional behavior (e.g., 'vectorSearchAvailable'), but do not guide LLM on what to do if truncation occurs, if vector search is unavailable, or if parameters are invalid.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | B | 71 | 2025-06-18+ | v2 |
| 2026-04-07 | F | 21 | - | v1 |
Parameter 'random' in retrieve_learning_context creates non-deterministic behavior but does not warn LLM about idempotency implications. Agents retrying on failure may get different results.
search_topic_context has conditional logic on parameters (exerciseNumber + stepNumber require workshop) documented in description, but no formal enum constraints or parameter interdependencies declared in schema.