Joplin MCP
MCP server for the Joplin note taking app
Joplin MCP is an open-source mcp server by alondmnt, written mainly in Python, with 174 GitHub stars and the MIT license. Its code was last updated Sep 12, 2026. The latest PyPI release is joplin-mcp 0.10.0, published Sep 12, 2026, with 121 downloads last week.
Scan summary: scanned Nov 5, 2026 at commit b84c313. Seen able to read environment and secrets, connect to the internet. Scan policy
How to install Joplin MCP
Built from the start command in the project's README: uvx --from joplin-mcp joplin-mcp-server. Check the README for required keys or settings.
claude mcp add joplin-mcp -- uvx --from joplin-mcp joplin-mcp-server{
"mcpServers": {
"joplin-mcp": {
"command": "uvx",
"args": [
"--from",
"joplin-mcp",
"joplin-mcp-server"
]
}
}
}{
"mcpServers": {
"joplin-mcp": {
"command": "uvx",
"args": [
"--from",
"joplin-mcp",
"joplin-mcp-server"
]
}
}
}code --add-mcp '{"name":"joplin-mcp","command":"uvx","args":["--from","joplin-mcp","joplin-mcp-server"]}'What Joplin MCP can touch
- Our checks did not find this. The tool may still do it.Run shell commandsNot seen in this scan
- Our checks did not find this. The tool may still do it.Run dynamic codeNot seen in this scan
- Our checks did not find this. The tool may still do it.Read or write filesNot seen in this scan
- Seen in this scan, either in the code or while it ran.Read environment and secretsFound in the code by our scan
- Our checks did not find this. The tool may still do it.Control a web browserNot seen in this scan
- Our checks did not find this. The tool may still do it.Connect to databasesNot seen in this scan
- Our checks did not find this. The tool may still do it.Read or send messagesNot seen in this scan
- Our checks did not find this. The tool may still do it.Touch money or tradingNot seen in this scan
- Seen in this scan, either in the code or while it ran.Connect to the internetContacted pypi.org
"Not seen" means our checks did not find it, and the tool may still do it. Covers commit b84c313, Nov 5, 2026. See the scan policy.
Before you install Joplin MCP
AgenticMart scanned Joplin MCP on Nov 5, 2026 with automated checks for hidden code, known-malicious packages, leaked secrets and vulnerable dependencies. The result covers one commit under our scan policy, so review what access you give it and check any advisories shown here.
What it can access
- An MCP server is a program your AI app starts and talks to. A local one runs with your user's permissions: it can see the files, environment variables and network your account can.
Before you install
- Pin the version you reviewed instead of always installing the latest release.
- Read the tool list or scripts before the first run, and keep approval prompts on for actions that write, send or delete.
- Maintained by alondmnt on GitHub, 174 stars and 18 forks. Popularity is not proof of safety.
- Last code change: Sep 12, 2026.
- Open-source license: MIT.
Tools Joplin MCP exposes (19)
Listed by the server itself during our scan of commit b84c313.
ping_joplinTest connection to Joplin server. Verifies connectivity to the Joplin application. Use to troubleshoot connection issues. Returns: str: Connection status information.
get_noteRetrieve a note with smart content display and sequential reading support. Smart behavior: Short notes show full content, long notes show TOC only. Sequential reading: Extract specific line ranges for progressive consumption.
get_note_resourcesList resources attached to a note, including OCR text for images and PDFs. Joplin runs OCR on attached images and PDFs and stores the result on each resource. This tool exposes that text so an agent reading a note can also see what's inside its images. Resources without OCR text (audio, plain files
get_linksExtract all links to other notes from a given note and find backlinks from other notes. Scans the note's content for links in the format [text](:/noteId) or [text](:/noteId#section-slug) and searches for backlinks (other notes that link to this note). Returns link text, target/source note info, sec
create_noteCreate a new note in a specified notebook in Joplin. Creates a new note with the specified title, content, and properties. Uses notebook name for easier identification instead of requiring notebook IDs. Notebook can be specified by name or path: - "Work" - matches notebook named "W
update_noteUpdate note properties (title, body, todo status, due date) or move a note to another notebook. Replaces the entire body. Use this for metadata changes, moving a note between notebooks, or full body replacement. For targeted text edits (fix a word, append a line) use edit_note instead — it doesn't
edit_notePrecision-edit a note's body without reading or replacing the full content. Preferred over update_note for targeted text changes — no get_note round-trip needed. Use update_note instead when changing metadata (title, todo status, due date) or replacing the entire body. Modes: - Replace: provide ol
find_notesFind notes by searching titles and content. Use "*" to list all notes. Query syntax: "exact phrase", title:word, body:word, -exclude, word1 OR word2 Examples: - find_notes("*") - List all notes - find_notes("meeting") - Find notes containing "meeting" - find_notes("*", task=True) - Lis
find_in_noteSearch for a regex pattern inside a specific note and return paginated matches. Multiline mode is enabled by default so anchors like ``^``/``$`` operate per line, matching the common expectations for checklist-style searches.
find_notes_with_tagFind all notes that have a specific tag, with pagination support. MAIN FUNCTION FOR TAG SEARCHES! Use this when you want to find all notes tagged with a specific tag name. Returns: str: List of all notes with the specified tag, with pagination information. Examples: - find_notes_with_tag
find_notes_in_notebookFind all notes in a specific notebook, with pagination support. MAIN FUNCTION FOR NOTEBOOK SEARCHES! Use this when you want to find all notes in a specific notebook. Notebook can be specified by name or path: - "Work" - matches notebook named "Work" (must be unique) - "Projects/Work" - matches "W
list_notebooksList all notebooks/folders in your Joplin instance, with note counts. Returns each notebook's id, title, path and note_count. Pass verbose=True to also get the emoji icon, parent_id and timestamps -- rarely needed, and on a large collection they roughly double the size of this response. Returns:
create_notebookCreate a new notebook (folder) in Joplin to organize your notes. Creates a new notebook that can be used to organize and contain notes. You can create top-level notebooks or sub-notebooks within existing notebooks, optionally with an emoji icon shown in Joplin's sidebar. Notebook can be specified
list_tagsList all tags in your Joplin instance with note counts. Retrieves and displays all tags that exist in your Joplin application. Tags are labels that can be applied to notes for categorization and organization. Returns: str: Formatted list of all tags including title, unique ID and number of not
create_tagCreate a new tag. Creates a new tag that can be applied to notes for categorization and organization. Returns: str: Success message with the created tag's title and unique ID. Examples: - create_tag("work") - Create a new tag named "work" - create_tag("important") - Create a new tag n
get_tags_by_noteGet all tags for a specific note. Retrieves all tags that are currently applied to a specific note. Returns: str: Formatted list of tags applied to the note with title, ID, and creation date.
tag_noteAdd one or more tags to one or more notes. Both args accept a single string or a list. When either is a list, the cartesian product is applied (every tag on every note) in one call — preferred over looping. Output: aggregated TAG_NOTE report with TOTAL_OPS / SUCCEEDED / FAILED, one row per (note,
untag_noteRemove one or more tags from one or more notes. Both args accept a single string or a list. When either is a list, the cartesian product is applied (remove every tag from every note) in one call. Output: aggregated UNTAG_NOTE report with TOTAL_OPS / SUCCEEDED / FAILED, one row per (note, tag) pair
restore_from_trashRestore a note or notebook from Joplin's trash. Restores a previously deleted item by setting its deleted_time back to 0. The item reappears in its original notebook. Scope of restore (important): - Only the single item identified by item_id is restored. When restoring a notebook, its sub-notebo
Hosts it contacted while running
Joplin MCP is an open-source mcp server by alondmnt, written mainly in Python. MCP server for the Joplin note taking app
At a glance
- Stars
- 174
- Forks
- 18
- Language
- Python
- License
- MIT
- Created
- Jul 2025
- Last update
- Sep 12, 2026
- Type
- MCP Server
- Price
- Free
Topics
Questions about Joplin MCP
What is Joplin MCP?
MCP server for the Joplin note taking app
Who maintains Joplin MCP?
Joplin MCP is maintained by alondmnt on GitHub (alondmnt/joplin-mcp). AgenticMart lists it from public repository data.
Is Joplin MCP safe to use?
AgenticMart scanned Joplin MCP on Nov 5, 2026 with automated checks for hidden code, known-malicious packages, leaked secrets and vulnerable dependencies. The result covers one commit under our scan policy, so review what access you give it and check any advisories shown here.
What license does Joplin MCP use?
It is published under the MIT license.
Joplin MCP alternatives
View more →Similar mcp servers in Other, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.
| Name | Stars | Licence | Last updated | Scan |
|---|---|---|---|---|
| Joplin MCP (this page) alondmnt | 174 | MIT | Sep 12, 2026 | Scanned, no flagged issues |
| Github MCP Server github | 34k | MIT | Oct 30, 2026 | Scanned, no flagged issues |
| Fastapi MCP tadata-org | 12k | MIT | Nov 24, 2025 | Scanned, no flagged issues |
| GhidraMCP LaurieWired | 12k | Apache-2.0 | Oct 10, 2026 | Scanned, no flagged issues |
| MCP Go mark3labs | 9.2k | MIT | Oct 30, 2026 | Scanned, no flagged issues |
| Git MCP idosal | 8.5k | Apache-2.0 | May 8, 2026 | Scanned, no flagged issues |