MCP Note-Taking Server

MCP Note-Taking Server

Enables structured note-taking with markdown support, dynamic tagging system, advanced search capabilities, and markdown export functionality through natural language conversations in Claude Desktop.

Category
访问服务器

README

MCP Note-Taking Server

A Model Context Protocol (MCP) server for managing personal notes with structured tagging and markdown support. This server integrates with Claude Desktop to provide seamless note-taking capabilities during AI conversations.

Features

  • Structured Tagging: Controlled vocabulary for categories, types, priorities, and topics with dynamic schema management
  • Markdown Support: Write rich notes with markdown formatting
  • Advanced Search: Find notes using tag filters, title search, and date range filtering
  • Export Capabilities: Export individual notes or entire collections to markdown files
  • Dynamic Schema: Add new tags to any dimension programmatically
  • JSON Storage: Simple file-based persistence with atomic writes
  • MCP Integration: Works natively with Claude Desktop via stdio transport

Installation

Prerequisites

  • Python 3.10 or higher (required by MCP SDK)
  • Claude Desktop application

Check your Python version:

python3 --version

If you have Python 3.9 or older, install a newer version:

  • macOS: brew install python@3.11 (requires Homebrew)
  • Alternative: Download from python.org

Setup

  1. Clone or download this repository

  2. Install dependencies:

    # If you installed Python 3.11 via Homebrew, use:
    python3.11 -m pip install -r requirements.txt
    
    # Or use whichever Python 3.10+ you have installed
    
  3. Configure Claude Desktop:

    Edit your Claude Desktop configuration file:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    Add the following configuration:

    {
      "mcpServers": {
        "notes": {
          "command": "python3.11",
          "args": ["/absolute/path/to/MCPNotes/server.py"]
        }
      }
    }
    

    Important:

    • Replace python3.11 with your Python 3.10+ command (use which python3.11 to verify)
    • Replace /absolute/path/to/MCPNotes/server.py with the actual path to your server.py file
  4. Restart Claude Desktop to load the server

  5. Verify installation: Open Claude Desktop and ask: "What tools do you have available?" You should see the note-taking tools listed.

Data Model

Note Structure

Each note contains:

  • id: Unique UUID
  • title: Note title
  • content: Markdown-formatted content
  • tags: Structured tags (category, type, priority, topics)
  • created: ISO-8601 timestamp
  • updated: ISO-8601 timestamp

Tag Schema

The default tag schema includes:

  • category (required, exactly one): work, personal, learning
  • type (required, exactly one): project, idea, reference, todo, note
  • priority (required, exactly one): active, soon, someday, eventually, maybe, not-actionable
  • topics (optional, zero or more): mcp, ai, coding, design

You can dynamically add new tags to any dimension using the add_tags_to_schema tool, or manually edit notes.json.

Available Tools

1. get_tag_schema

Get the complete tag schema showing all valid tags.

Example: "Show me the tag schema"

2. create_note

Create a new note with validated tags.

Example: "Create a note titled 'MCP Server Ideas' with content 'Build a notes server using MCP', category: learning, type: project, priority: active, topics: mcp, coding"

3. update_note

Update an existing note (partial updates supported).

Example: "Update note [id] and change the priority to 'soon'"

4. delete_note

Delete a note by ID.

Example: "Delete note [id]"

5. read_note

Read the full content of a specific note.

Example: "Show me note [id]"

6. find_notes_by_tags

Search notes using tag filtering, title search, and date filters (AND logic across all filters, OR within topics).

Parameters:

  • Tag filters: category, type, priority, topics
  • Title search: title_contains (case-insensitive substring match)
  • Date filters: created_after, created_before, updated_after, updated_before (ISO-8601 timestamps)

Examples:

  • "Find all notes with category 'work' and priority 'active'"
  • "Find all notes about mcp or ai topics"
  • "Find notes with 'MCP' in the title"
  • "Find notes created after 2025-01-01"
  • "Show me notes updated in the last week"
  • "Show me all notes" (no filters = return all)

7. list_tags

List all tags currently in use with counts.

Example: "What tags am I using in my notes?"

8. add_tags_to_schema

Add new tags to a schema dimension dynamically.

Parameters:

  • dimension: One of category, type, priority, or topics
  • tags: Array of tag values to add

Examples:

  • "Add a new category called 'research'"
  • "Add 'urgent' and 'backlog' to the priority dimension"
  • "Add topics: python, javascript, rust"

9. export_note_to_markdown

Export a single note to a markdown file.

Parameters:

  • id: Note UUID to export
  • output_path: Optional custom output file path (auto-generated if not provided)

Examples:

  • "Export note [id] to markdown"
  • "Export this note to /Users/me/Desktop/note.md"

10. export_all_notes_to_markdown

Export all notes to markdown files in a directory.

Parameters:

  • output_dir: Optional output directory path (defaults to exported_notes/)

Examples:

  • "Export all my notes to markdown"
  • "Export all notes to /Users/me/Desktop/my_notes"

Usage Examples

Here are some natural ways to interact with your notes in Claude Desktop:

Creating notes:

  • "I want to take a note about the MCP protocol I'm learning"
  • "Create a note for my project idea"

Finding notes:

  • "Show me all my active work projects"
  • "What learning notes do I have?"
  • "Find notes about ai or coding"
  • "Find notes with 'Python' in the title"
  • "Show me notes I created this week"
  • "Find notes updated after January 1st"

Managing notes:

  • "Change the priority of note [id] to 'soon'"
  • "Update the content of my MCP note"
  • "Delete that old note"

Organizing:

  • "What tags am I using?"
  • "Show me the tag schema"
  • "List all my active todos"
  • "Add a new category called 'health'"
  • "Add 'python' and 'rust' to my topics"

Exporting:

  • "Export all my notes to markdown"
  • "Export note [id] to a markdown file"
  • "Export all notes to my Desktop"

File Structure

mcp-notes/
├── notes.json          # Data storage (auto-created)
├── server.py           # Main MCP server
├── README.md           # This file
└── requirements.txt    # Python dependencies

Data Storage

  • All notes are stored in notes.json in the same directory as server.py
  • The file is automatically created on first run with the default schema
  • Atomic writes prevent data corruption
  • All data persists across server restarts

Troubleshooting

Server not appearing in Claude Desktop:

  • Verify the path in claude_desktop_config.json is absolute and correct
  • Check that Python is in your PATH
  • Restart Claude Desktop completely

Tag validation errors:

  • Use get_tag_schema to see valid tags
  • Ensure required tags (category, type, priority) are provided
  • Check that all tags match the schema exactly (case-sensitive)

Notes not persisting:

  • Verify notes.json exists and is writable
  • Check file permissions on the directory

Future Enhancements

Potential improvements for future versions:

  • Full-text search within note content (search across markdown)
  • Import existing markdown files as notes
  • SQLite backend for better performance with large note collections
  • Note linking and backlinks
  • Note archiving/soft delete
  • Tag aliases and synonyms
  • Bulk operations (bulk update, bulk export with filters)
  • Note templates

License

GPL-3.0 License - feel free to modify and extend this server for your needs.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选