get_curriculum
View certification curriculum details including domains, task statements, and current mastery levels to track exam preparation progress.
Instructions
View the full certification curriculum with domains, task statements, and your current mastery for each.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Implementation Reference
- src/tools/get-curriculum.ts:9-32 (handler)The handler function for the 'get_curriculum' tool, which fetches the curriculum and user mastery levels to generate a formatted string response.
server.tool( 'get_curriculum', 'View the full certification curriculum with domains, task statements, and your current mastery for each.', {}, async () => { const userId = userConfig.userId; ensureUser(db, userId); const curriculum = loadCurriculum(); const mastery = getAllMastery(db, userId); const lines: string[] = ['═══ CERTIFICATION CURRICULUM ═══', '']; for (const domain of curriculum.domains) { lines.push(`## Domain ${domain.id}: ${domain.title} (${domain.weight}%)`); lines.push(''); for (const ts of domain.taskStatements) { const m = mastery.find(x => x.taskStatement === ts.id); const level = m ? m.masteryLevel : 'unassessed'; const acc = m ? `${m.accuracyPercent}%` : '—'; lines.push(` ${ts.id} [${level.toUpperCase()}] ${ts.title} (${acc})`); } lines.push(''); } return { content: [{ type: 'text' as const, text: lines.join('\n') }] }; } - src/tools/get-curriculum.ts:8-34 (registration)The registration function that defines the 'get_curriculum' tool on the McpServer.
export function registerGetCurriculum(server: McpServer, db: Database.Database, userConfig: UserConfig): void { server.tool( 'get_curriculum', 'View the full certification curriculum with domains, task statements, and your current mastery for each.', {}, async () => { const userId = userConfig.userId; ensureUser(db, userId); const curriculum = loadCurriculum(); const mastery = getAllMastery(db, userId); const lines: string[] = ['═══ CERTIFICATION CURRICULUM ═══', '']; for (const domain of curriculum.domains) { lines.push(`## Domain ${domain.id}: ${domain.title} (${domain.weight}%)`); lines.push(''); for (const ts of domain.taskStatements) { const m = mastery.find(x => x.taskStatement === ts.id); const level = m ? m.masteryLevel : 'unassessed'; const acc = m ? `${m.accuracyPercent}%` : '—'; lines.push(` ${ts.id} [${level.toUpperCase()}] ${ts.title} (${acc})`); } lines.push(''); } return { content: [{ type: 'text' as const, text: lines.join('\n') }] }; } ); }