Skip to main content

MCP server reference

devcoach implements the Model Context Protocol via the official TypeScript SDK, served over stdio.

The server exposes tools (actions), resources (read-only data), and a prompt (coaching instructions). Start it with npx -y devcoach mcp, or inspect it with:

npx @modelcontextprotocol/inspector npx -y devcoach mcp

Configuration

{ "mcpServers": { "devcoach": { "command": "npx", "args": ["-y", "devcoach", "mcp"] } } }

Claude Desktop config file: macOS ~/Library/Application Support/Claude/claude_desktop_config.json · Windows %APPDATA%\Claude\claude_desktop_config.json · Linux ~/.config/Claude/claude_desktop_config.json.

Tools (13)

ToolPurposeAnnotation
log_lessonSave a delivered lesson (auto-fills git context; elicits inline feedback)write
update_knowledgeAdjust a topic's confidence by a delta (clamped 0–10)write
get_lessonsQuery lesson history (period, category, level, git, starred, feedback, search, date range)read-only
star_lessonStar / unstar a lessonwrite
delete_lessonPermanently delete a lessondestructive
submit_feedbackRecord know / dont_know / clear; adjusts confidence ±1 (idempotent)write
add_topicAdd/update a topic, optionally in a groupwrite
remove_topicRemove a topic from the knowledge mapdestructive
add_groupCreate a knowledge groupwrite
remove_groupDelete a group (topics move to Other)destructive
update_settingsSet max_per_day (1–20) or min_gap_minutes (0–1440)write
open_uiLaunch the web dashboard in the backgroundopen-world
complete_onboardingSave the initial profile (topics + groups) and mark onboarding donedestructive

Each tool declares a title and read-only/destructive hints, validates input with Zod, returns typed structuredContent where applicable, and reports failures as { isError: true, … } with a recovery hint.

Resources (9)

devcoach://profile · settings · lessons/recent · stats · taught-topics · rate-limit · context · onboarding · lessons/{lesson_id} (templated). All return application/json and never throw — on error they return { "error": … }. Read taught-topics before selecting a lesson topic to avoid repetition; read rate-limit to decide whether to deliver.

Prompt

devcoach_instructions returns the full coaching instructions (assets/SKILL.md). MCP prompts are surfaced as user-invocable slash commands (Claude Code, Claude Desktop) — they are not auto-injected into context. Coaching is driven by the lesson-ready Stop hook, which carries a self-contained lesson directive, so no separate skill install is needed.

Data models

See configuration.md for the SQLite schema. The Lesson shape accepted by log_lesson (snake_case, validated by Zod):

{
"id": "uuid-or-random",
"timestamp": "2026-01-15T20:30:00Z", // ISO 8601; normalized to UTC, clamped to now
"topic_id": "typescript",
"categories": ["typescript", "performance"],
"title": "Promise.allSettled vs Promise.all",
"level": "mid", // junior | mid | senior
"summary": "…", // shown in the lesson card
"body": "…", // optional full markdown
"task_context": "…", // optional
"project": null, "repository": null, "branch": null,
"commit_hash": null, "folder": null, "repository_platform": null // auto-detected from git when omitted
}