Joplin MCP

by alondmnt• 174•• Scanned•Claim this listing•Request removal
Otherjoplinmcpmcp servernote taking

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.

Scan summary: scanned Nov 5, 2026 at commit b84c313. Seen able to read environment and secrets, connect to the internet. Scan policy

Scanned
Full scan at b84c313 · Nov 5, 2026
Scanned Builds Boots Reproducible
Static code scanwarn
Secrets scanpass
Dependency audit0 known vulnerabilitiespass
Manifestserver.jsonpass
Buildpass
Boot & handshake19 toolspass
Network egressfail
Reproducible (×3)pass

Findings (4)

  • high
    network issue
    Details are available to the maintainer after claiming this listing.
  • low
    Possible example credential in docs/tests: generic-api-key
    tests/test_error_redaction.py:18
  • low
    Possible example credential in docs/tests: curl-auth-header
    docs/troubleshooting.md:213
  • low
    Reads environment variables not listed in the manifest
    VIRTUAL_ENV, JOPLIN_MCP_CONFIG, JOPLIN_CONFIG_FILE, MCP_HTTP_COMPAT, JOPLIN_MCP_NOTEBOOK_CACHE_TTL

Network activity

During install
files.pythonhosted.orgpypi.org
While running
pypi.org

Tools exposed (19)

  • ping_joplin

    Test connection to Joplin server. Verifies connectivity to the Joplin application. Use to troubleshoot connection issues. Returns: str: Connection status information.

  • get_note

    Retrieve 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_resources

    List 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_links

    Extract 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_note

    Create 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_note

    Update 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_note

    Precision-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_notes

    Find 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_note

    Search 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_tag

    Find 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_notebook

    Find 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_notebooks

    List 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_notebook

    Create 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_tags

    List 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_tag

    Create 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_note

    Get 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_note

    Add 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_note

    Remove 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_trash

    Restore 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

Automated result for the commit shown. See our scan policy. View the scan log

Maintainers can claim the listing to rescan, or dispute a result.

Joplin MCP alternatives

View more →

Similar mcp servers in Other, ranked by GitHub stars. Compare licence, recent activity and scan status before you choose.

NameStarsLicenceLast updatedScan
Joplin MCP (this page)
alondmnt
174MITSep 12, 2026Scanned, no flagged issues
Github MCP Server
github
34kMITOct 30, 2026Scanned, no flagged issues
Fastapi MCP
tadata-org
12kMITNov 24, 2025Scanned, no flagged issues
GhidraMCP
LaurieWired
12kApache-2.0Oct 10, 2026Scanned, no flagged issues
MCP Go
mark3labs
9.2kMITOct 30, 2026Scanned, no flagged issues
Git MCP
idosal
8.5kApache-2.0May 8, 2026Scanned, no flagged issues