Tiny local MCP notes server in Python: create, list, and search notes stored in a local JSON file.
A minimal, free and open-source Model Context Protocol (MCP) server in Python that gives any MCP-compatible AI assistant a persistent notebook: create notes, list them, and search them — stored in a plain local JSON file you own.
Built with the official mcp Python SDK (FastMCP). No database, no cloud, no accounts. Your notes never leave your machine.
| Tool | What it does |
|---|---|
create_note | Create a note with a title (required, ≤120 chars) and body (≤10,000 chars). Returns the saved record with id and timestamps. |
list_notes | List saved notes, newest first (configurable limit, 1–500). |
search_notes | Case-insensitive keyword search across titles and bodies. |
git clone <this-repo-url>
cd mcp-notes-server
pip install -r requirements.txt
python server.py
The server speaks MCP over stdio. Connect it from any MCP host — see the config examples below and in examples/.
Add to your claude_desktop_config.json (see examples/claude_desktop_config.example.json):
{
"mcpServers": {
"notes-server": {
"command": "python",
"args": ["/absolute/path/to/mcp-notes-server/server.py"]
}
}
}
See examples/mcp-client-config.generic.json — the same stdio command/args pattern works for most hosts.
notes.json (created automatically next to server.py) to see the raw storage — it's just JSON.notes.json file; saves are atomic (write to temp file, then replace).@mcp.tool() — the type annotations become the tool input schemas. The whole server is one readable file (~150 lines), meant to be copied and adapted.Run the smoke test (no MCP host needed):
python tests/smoke_test.py
Verified end-to-end over the real MCP protocol (stdio, official SDK v1.x) — tools listed, note created, searched, and listed: see tests/mcp_e2e_test.py and run it yourself after pip install -r requirements.txt. Note the requirements pin mcp<2: the 2.x SDK renamed FastMCP, and this code targets the v1 API.
This free server is one of three starters in the MCP Server Starter Templates pack — the full pack adds a read-only SQLite lookup server (with a tested SQL-injection guard: SELECT-only validation) and a web-summary server skeleton, plus client configs for all three, a testing checklist, and security notes for taking MCP servers toward production.
→ MCP Server Starter Templates (and more AI agent tools: AgentProof testing kits, LLM/RAG eval kits, verified datasets for agents): bradray2.gumroad.com
Free samples of the paid kits live in the companion repo, ai-agent-tools-free-samples.
MIT — see LICENSE. Use it, fork it, ship it.
Copyright (c) 2026 Brad Lucas.
This listing does not have a supported local package template. Use the maintainer’s documentation for its hosted endpoint, authentication, and client-specific setup. No install command has been inferred.
https://github.com/bradraylucas-eng/mcp-notes-server/releases/download/v1.0.0/mcp-notes-server.mcpbotherio.github.bradraylucas-eng/mcp-notes-server works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.