Joplin

by dweigend

5 stars
Not rated
GitHub

About

A Model Context Protocol (MCP) Server for https://joplinapp.org/ that enables note access through the https://modelcontextprotocol.io. Perfect for integration with AI assistants like Claude.

Details

Author
dweigend
Repository
dweigend/joplin-mcp-server
GitHub stars
5
License
MIT License
Categories
Productivity, Other, Knowledge Base, Developer Tools, Design, File Management, AI, Search, API, Frontend, Security
Tags
#integration

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

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Joplin
    Command (node, npx, python, etc.) /PATH/TO/UV/uv
    Arguments
    • Argument 1 --directory
    • Argument 2 /PATH/TO/YOUR/PROJECT/joplin_mcp
    • Argument 3 run
    • Argument 4 src/mcp/joplin_mcp.py

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

uv venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate

uv pip install -e .

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.

search_notes

Search for notes in Joplin. Parameters: query (string), 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

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "joplin": {
            "cwd": null,
            "env": {},
            "args": [
                "--directory",
                "/PATH/TO/YOUR/PROJECT/joplin_mcp",
                "run",
                "src/mcp/joplin_mcp.py"
            ],
            "shell": false,
            "command": "/PATH/TO/UV/uv"
        }
    }
}

Linux

{
    "cwd": null,
    "env": [],
    "args": [
        "--directory",
        "/PATH/TO/YOUR/PROJECT/joplin_mcp",
        "run",
        "src/mcp/joplin_mcp.py"
    ],
    "shell": false,
    "command": "/PATH/TO/UV/uv"
}

Macos

{
    "cwd": null,
    "env": [],
    "args": [
        "--directory",
        "/PATH/TO/YOUR/PROJECT/joplin_mcp",
        "run",
        "src/mcp/joplin_mcp.py"
    ],
    "shell": false,
    "command": "/PATH/TO/UV/uv"
}

Windows

{
    "cwd": null,
    "env": [],
    "args": [
        "--directory",
        "/PATH/TO/YOUR/PROJECT/joplin_mcp",
        "run",
        "src/mcp/joplin_mcp.py"
    ],
    "shell": false,
    "command": "/PATH/TO/UV/uv"
}

📝 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

🚀 Installation

Prerequisites

- Python 3.10 or higher
- Joplin Desktop with Web Clipper Service enabled
- uv (Python package manager)

```bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.