Inkdrop

by inkdropapp

16 stars
460 downloads
Not rated
GitHub

About

Integrates with Inkdrop's note-taking application to enable searching, reading, creating, and updating Markdown notes directly within conversations through seven specialized tools for managing notes, notebooks, and tags.

Details

Author
inkdropapp
Repository
inkdropapp/mcp-server
GitHub stars
16
Downloads
460
License
Apache License 2.0
Categories
Productivity, Other, API, Developer Tools, Design, File Management, AI, Search, Infrastructure, Frontend
Tags
#web

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Inkdrop
    Command (node, npx, python, etc.) npx
    Arguments
    • Argument 1 -y
    • Argument 2 @inkdropapp/mcp-server
    Environment
    • INKDROP_LOCAL_PASSWORD your-local-server-password
    • INKDROP_LOCAL_USERNAME your-local-server-username
    • INKDROP_LOCAL_SERVER_URL http://localhost:19840

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

1. Set up a local HTTP server

2. Add server config to Claude Desktop:
- MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "inkdrop": {
      "command": "npx",
      "args": ["-y", "@inkdropapp/mcp-server"],
      "env": {
        "INKDROP_LOCAL_SERVER_URL": "http://localhost:19840",
        "INKDROP_LOCAL_USERNAME": "your-local-server-username",
        "INKDROP_LOCAL_PASSWORD": "your-local-server-password"
      }
    }
  }
}

read-note

Retrieve the complete contents of the note by its ID from the database. Required inputs: noteId (string). Optional inputs: includeTemplate (boolean).

read-backlinks

Retrieve backlinks for a note — the notes that link to it. Required inputs: noteId (string).

search-notes

List all notes that contain a given keyword. Required inputs: keyword (string).

list-notes

List all notes with specified conditions. Required inputs: bookId (string). Optional inputs: tagIds (array), keyword (string), sort (string), descending (boolean).

create-note

Create a new note in the database. Required inputs: bookId (string), title (string), body (string). Optional inputs: status (string), tags (array).

update-note

Update an existing note in the database. Required inputs: _id (string), _rev (string). Optional inputs: bookId (string), title (string), body (string), status (string), tags (array).

patch-note

Update the body of an existing note by performing an exact string replacement. Required inputs: _id (string), _rev (string), old_string (string), new_string (string).

list-notebooks

Retrieve a list of all notebooks.

read-book

Retrieve a single notebook by its ID. Required inputs: bookId (string).

list-tags

Retrieve a list of all tags.

read-tag

Retrieve a single tag by its ID. Required inputs: tagId (string).

create-tag

Create a new tag in the database. Required inputs: name (string). Optional inputs: color (string).

update-tag

Update an existing tag in the database. Required inputs: _id (string), _rev (string), name (string). Optional inputs: color (string).

1. read-note: Retrieve the complete contents of the note by its ID from the database.
- Required inputs:
- noteId: The ID of the note to retrieve. It can be found as _id in the note docs. It always starts with note:.
- Optional inputs:
- includeTemplate: When true and the note has a sourceTemplateId, also fetch that template and embed its body (fill-out instructions and examples) as an extra text block. Default: false.
- Note: If the note was created from a template, the response includes a resource link to its source template, whose body holds the fill-out instructions and examples.
2. read-backlinks: Retrieve backlinks for a note — the notes that link to it.
- Required inputs:
- noteId: The ID of the note to find backlinks for. It always starts with note:.
- Note: Each result is returned as a resource link (inkdrop://note/<id>) pointing to the referring note. Backlinks are found by searching all note bodies for the note's link URI.
3. search-notes: List all notes that contain a given keyword.
- Required inputs:
- keyword: Keyword to search for.
- Note: Results include truncated note bodies (200 characters). Use read-note to get full content.
- Supports advanced search qualifiers like book:, tag:, status:, title:, etc.
4. list-notes: List all notes with specified conditions.
- Required inputs:
- bookId: The notebook ID. It always starts with 'book:'.
- Optional inputs:
- tagIds: An array of tag IDs to filter. Each starts with 'tag:'.
- keyword: Keyword to filter notes.
- sort: Sort field (updatedAt, createdAt, or title). Default: updatedAt.
- descending: Reverse the order of output. Default: true.
- Note: Results include truncated note bodies (200 characters). Use read-note to get full content.
5. create-note: Create a new note in the database.
- Required inputs:
- bookId: The notebook ID. Must start with 'book:' or be 'trash'.
- title: The note title.
- body: The content of the note in Markdown.
- Optional inputs:
- status: The note status (none, active, onHold, completed, dropped).
- tags: An array of tag IDs to assign to the note. Each must start with 'tag:'.
6. update-note: Update an existing note in the database. Only the fields you provide will be updated; omitted fields remain unchanged.
- Required inputs:
- _id: The note ID. Must start with 'note:'.
- _rev: The revision ID (CouchDB MVCC-token).
- Optional inputs:
- bookId: The notebook ID. Must start with 'book:' or be 'trash'.
- title: The note title.
- body: The content of the note in Markdown.
- status: The note status (none, active, onHold, completed, dropped).
- tags: An array of tag IDs to assign to the note. Each must start with 'tag:'.
7. patch-note: Update the body of an existing note by performing an exact string replacement. More efficient than update-note for small edits to large notes as it saves tokens. You must first read the note with read-note to get the current body.
- Required inputs:
- _id: The note ID. Must start with 'note:'.
- _rev: The revision ID (CouchDB MVCC-token).
- old_string: The exact text to find in the note body. Must match exactly one occurrence. Include enough surrounding context to ensure a unique match.
- new_string: The text to replace old_string with. Use an empty string to delete the matched text.
8. list-notebooks: Retrieve a list of all notebooks.
9. read-book: Retrieve a single notebook by its ID.
- Required inputs:
- bookId: The notebook ID. Must start with 'book:'.
10. list-tags: Retrieve a list of all tags.
11. read-tag: Retrieve a single tag by its ID.
- Required inputs:
- tagId: The tag ID. Must start with 'tag:'.
12. create-tag: Create a new tag in the database.
- Required inputs:
- name: The name of the tag.
- Optional inputs:
- color: The color type of the tag (default, red, orange, yellow, olive, green, teal, blue, violet, purple, pink, brown, grey, black). Default: default.
13. update-tag: Update an existing tag in the database.
- Required inputs:
- _id: The tag ID. Must start with 'tag:'.
- _rev: The revision ID (CouchDB MVCC-token).
- name: The name of the tag.
- Optional inputs:
- color: The color type of the tag. Default: default.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "inkdrop": {
            "env": {
                "INKDROP_LOCAL_PASSWORD": "your-local-server-password",
                "INKDROP_LOCAL_USERNAME": "your-local-server-username",
                "INKDROP_LOCAL_SERVER_URL": "http://localhost:19840"
            },
            "args": [
                "-y",
                "@inkdropapp/mcp-server"
            ],
            "command": "npx"
        }
    }
}

Linux

{
    "env": {
        "INKDROP_LOCAL_PASSWORD": "your-local-server-password",
        "INKDROP_LOCAL_USERNAME": "your-local-server-username",
        "INKDROP_LOCAL_SERVER_URL": "http://localhost:19840"
    },
    "args": [
        "-y",
        "@inkdropapp/mcp-server"
    ],
    "command": "npx"
}

Macos

{
    "env": {
        "INKDROP_LOCAL_PASSWORD": "your-local-server-password",
        "INKDROP_LOCAL_USERNAME": "your-local-server-username",
        "INKDROP_LOCAL_SERVER_URL": "http://localhost:19840"
    },
    "args": [
        "-y",
        "@inkdropapp/mcp-server"
    ],
    "command": "npx"
}

Windows

{
    "env": {
        "INKDROP_LOCAL_PASSWORD": "your-local-server-password",
        "INKDROP_LOCAL_USERNAME": "your-local-server-username",
        "INKDROP_LOCAL_SERVER_URL": "http://localhost:19840"
    },
    "args": [
        "/c",
        "npx",
        "-y",
        "@inkdropapp/mcp-server"
    ],
    "command": "cmd"
}

Inkdrop MCP Server

A Model Context Protocol server for the Inkdrop Local HTTP Server API.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.