Skip to main content
Glama
Joplin MCP Server

Joplin MCP Server

by dweigend

๐Ÿ“ Joplin MCP Server

A Model Context Protocol (MCP) Server for Joplin that enables note access through the Model Context Protocol. Perfect for integration with AI assistants like Claude.

โœจ Features

  • ๐Ÿ” Search Notes: Full-text search across all notes

  • ๐Ÿ“š List Notebooks: Browse available notebooks and sub-notebooks

  • ๐Ÿ—‚๏ธ Create Notebooks: Create notebooks and nested sub-notebooks

  • ๐Ÿ“– Read Notes: Retrieve individual notes

  • โœ๏ธ Edit Notes: Create new notes and update existing ones

  • ๐Ÿ—‘๏ธ Delete Notes: Move notes to trash or delete permanently

  • ๐Ÿ“ฅ Markdown Import: Import markdown files as notes

  • ๐Ÿค– AI Integration: Seamless integration with Claude and other MCP-capable AI assistants

Related MCP server: Obsidian MCP

๐Ÿš€ Installation

Prerequisites

  • Python 3.10 or higher

  • Joplin Desktop with Web Clipper Service enabled

  • uv (Python package manager)

# Clone repository
git clone https://github.com/dweigend/joplin-mcp.git
cd joplin-mcp

# Create and activate virtual environment
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies
```bash
uv pip install -e .

โš™๏ธ Configuration

Joplin API Token

  1. Open Joplin Desktop

  2. Go to Tools -> Options -> Web Clipper

  3. Enable the Web Clipper Service

  4. Copy the API Token

Create a .env file in the project directory:

JOPLIN_TOKEN=your_api_token_here

Claude Desktop Setup

  1. Install Claude Desktop

    • Download Claude Desktop

    • Ensure you have the latest version (Menu: Claude -> Check for Updates...)

  2. Configure MCP Server

    {
      "mcpServers": {
        "joplin": {
          "command": "/PATH/TO/UV/uv",
          "args": [
            "--directory",
            "/PATH/TO/YOUR/PROJECT/joplin_mcp",
            "run",
            "src/mcp/joplin_mcp.py"
          ]
        }
      }
    }
    • Replace /PATH/TO/UV/uv with the absolute path to your uv installation

      • Find the path with: which uv

      • Example macOS: /Users/username/.local/bin/uv

      • Example Windows: C:\Users\username\AppData\Local\Microsoft\WindowsApps\uv.exe

    • Replace /PATH/TO/YOUR/PROJECT/joplin_mcp with the absolute path to your project

    Important: Claude Desktop needs the full path to uv as it cannot access shell environment variables.

๐Ÿ› ๏ธ Available Tools

search_notes

Search for notes in Joplin.

Parameters:

  • query (string): Search query

  • limit (int, optional): Maximum number of results (default: 100)

get_note

Retrieve a specific note by its ID.

Parameters:

  • note_id (string): ID of the note

list_notebooks

List all available notebooks as a tree.

Parameters:

  • None

create_notebook

Create a new notebook.

Parameters:

  • title (string): Notebook title

  • parent_id (string, optional): Parent notebook ID

  • parent_notebook_name (string, optional): Parent notebook title or full path

create_note

Create a new note.

Parameters:

  • title (string): Note title

  • body (string, optional): Note content in Markdown

  • parent_id (string, optional): ID of parent folder

  • notebook_name (string, optional): Notebook title or full path such as Work/Projects

  • is_todo (boolean, optional): Whether this is a todo item

update_note

Update an existing note.

Parameters:

  • note_id (string): ID of note to update

  • title (string, optional): New title

  • body (string, optional): New content

  • parent_id (string, optional): New parent folder ID

  • notebook_name (string, optional): New notebook title or full path such as Work/Projects

  • is_todo (boolean, optional): New todo status

delete_note

Delete a note.

Parameters:

  • note_id (string): ID of note to delete

  • permanent (boolean, optional): If true, permanently delete the note

import_markdown

Import a markdown file as a new note.

Parameters:

  • file_path (string): Path to the markdown file

  • parent_id (string, optional): ID of parent folder

  • notebook_name (string, optional): Notebook title or full path such as Work/Projects

๐Ÿงช Development

Debug Mode

To start the server in debug mode:

MCP_LOG_LEVEL=debug mcp dev src/mcp/joplin_mcp.py

This starts the MCP Inspector at http://localhost:5173 where you can test the tools.

๐Ÿ“„ License

MIT License - Copyright (c) 2025 David Weigend

๐Ÿ‘ค Author

David Weigend

๐Ÿค Contributing

Contributions, issues and feature requests are welcome! Visit the issues page.

Available Tools

6 tools
create_noteA

Create a new note in Joplin.

Args:
    args: Note creation parameters
        title: Note title
        body: Note content in Markdown (optional)
        parent_id: ID of parent folder (optional)
        is_todo: Whether this is a todo item (optional)

Returns:
    Dictionary containing the created note data

Inputs: args (required).

delete_noteB

Delete a note from Joplin.

Args:
    note_id: ID of note to delete
    permanent: If True, permanently delete the note

Returns:
    Dictionary containing the operation status

Inputs: note_id (required), permanent.

get_noteC

Get a specific note by ID.

Args:
    note_id: ID of the note to retrieve

Returns:
    Dictionary containing the note data

Inputs: note_id (required).

import_markdownC

Import a markdown file as a new note.

Args:
    args: Import parameters
        file_path: Path to the markdown file

Returns:
    Dictionary containing the created note data

Inputs: args (required).

search_notesC

Search for notes in Joplin.

Args:
    args: Search parameters
        query: Search query string
        limit: Maximum number of results (default: 100)

Returns:
    Dictionary containing search results

Inputs: args (required).

update_noteB

Update an existing note in Joplin.

Args:
    args: Note update parameters
        note_id: ID of note to update
        title: New title (optional)
        body: New content (optional)
        parent_id: New parent folder ID (optional)
        is_todo: New todo status (optional)

Returns:
    Dictionary containing the updated note data

Inputs: args (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelogโ€ฆ

    TDQS

    A3.6/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose with no overlap: create_note, delete_note, get_note, update_note, search_notes, and import_markdown all target specific operations on notes. An agent can easily distinguish between creation, retrieval, modification, deletion, searching, and importing functions without confusion.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern with snake_case naming: create_note, delete_note, get_note, update_note, search_notes, and import_markdown. The pattern is predictable throughout, making the tool set easy to navigate and understand.

    Tool Count5/5

    With 6 tools, the server is well-scoped for note management in Joplin. Each tool earns its place by covering essential CRUD operations (create, read, update, delete), plus useful extras like search and import, without being overly sparse or bloated.

    Completeness5/5

    The tool set provides complete CRUD and lifecycle coverage for notes in Joplin, including create, read, update, delete, search, and import functionalities. There are no obvious gaps, and agents can perform all core note-related workflows without dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that enables semantic search and retrieval of Apple Notes content, allowing AI assistants to access, search, and create notes using on-device embeddings.
      3,323 npm
      2
      MIT
    • A
      license
      B
      quality
      F
      maintenance
      A Model Context Protocol server that enables AI assistants to read, write, and manipulate notes in your Obsidian vault through a standardized interface.
      5
      3,585 npm
      4
      ISC
    • F
      license
      Not graded
      quality
      D
      maintenance
      A Model Context Protocol server that allows AI assistants like Claude to interact with Evernote, enabling them to create, search, read, and manage notes through natural language.
      4
      -
    • F
      license
      Not graded
      quality
      B
      maintenance
      MCP server that provides standardized tools for querying and retrieving notes from Joplin personal knowledge manager through its API, enabling AI assistants to access and reference personal notes contextually.
      9
      -