notes-mcp-server-l16
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@notes-mcp-server-l16Add a note 'Finish the project report' with tags work, urgent"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Lesson 16 — Notes MCP Server
A Model Context Protocol (MCP) server that gives Claude a persistent personal notebook. Notes are stored on disk as JSON, so they survive restarts and are shared across every tool and resource — no stubbed responses.
Stack: Python 3.10+ · official
mcpSDK (FastMCP) · stdio transportTheme: Notes (recommended option)
Tools
Tool | Arguments | Required? | What it does |
|
|
| Create a note (optionally tagged) |
|
| required | Case-insensitive full-text search over text + tags |
|
| optional | List all notes, or only those with a given tag |
|
| required | Delete a note by id |
(Satisfies the rubric: ≥2 tools, one with a required-only arg, one with an optional arg.)
Related MCP server: Knowledge Base MCP Server
Resources
Resource URI | What it returns |
| All notes as a JSON array |
| Computed stats: total count, tag frequencies, most-recent note |
| A single note by id (templated resource) |
Storage
Notes live in a JSON file, default ~/.notes_mcp/notes.json. Override with the
NOTES_DB_PATH environment variable (set in the Claude Desktop config below).
Setup
1. Install the dependency
# from this folder, using the course venv (or any Python 3.10+ env)
pip install "mcp[cli]"2. (Optional) try it locally with the MCP Inspector
mcp dev server.pyThis opens a local web inspector where you can call the tools and read the resources without Claude Desktop — handy for verifying everything works.
3. Connect to Claude Desktop
Install Claude Desktop from https://claude.ai/download
Open its config file (Claude Desktop → Settings → Developer → Edit Config, or directly at
~/Library/Application Support/Claude/claude_desktop_config.jsonon macOS).Merge in the contents of
claude_desktop_config.json. Adjust the three absolute paths to match your machine:command→ your Python interpreter (the one wheremcpis installed)args[0]→ the absolute path toserver.pyenv.NOTES_DB_PATH→ where you want the notes file
Fully quit and reopen Claude Desktop. The
notesserver should appear under the tools (🔌 / hammer icon) in the chat input.
Example dialogs
1 — Add notes (required + optional args) 👤 Add a note "Buy oat milk and coffee beans" tagged shopping and groceries. 🤖 (calls
add_note(text="Buy oat milk and coffee beans", tags=["shopping","groceries"])) Saved note #1. Tags: shopping, groceries. 👤 Also note "Read the MCP spec" — no tags. 🤖 (callsadd_note(text="Read the MCP spec")) Saved note #2.
2 — Search & filter 👤 Which of my notes mention coffee? 🤖 (calls
search_notes(query="coffee")) 1 match for 'coffee': #1 Buy oat milk and coffee beans [tags: shopping, groceries] 👤 Show me everything tagged shopping. 🤖 (callslist_notes(tag="shopping")) … lists note #1.
3 — Resource + cleanup 👤 Give me a summary of my notebook. 🤖 (reads the
notes://statsresource) You have 2 notes; tags: shopping (1), groceries (1); most recent is "Read the MCP spec". 👤 Delete the shopping note. 🤖 (callsdelete_note(note_id=1)) Deleted note #1.
(See examples/ for real screenshots of these in Claude Desktop.)
Known limitations
Single-user, local only. One JSON file, no auth, no multi-user support. Concurrent writes from multiple server instances could race (last-write-wins); fine for a single Claude Desktop client.
No full-text index.
search_notesis a linear substring scan — perfectly fast for hundreds/thousands of notes, not meant for millions.No edit/update tool. You can add, search, list, and delete; editing means delete + re-add. (Easy to extend.)
Plain substring search, not semantic — "groceries" won't match "food" unless that word is present.
stdio transport only. Designed to be launched by Claude Desktop; not exposed as a network service.
This server cannot be deployed
Maintenance
Related MCP Connectors
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
MCP-native notes and memory for ChatGPT, Claude, and other AI tools.
Google Keep-style notes app with an MCP server for AI agents to read/write notes.
- mcpOAuthai.butlerbrain
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Related MCP Servers
- AlicenseBqualityDmaintenanceA simple server implementing the Model Context Protocol (MCP) that exposes personal tools like note-taking for compatible MCP clients or agents.21,140 npmMIT
- AlicenseNot gradedqualityDmaintenanceA zero-dependency MCP server that provides a persistent personal knowledge base for Claude using local JSON file storage. It enables users to manage notes through tools for adding, searching, and indexing content built entirely with Node.js built-ins.11 npm1MIT
- FlicenseBqualityDmaintenanceA simple server for saving, listing, and searching notes persisted to a local JSON file. It enables users to manage their personal notes using natural language via the Model Context Protocol.3-
- AlicenseNot gradedqualityDmaintenanceA simple memory storage server for Claude using the Model Context Protocol (MCP), enabling Claude to store and retrieve text memories across conversations.21 npmMIT