MCP Notes Server
Click on "Install 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., "@MCP Notes ServerCreate a note about my project ideas"
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.
MCP Notes Server
A Model Context Protocol (MCP) server for managing notes with full CRUD operations, tagging, and search capabilities.
Features
✅ Create, read, update, and delete notes
✅ Tag-based organization and filtering
✅ Full-text search across notes
✅ Persistent storage (JSON file-based)
✅ Resource exposure via MCP protocol
✅ Compatible with Claude Desktop
Setup Instructions
Prerequisites
Python 3.12 or higher
pip package manager
Installation
Clone or download this repository
cd "d:\Projects\AI Engineering course\MCP Server"Install dependencies
pip install -r requirements.txtConfigure Claude Desktop
Edit your Claude Desktop configuration file:
Windows:
%APPDATA%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
Add the notes server configuration:
{ "mcpServers": { "notes": { "command": "python", "args": [ "d:\\Projects\\AI Engineering course\\MCP Server\\server.py" ] } } }Note: Adjust the path to match your actual installation directory.
Restart Claude Desktop
After updating the configuration, completely quit and restart Claude Desktop for the changes to take effect.
Available Tools
1. create_note
Creates a new note with content and optional metadata.
Parameters:
content(required): The content of the notetitle(optional): Title for the note (defaults to first line of content)tags(optional): Array of tags for categorization
Example:
{
"content": "Remember to buy groceries tomorrow",
"title": "Shopping Reminder",
"tags": ["personal", "todo"]
}2. list_notes
Lists all notes with optional filtering and pagination.
Parameters:
tag(optional): Filter notes by specific taglimit(optional): Maximum number of notes to return
Example:
{
"tag": "work",
"limit": 5
}3. get_note
Retrieves the full content of a specific note.
Parameters:
note_id(required): The ID of the note to retrieve
Example:
{
"note_id": "1"
}4. update_note
Updates an existing note's content, title, or tags.
Parameters:
note_id(required): The ID of the note to updatecontent(optional): New content for the notetitle(optional): New title for the notetags(optional): New list of tags
Example:
{
"note_id": "1",
"title": "Updated Title",
"tags": ["work", "important"]
}5. delete_note
Deletes a note by ID.
Parameters:
note_id(required): The ID of the note to delete
Example:
{
"note_id": "1"
}6. search_notes
Searches notes by keyword in title or content.
Parameters:
query(required): Search keyword or phrasetag(optional): Optional tag filter to narrow search
Example:
{
"query": "meeting",
"tag": "work"
}Available Resources
1. note://{note_id}
Provides direct access to individual notes via URI.
Example: note://1
2. notes://list
Provides a JSON list of all notes with metadata.
Example: notes://list
Example Dialogues
Example 1: Creating and Managing a Todo List
User: Create a note for my grocery shopping list with items: milk, eggs, bread, and cheese.
Claude: I'll create a shopping list note for you.
[Uses create_note tool with content and tags]
Response: ✓ Note created successfully!
ID: 1
Title: Grocery Shopping List
Tags: shopping, personal
User: Show me all my notes.
Claude: Let me list all your notes.
[Uses list_notes tool]
Response: Found 1 note(s):
ID: 1 | Grocery Shopping List [shopping, personal] Items needed: milk, eggs, bread, and cheese
User: Add apples to my shopping list.
Claude: I'll update your shopping list to include apples.
[Uses update_note tool with note_id: "1"]
Response: ✓ Note 1 updated successfully! Updated fields: content
Example 2: Work Notes and Search
User: Create a note about tomorrow's team meeting at 10 AM. Tag it as work and important.
Claude: I'll create a note for your team meeting.
[Uses create_note tool]
Response: ✓ Note created successfully!
ID: 2
Title: Team Meeting - Tomorrow at 10 AM
Tags: work, important
User: Create another note: "Review Q4 budget proposal before Friday meeting" with work and finance tags.
Claude: Creating your budget review note.
[Uses create_note tool]
Response: ✓ Note created successfully!
ID: 3
Title: Review Q4 budget proposal before Friday meeting
Tags: work, finance
User: Find all my notes about meetings.
Claude: I'll search for notes containing "meeting".
[Uses search_notes tool with query: "meeting"]
Response: Found 2 note(s) matching 'meeting':
ID: 2 | Team Meeting - Tomorrow at 10 AM [work, important] Discuss project updates and timeline...
ID: 3 | Review Q4 budget proposal before Friday meeting [work, finance] Review Q4 budget proposal before Friday meeting
Example 3: Organizing with Tags
User: Show me all my work-related notes.
Claude: I'll list all notes tagged with "work".
[Uses list_notes tool with tag: "work"]
Response: Found 2 note(s):
ID: 2 | Team Meeting - Tomorrow at 10 AM [work, important] Discuss project updates and timeline...
ID: 3 | Review Q4 budget proposal before Friday meeting [work, finance] Review Q4 budget proposal before Friday meeting
User: Delete the meeting note, I don't need it anymore.
Claude: I'll delete note ID 2.
[Uses delete_note tool with note_id: "2"]
Response: ✓ Note 'Team Meeting - Tomorrow at 10 AM' (ID: 2) deleted successfully.
User: What notes do I still have?
Claude: Let me show you your remaining notes.
[Uses list_notes tool]
Response: Found 2 note(s):
ID: 1 | Grocery Shopping List [shopping, personal] Items needed: milk, eggs, bread, cheese, and apples
ID: 3 | Review Q4 budget proposal before Friday meeting [work, finance] Review Q4 budget proposal before Friday meeting
Known Limitations
Single-User Design: The server stores notes in a local JSON file without user authentication or multi-user support.
No Concurrent Access Protection: Multiple simultaneous operations may lead to race conditions. The server is designed for single-client (Claude Desktop) usage.
Limited Storage Capacity: Uses JSON file storage which may become slow with thousands of notes. Not suitable for large-scale note databases.
No Attachment Support: Currently only supports text content. Images, files, or rich media are not supported.
Basic Search: Search is case-insensitive substring matching. No support for regex, fuzzy matching, or advanced query syntax.
No Note History: Updates overwrite existing content without maintaining version history or undo capability.
No Export/Import: Currently no built-in functionality to export notes to other formats (Markdown, PDF, etc.) or import from external sources.
Tags Are Case-Sensitive: Tags like "Work" and "work" are treated as different tags.
No Nested Tags or Hierarchies: Flat tag structure only; no support for tag hierarchies or nested categories.
Storage File Location: The
notes_storage.jsonfile is created in the same directory asserver.py. Make sure this directory is writable.
Troubleshooting
Server Not Showing Up in Claude Desktop
Verify the path in
claude_desktop_config.jsonis correct and uses absolute pathsCheck that Python 3.12+ is in your PATH
Restart Claude Desktop completely (quit and reopen)
Check Claude Desktop logs for errors
Notes Not Persisting
Ensure the server directory is writable
Check if
notes_storage.jsonis being created in the correct locationVerify no permission errors in the console output
Tool Calls Failing
Verify all required parameters are provided
Check note IDs are valid strings (not integers)
Ensure the MCP package is properly installed
Technical Details
Protocol: Model Context Protocol (MCP)
Transport: stdio (standard input/output)
Storage: JSON file (
notes_storage.json)Python Version: 3.12+
Dependencies:
mcp(official MCP Python SDK)
License
This project is provided as-is for educational purposes.
Contributing
Feel free to submit issues or pull requests to improve the server functionality.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/AndriiOzemko/MCP-Server-Test'
If you have feedback or need assistance with the MCP directory API, please join our Discord server