minimal-mcp
README.md
# minimal mcp server
A single file MCP server backed by an in memory todo list. It touches all
three MCP primitives (tools, resources, prompts) plus elicitation, in about
250 lines.
## Architecture
The list lives in memory only. Nothing is written to disk, so every restart
starts fresh with two seeded todos.
Three tools let Claude add a todo, mark one done, or delete one. Deleting is
the only action that pauses mid call and asks you to confirm first, since it
can't be undone; the other two just run.
Two resources expose the same data as read only content instead of actions.
One returns the whole list as a markdown checklist. The other takes an id
through a URI template and returns just that one item, converting the id from
text to a number itself since URI segments always arrive as strings.
One prompt, `plan_my_day`, bundles the full list with an instruction asking
Claude to pick the three most important undone items. Triggering it attaches
the resource and sends the request in a single click instead of doing both by
hand.
## Run it
```bash
uv sync
uv run python smoke_test.py # drives the server as a real client, 13 checks
uv run mcp dev todo_server.py # opens the MCP Inspector
```
## Connect it to a host
```bash
claude mcp add todos -- uv --directory "<path to this repo>" run python todo_server.py
```TDQS
A4.2/5.0
Scored across 3 tools
Disambiguation5/5
Each tool targets a distinct action on todos: adding, completing, and removing. There is no overlap or ambiguity between them.
Naming Consistency5/5
All tool names follow a consistent verb_noun pattern: add_todo, complete_todo, remove_todo. This makes the tool set predictable and easy to navigate.
Tool Count5/5
With only 3 tools, the set is appropriately scoped for a minimal todo server. Each tool is essential and there is no unnecessary complexity.
Completeness4/5
The tools cover create (add), update (complete), and delete (remove) operations. Reading is handled via a resource (todos://all), but there is no dedicated update for task text; still, the core lifecycle is covered for a minimal todo server.
Maintenance
ActivitySlowing
ResponsivenessNo issues