Skip to main content
Glama
inkdropapp

Inkdrop MCP Server

Official
by inkdropapp

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
INKDROP_LOCAL_PASSWORDYesPassword for the Inkdrop Local HTTP Server
INKDROP_LOCAL_USERNAMEYesUsername for the Inkdrop Local HTTP Server
INKDROP_LOCAL_SERVER_URLYesURL for the Inkdrop Local HTTP Serverhttp://localhost:19840

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{
  "listChanged": true
}
resources
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
read-noteA

Retrieve the complete contents of the note by its ID from the database. A note created from a template has a sourceTemplateId; when present, the response includes a resource link to that source template, whose body holds the fill-out instructions and examples. Read the template (or pass includeTemplate: true) before completing the note.

read-backlinksA

Retrieve backlinks for a note — the notes that link to it. 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.

search-notesA

List all notes that contain a given keyword. The result does not include entire note bodies as they are truncated in 200 characters. You have to retrieve the full note content by calling read-note. Here are tips to specify keywords effectively:

Use special qualifiers to narrow down results

You can use special qualifiers to get more accurate results. See the qualifiers and their usage examples:

  • book book:Blog: Searches for notes in the 'Blog' notebook. book:"Desktop App": Searches for notes in the 'Desktop App' notebook.

  • bookId bookId:kGlLniaV: Searches for notes in the notebook ID 'book:kGlLniaV'.

  • tag tag:JavaScript: Searches for all notes having the 'JavaScript' tag. Read more about tags.

  • status status:onHold: Searches for all notes with the 'On hold' status. Read more about statuses.

  • title title:"JavaScript setTimeout": Searches for the note with the specified title.

  • body body:KEYWORD: Searches for a specific word in all notes. Equivalent to a global search.

Combine qualifiers

You can combine the filter qualifiers to refine data even more.

Find notes that contain the word 'Hello' and have the 'Issue' tag.

Hello tag:Issue

Find notes that contain the word 'Typescript,' have the 'Contribution' tag, and the 'Completed' status

Typescript tag:Contribution status:Completed

Search for text with spaces

To find the text that includes spaces, put the text into the double quotation marks ("):

"database associations"

To exclude text from the search results or ignore a specific qualifier, put the minus sign (-) before it. You can also combine the exclusions. See the examples:

  • -book:Backend "closure functions": Ignores the 'Backend' notebook while searching for the 'closure functions' phrase.

  • -tag:JavaScript: Ignores all notes having the 'JavaScript' tag.

  • -book:Typescript tag:work "Data types": Ignores the 'Typescript' notebook and the 'work' tag while searching for the 'Data types' phrase.

  • -status:dropped title:"Sprint 10.0" debounce: Ignores notes with the 'Dropped' status while searching for the 'debounce' word in the note with the 'Sprint 10.0' title.

  • -"Phrase to ignore" "in the rest of a sentence": Ignores the 'Phrase to ignore' part while searching for 'in the rest of a sentence'.

Note that you can't specify excluding modifiers only without including conditions.

WARNING: Make sure to enter a text to search for after the exclusion modifier.

  • ✅ Will work -book:Backend "closure functions"

  • ⛔️ Won't work -book:Backend. There's no query. Inkdrop doesn't understand what to search for.

list-notesB

List all notes with specified conditions. The result does not include entire note bodies as they are truncated in 200 characters. You have to retrieve the full note content by calling read-note.

create-noteC

Create a new note in the database

update-noteB

Update the existing note in the database. Only the fields you provide will be updated; omitted fields remain unchanged.

patch-noteA

Update the body of the existing note by performing an exact string replacement. Use this tool to make partial updates to the note body without replacing the entire content. You must first read the note with read-note to get the current body, then specify the exact substring to replace.

list-tagsA

Retrieve a list of all tags

read-tagC

Retrieve a single tag

create-tagB

Create a new tag in the database

update-tagA

Update the existing tag in the database. Only the fields you provide will be updated; omitted fields remain unchanged, so you do not need to read the tag first. Call list-tags or read-tag to find the tag ID.

list-notebooksA

Retrieve a list of all notebooks

read-bookB

Retrieve a single book

create-bookA

Create a new notebook in the database. To create a nested notebook, pass the parent notebook ID as parentBookId. Call list-notebooks first to find it.

update-bookA

Update the existing notebook in the database. Only the fields you provide will be updated; omitted fields remain unchanged, so you do not need to read the notebook first. Call list-notebooks or read-book to find the notebook ID.

create-fileA

Create a new attachment file in the database from a local image file or from base64 image data. Returns the Markdown to embed the attachment in a note body. Prefer filePath over data: it keeps the image bytes out of the conversation.

read-fileA

Retrieve an attachment file by its ID. Returns the file metadata, and the image itself when it is a PNG, JPEG or GIF. Pass outputPath to write the attachment to disk instead — required to get at SVG, HEIC and HEIF attachments, which cannot be displayed inline.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

B3.3/5.0

Scored across 17 tools

Disambiguation4/5

Most tools have clear, distinct purposes, but search-notes and list-notes overlap somewhat as both can list notes with conditions, and read-backlinks is slightly ambiguous in its scope. Overall, the descriptions are detailed enough to prevent serious misselection.

Naming Consistency4/5

Tool names follow a consistent hyphenated verb-noun pattern, but the resource naming is inconsistent: create-book/read-book/update-book vs. list-notebooks. This is a minor deviation rather than a systemic issue.

Tool Count4/5

17 tools is reasonable for a note-taking MCP server covering notes, notebooks, tags, files, and search. The count is slightly high but not excessive given the breadth of operations.

Completeness2/5

The tool set covers create, read, update, list, and search operations, but there are no delete tools for notes, notebooks, tags, or files. This is a significant lifecycle gap that would prevent an agent from completing common deletion workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues