notes-box
by g-konstkd
mcp-snippetbox
Learning MCP: tiny notes server with five tools
Built for my own use; public in case it helps someone.
Highlights
Every tool carries a real docstring, so clients get descriptions
A missing note raises instead of returning the string 'not found'
Five tools: add / get / update / delete / list notes
Atomic saves (temp file + os.replace) behind a write lock
Notes path set by MCP_NOTES_FILE or --notes-file
Includes a Claude Desktop config snippet with absolute paths
Examples
# claude_desktop_config.json (use ABSOLUTE paths: Claude does not
# run from the repo directory, so a bare "server.py" is not found)
# {
# "mcpServers": {
# "notes-box": {
# "command": "python",
# "args": ["/abs/path/to/mcp-snippetbox/server.py"],
# "env": {"MCP_NOTES_FILE": "/abs/path/to/notes.json"}
# }
# }
# }
python server.py --helpInstall
pip install -r requirements.txtProject structure
├── .github/
│ ├── workflows/
│ │ └── ci.yml
│ └── pull_request_template.md
├── docs/
│ ├── configuration.md
│ ├── development.md
│ └── usage.md
├── examples/
│ └── quickstart.md
├── tests/
│ └── test_notes.py
├── .gitignore
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── SECURITY.md
├── requirements.txt
└── server.pyDevelopment
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
python -m pytest -qNotes
mostly stable, edge cases remain
License
MIT - see LICENSE.