Skip to content

MCP Protocol ​

Overview ​

Open Note implements the Model Context Protocol (MCP), allowing AI tools such as Cursor and Claude Desktop to access your notes directly.

Installation ​

See the MCP Installation Guide

Configuration ​

Cursor ​

Create .cursorrules in the project root or use global configuration:

json
{
  "mcpServers": {
    "open-note": {
      "command": "python",
      "args": ["-m", "open_note_mcp.server"],
    }
  }
}

Claude Desktop ​

Edit the configuration file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

json
{
  "mcpServers": {
    "open-note": {
      "command": "python",
      "args": ["-m", "open_note_mcp.server"]
    }
  }
}

OpenCode ​

OpenCode uses its own plugin installation method. Even if you already use opennote in other frameworks, install it separately for OpenCode.

  • Tell OpenCode:

    Fetch and follow instructions from https://github.com/The-Flash-7/open-note/refs/heads/main/docs/mcp/MCP_INSTALL.md

Available Tools ​

search_notes ​

Search notes.

json
{
  "name": "search_notes",
  "description": "Search notes",
  "inputSchema": {
    "type": "object",
    "properties": {
      "query": {
        "type": "string",
        "description": "Search keywords"
      },
      "category": {
        "type": "string",
        "description": "Category name (optional)"
      },
      "tags": {
        "type": "array",
        "items": {"type": "string"},
        "description": "Tag list (optional)"
      }
    },
    "required": ["query"]
  }
}

get_note ​

Get the content of a single note.

json
{
  "name": "get_note",
  "description": "Get note content",
  "inputSchema": {
    "type": "object",
    "properties": {
      "note_id": {
        "type": "string",
        "description": "Note ID"
      }
    },
    "required": ["note_id"]
  }
}

create_note ​

Create a new note.

json
{
  "name": "create_note",
  "description": "Create a new note",
  "inputSchema": {
    "type": "object",
    "properties": {
      "title": {
        "type": "string",
        "description": "Note title"
      },
      "content": {
        "type": "string",
        "description": "Note content"
      },
      "category": {
        "type": "string",
        "description": "Category name (optional)"
      },
      "tags": {
        "type": "array",
        "items": {"type": "string"},
        "description": "Tag list (optional)"
      }
    },
    "required": ["title", "content"]
  }
}

update_note ​

Update a note.

json
{
  "name": "update_note",
  "description": "Update a note",
  "inputSchema": {
    "type": "object",
    "properties": {
      "note_id": {
        "type": "string",
        "description": "Note ID"
      },
      "title": {
        "type": "string",
        "description": "New title (optional)"
      },
      "content": {
        "type": "string",
        "description": "New content (optional)"
      }
    },
    "required": ["note_id"]
  }
}

list_categories ​

Get the category list.

list_tags ​

Get the tag list.

Example Conversations ​

Search Notes ​

User: Help me find notes about React

AI: (calls search_notes) I found 3 notes about React...

Create a Note ​

User: Help me create meeting notes titled "Product Review"

AI: (calls create_note) Created the note "Product Review"

Summarize a Note ​

User: Summarize my "Project Plan" note

AI: (calls get_note + summarize) The main content of this note is...

Security Notes ​

  • The MCP Server runs locally only
  • API Keys are not exposed
  • Database access is protected by file system permissions

Troubleshooting ​

Q: Server failed to start ​

Make sure the open-note-mcp package is installed:

bash
pip install open-note-mcp

Q: Tool calls do not respond ​

Check log output and confirm that the database path is correct.