Skip to main content
Glama
belsar-ai

joplin-mcp

by belsar-ai

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
JOPLIN_READONLYNoSet to 'true' to enable read-only lock mode. Any value other than 'false', '0', 'no', 'off', or empty string will enable lock mode.

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
execute_joplin_readonly_scriptA

Execute JS with global 'joplin' object in read-only mode. Top-level await. Return the result. Modifications, deletions, and creations are blocked.

NOTEBOOKS (read-only): listNotebooks(fields?, orderBy?, orderDir?, limit?) getNotebook(id) getNotebookNotes(notebookId, fields?, orderBy?, orderDir?, limit?) getNotebookTree(notebookId, depth?) — formatted tree getAllNotebooksTree({ exclude? }) — notebooks only, respects scope getScopedTree({ exclude?, depth? }) — notebooks + notes, respects scope

NOTES (read-only): listAllNotes(fields?, includeDeleted?, orderBy?, orderDir?, limit?) searchNotes(query) — returns note array readNote(id) — formatted display with metadata + line numbers getNote(id) — raw object getNoteLineRange(id, startLine, endLine) searchInNote(id, pattern) getNoteSections(id)

Call as joplin.notebooks.X() or joplin.notes.X().

SEARCH: searchNotes("any:1 term1 term2"). Use OR/synonyms, not user's literal phrase. Syntax: "any:1", "tag:X", "notebook:X", "title:X", "updated:month-1", "type:todo", "iscompleted:0", "docker*", "-excluded".

RULES:

  • These methods return pre-formatted output: readNote, getNoteLineRange, searchInNote, getNoteSections, getNotebookTree, getAllNotebooksTree, getScopedTree. After calling them, respond only "Done." — do not repeat, summarize, or reformat the output.

execute_joplin_scriptA

Execute JS with global 'joplin' object with write/destructive permissions. Top-level await. Return the result. Supports all read-only methods, search syntax, and call patterns defined in 'execute_joplin_readonly_script', plus the following modifying/destructive methods:

NOTES (write/destructive): createNote(title, body, notebookId?, tags?, isTodo?, todoDue?, todoCompleted?) updateNote(id, { title?, body?, parent_id?, is_todo?, todo_due?, todo_completed? }) appendToNote(id, content) prependToNote(id, content) deleteNote(id) moveNoteToNotebook(noteId, notebookId) editNote(id, oldString, newString, replaceAll?)

RULES:

  • createNote needs notebookId — call listNotebooks() first.

  • editNote returns pre-formatted output: after calling it, respond only "Done." — do not repeat, summarize, or reformat the output.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/belsar-ai/joplin-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server