A .NET starter project for building Claude-integrated applications with MCP server support
Server has 4 tools with clear naming (verb_noun pattern) and reasonable descriptions. All tools have input schemas with type definitions. However, parameter descriptions are sparse or missing entirely, output schemas are not documented, and error handling lacks recovery guidance. The in-memory store is appropriate for a starter, but production readiness is limited by incomplete schema documentation and missing parameter constraints.
Create a new note with title and body. Title is required and must be 120 characters or fewer. Body is optional and must be 10,000 characters or fewer.
Retrieve all notes from the store, ordered by creation date descending
Retrieve a single note by its GUID identifier
Check the health status of the API
Output schemas not documented. LLMs cannot plan downstream calls or extract fields without knowing what get_all_notes, get_note_by_id, and create_note return.
Parameter descriptions missing or incomplete. 'id' in get_note_by_id has a description, but get_all_notes has no parameters documented, and create_note parameters lack constraint details (e.g., 'max 120 characters' is in tool description, not param description).
Error handling lacks recovery guidance. Validation errors (e.g., 'Title is required') are returned as HTTP 400 ValidationProblem, but no tool description explains what the LLM should do next (e.g., 'retry with a non-empty title').
health_check tool is low-value for an agent. It does not modify state or retrieve actionable data, it only confirms the server is running. Consider removing it or documenting when an LLM should call it.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
No pagination support on get_all_notes. If the note store grows, returning all notes in one response will bloat the context window. Add limit and offset parameters.