NotePilot
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., "@NotePilot create a note titled 'Meeting notes' with key decisions"
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.
NotePilot (Notes Assistant AI Chat App)
Turn thoughts into structured knowledge..!
A minimal Notes application built on the Model-Context-Protocol (MCP). A Python MCP server exposes note management tools over stdio; an async client connects Claude AI to those tools so you can create, search, and manage notes through a natural-language chat interface.
Overview
You ──► Claude AI (Anthropic) ──► MCP Client ──► MCP Server ──► SQLite
(tool calls) (stdio) (FastMCP) (notes.db)Claude receives a set of note-management tools from the MCP server. When you ask it to "create a note about X" or "find notes mentioning Y", it invokes the appropriate tool, gets the result, and responds conversationally.
Related MCP server: n8n-mcp
Tech Stack
Layer | Technology |
Language | Python 3.12+ |
Package manager | |
MCP framework | mcp[cli] (FastMCP) |
AI / LLM | Anthropic SDK (AsyncAnthropic) |
Database | SQLite via sqlite-utils |
CLI formatting | |
Config | python-dotenv |
Prerequisites
Python 3.12+
uv installed
Configuration
Create a .env file in the project root:
ANTHROPIC_API_KEY="sk-ant-..."
CLAUDE_MODEL="claude-haiku-4-5-20251001"Installation
# Clone the repo
git clone https://github.com/chaitanya-jadhav11/notes-mcp
cd notes-mcp
# Install dependencies
uv syncUsage
# Start the interactive chat client
uv run -m client.clientYou can then chat naturally with Claude. Examples:
You: Create a note titled "Shopping list" with milk, eggs, and bread.
You: Show me all my notes.
You: Search for notes about bread.
You: Update the shopping list to add butter.
You: Delete the shopping list note.To inspect or develop the MCP server interactively:
uv run mcp dev server/server.pyProject Structure
notes-mcp/
├── .env # API key and model config (create this)
├── pyproject.toml # Project metadata and dependencies
├── uv.lock # Pinned dependency lock file
├── notes.db # SQLite database (auto-created on first run)
│
├── server/
│ ├── server.py # FastMCP server — defines the 8 note tools
│ └── db.py # SQLite CRUD layer (UUID keys, ISO timestamps)
│
└── client/
├── client.py # MCPClient class + interactive REPL loop
└── claude_client.py # Anthropic API wrapper — manages conversation
# history, tool-call loops, and prompt cachingAvailable MCP Tools
The server exposes the following tools to Claude:
Tool | Description |
| List all notes (id + title) |
| Create a note with a title and body |
| Fetch a single note by UUID |
| Find notes by exact or partial title match |
| Full-text search across note bodies |
| Update a note's title and/or body |
| Delete a note by UUID |
| Delete all notes matching a title |
App Screenshot

Anthropic course certificate

Available Tools
8 toolscreate_noteC
Create a new note with title and body
Inputs: body (required), title (required).
delete_note_by_idC
Delete a note using its ID
Inputs: note_id (required).
delete_notes_by_titleC
Delete all notes matching a given title
Inputs: title (required).
get_note_by_idA
Retrieve a single note using its unique ID
Inputs: note_id (required).
get_notes_by_titleB
Get notes by title (exact or partial match)
Inputs: title (required), exact.
list_notesA
List all notes
Inputs: no named parameters.
search_notesD
Search notes
Inputs: query (required).
update_noteB
Update note title and/or body using note ID
Inputs: note_id (required), body, title.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 8 tools
Tools are mostly distinct, but search_notes and get_notes_by_title may overlap in functionality since search could also target titles. However, descriptions help differentiate: search is general, get_by_title is explicit. Overall clear boundaries.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., list_notes, create_note, delete_notes_by_title). Prepositions like 'by' are used uniformly where needed.
8 tools is well-scoped for a note management server. Covers all CRUD operations plus search, with no redundancy. The number feels complete without being excessive.
Covers create, read (by ID, by title, list all), update, delete, and search. Minor gap: no way to retrieve notes by other attributes like date, but sufficient for basic note-taking.
Maintenance
Related MCP Connectors
Google Keep-style notes app with an MCP server for AI agents to read/write notes.
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA Python-based MCP server that allows users to create, read, and manage digital sticky notes with Claude integration for AI-powered note summarization.-
- FlicenseNot gradedqualityDmaintenanceA Python-based MCP server adapted from the n8n_agent project that implements a note storage and summarization system. It enables users to create, retrieve, and summarize notes through the Model Context Protocol.-
- AlicenseAqualityDmaintenanceA beginner-friendly MCP server for managing personal notes. Enables Claude to create, list, read, search, update, and delete notes saved as Markdown files.6MIT
- FlicenseBqualityDmaintenanceA Python-based MCP server for Claude Desktop that enables you to save, append, read, and list local text notes, including appending Claude's responses.5-