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-notesA

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.

list-templatesA

List note templates: your custom templates, followed by the official ones bundled with Inkdrop. Templates are notes whose bookId is template. Official templates are read-only. The result does not include entire template bodies as they are truncated in 200 characters. You have to retrieve the full template content by calling read-note.

create-noteC

Create a new note in the database

update-noteA

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

A3.5/5.0

Scored across 18 tools

Disambiguation4/5

Most tools target distinct resource+action pairs and descriptions clarify the tricky ones (update-note vs patch-note). However, search-notes and list-notes are easily confused since both return truncated note lists with conditions, and the book/notebook terminology overlap (read-book vs list-notebooks) adds friction.

Naming Consistency4/5

Names follow a consistent verb_noun kebab-case pattern (create-note, update-tag, read-note). Minor deviations exist: 'book' vs 'notebook' naming mismatch and the search-notes/list-notes verb split slightly break symmetry.

Tool Count4/5

18 tools is on the heavy side but each maps to a real resource operation across notes, tags, notebooks, files, templates, and backlinks. Scope is reasonable for a full note-taking app.

Completeness3/5

Notes, tags, and notebooks have create/read/update/list coverage, but there are no delete operations for notes, tags, notebooks, or files — a notable gap for a note app. Template access is read-only, which is acceptable, but missing deletes will cause dead ends.

Maintenance

ActivityMaintained
ResponsivenessNo issues