MCP Starter Server — teaches Tools, Resources, and Prompts via a simple notes app.
mcp-starter is a teaching example with basic tool definitions. All three tools have explicit schemas and descriptions, but descriptions are minimal (10-30 chars), parameter descriptions lack detail, and output schemas are not documented. No error handling guidance, no parameter constraints (enums), and no indication of which tools modify state. Naming is clear (verb_noun pattern), but the server lacks production-grade polish. Suitable for learning; not for production use.
Save a new note with a title and body.
Delete a note by its numeric ID.
Return all note IDs and titles.
Tool descriptions are too brief (<30 chars). LLMs cannot determine when to select each tool or what distinguishes them. 'Save a new note' lacks context on when to use add_note vs other operations.
No output schema documented. Callers cannot predict the structure of responses (e.g., does list_notes return an array or a formatted string?). LLMs must infer structure from text responses.
No error handling guidance. If delete_note receives an invalid ID, the response is 'No note with id #X', but LLMs are not told whether to retry, ask the user, or move on. No recovery path.
Destructive tool (delete_note) has no confirmation or dry-run option. Agents can permanently delete notes without a safety gate. No idempotent hint or destructiveHint annotation.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 46 | 2026-07-28+ | v2 |
Parameter descriptions are missing or trivial. 'Short title' and 'Note content' do not explain constraints (length limits, character restrictions, required format). 'Note ID to delete' lacks guidance on how to obtain valid IDs.