Topic 6: Module 5 milestone and interview questions
8 min read·22 Sept 2026
Project Milestone
After this module the notes-assistant repository contains a real, tested server package. New in this module are config.py, server.py, the tests/ folder, and the examples/m05_* scripts.
| Path | Status after Module 5 |
|---|---|
notes_assistant/store.py | Unchanged from Module 1: NoteStore, Note, SearchHit, the error classes, slugify, validate_note_id |
notes_assistant/config.py | New: Settings and load_settings() from NOTES_* environment variables |
notes_assistant/server.py | New: build_server(store), main(), SearchResult, NoteHit, CreatedNote; tools search_notes and create_note, resources notes://index and notes://{note_id}, prompt summarise_topic |
tests/test_store.py | New: 20 unit tests of NoteStore |
tests/test_server.py | New: 11 in-memory client tests, each run in both eras (22 results, 2 of them a strict xfail) |
tests/test_reindex.py, tests/test_stdio_smoke.py | New: progress and cancellation tests, and one real stdio launch |
examples/m05_*.py, examples/m05_inspector.json | New: the scripts from this module, including the reindex server and the lab |
What you can now do with it:
python -m notes_assistant.serverserves the notes over stdio;NOTES_TRANSPORT=streamable-http NOTES_PORT=8050 python -m notes_assistant.serverserves them athttp://127.0.0.1:8050/mcp.- Legacy (2025-11-25) and current (2026-07-28) clients both work against the same process.
python -m pytest -qruns 45 tests in about 3 seconds.npx @modelcontextprotocol/inspector --config examples/m05_inspector.json --server notesopens the server in the Inspector.
One known issue is carried forward on purpose and pinned by a strict xfail: read_note raises ValueError, so a missing note reaches clients as -32603 with a generic message instead of -32602 "not found".