NestDaddy

Joplin Mcp Server

io.github.jordanburke/joplin-mcp-server · v2.3.3

Search, read, create, edit and sync Joplin notes and notebooks via a headless Joplin sidecar.

Connect Runs on your machine

Terminal
claude mcp add joplin-mcp-server -e JOPLIN_TOKEN=<JOPLIN_TOKEN> -e JOPLIN_HOST=<JOPLIN_HOST> -e JOPLIN_PORT=<JOPLIN_PORT> -e JOPLIN_PROFILE=<JOPLIN_PROFILE> -e JOPLIN_CLI=<JOPLIN_CLI> -e JOPLIN_SYNC_TARGET=<JOPLIN_SYNC_TARGET> -e JOPLIN_SYNC_PATH=<JOPLIN_SYNC_PATH> -e JOPLIN_SYNC_USERNAME=<JOPLIN_SYNC_USERNAME> -e JOPLIN_SYNC_PASSWORD=<JOPLIN_SYNC_PASSWORD> -e JOPLIN_SYNC_REGION=<JOPLIN_SYNC_REGION> -e JOPLIN_SYNC_ENDPOINT=<JOPLIN_SYNC_ENDPOINT> -e JOPLIN_SYNC_FORCE_PATH_STYLE=<JOPLIN_SYNC_FORCE_PATH_STYLE> -e LOG_LEVEL=<LOG_LEVEL> -- npx -y [email protected]
claude_desktop_config.json
{
  "mcpServers": {
    "joplin-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "JOPLIN_TOKEN": "<JOPLIN_TOKEN>",
        "JOPLIN_HOST": "<JOPLIN_HOST>",
        "JOPLIN_PORT": "<JOPLIN_PORT>",
        "JOPLIN_PROFILE": "<JOPLIN_PROFILE>",
        "JOPLIN_CLI": "<JOPLIN_CLI>",
        "JOPLIN_SYNC_TARGET": "<JOPLIN_SYNC_TARGET>",
        "JOPLIN_SYNC_PATH": "<JOPLIN_SYNC_PATH>",
        "JOPLIN_SYNC_USERNAME": "<JOPLIN_SYNC_USERNAME>",
        "JOPLIN_SYNC_PASSWORD": "<JOPLIN_SYNC_PASSWORD>",
        "JOPLIN_SYNC_REGION": "<JOPLIN_SYNC_REGION>",
        "JOPLIN_SYNC_ENDPOINT": "<JOPLIN_SYNC_ENDPOINT>",
        "JOPLIN_SYNC_FORCE_PATH_STYLE": "<JOPLIN_SYNC_FORCE_PATH_STYLE>",
        "LOG_LEVEL": "<LOG_LEVEL>"
      }
    }
  }
}
~/.cursor/mcp.json
{
  "mcpServers": {
    "joplin-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "JOPLIN_TOKEN": "<JOPLIN_TOKEN>",
        "JOPLIN_HOST": "<JOPLIN_HOST>",
        "JOPLIN_PORT": "<JOPLIN_PORT>",
        "JOPLIN_PROFILE": "<JOPLIN_PROFILE>",
        "JOPLIN_CLI": "<JOPLIN_CLI>",
        "JOPLIN_SYNC_TARGET": "<JOPLIN_SYNC_TARGET>",
        "JOPLIN_SYNC_PATH": "<JOPLIN_SYNC_PATH>",
        "JOPLIN_SYNC_USERNAME": "<JOPLIN_SYNC_USERNAME>",
        "JOPLIN_SYNC_PASSWORD": "<JOPLIN_SYNC_PASSWORD>",
        "JOPLIN_SYNC_REGION": "<JOPLIN_SYNC_REGION>",
        "JOPLIN_SYNC_ENDPOINT": "<JOPLIN_SYNC_ENDPOINT>",
        "JOPLIN_SYNC_FORCE_PATH_STYLE": "<JOPLIN_SYNC_FORCE_PATH_STYLE>",
        "LOG_LEVEL": "<LOG_LEVEL>"
      }
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "joplin-mcp-server": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "[email protected]"
      ],
      "env": {
        "JOPLIN_TOKEN": "<JOPLIN_TOKEN>",
        "JOPLIN_HOST": "<JOPLIN_HOST>",
        "JOPLIN_PORT": "<JOPLIN_PORT>",
        "JOPLIN_PROFILE": "<JOPLIN_PROFILE>",
        "JOPLIN_CLI": "<JOPLIN_CLI>",
        "JOPLIN_SYNC_TARGET": "<JOPLIN_SYNC_TARGET>",
        "JOPLIN_SYNC_PATH": "<JOPLIN_SYNC_PATH>",
        "JOPLIN_SYNC_USERNAME": "<JOPLIN_SYNC_USERNAME>",
        "JOPLIN_SYNC_PASSWORD": "<JOPLIN_SYNC_PASSWORD>",
        "JOPLIN_SYNC_REGION": "<JOPLIN_SYNC_REGION>",
        "JOPLIN_SYNC_ENDPOINT": "<JOPLIN_SYNC_ENDPOINT>",
        "JOPLIN_SYNC_FORCE_PATH_STYLE": "<JOPLIN_SYNC_FORCE_PATH_STYLE>",
        "LOG_LEVEL": "<LOG_LEVEL>"
      }
    }
  }
}

Replace the values in angle brackets with your own. Keys stay on your machine; we never see them.

Tools

This server runs locally, so its tools are listed by your MCP client once it starts.

Environment variables

NameDescription
JOPLIN_TOKEN
Optional, secret
Joplin API token, for external mode only (see JOPLIN_HOST). Sidecar mode manages its own token and ignores this.
JOPLIN_HOST
Optional
Connect to an existing Joplin instance at this host instead of running a sidecar
JOPLIN_PORT
Optional
Port of the existing Joplin instance (default: 41184)
JOPLIN_PROFILE
Optional
Joplin data directory for sidecar mode (default: ~/.config/joplin-mcp)
JOPLIN_CLI
Optional
Path to the joplin CLI binary, overriding auto-detection
JOPLIN_SYNC_TARGET
Optional
Sync target: none, filesystem, webdav, nextcloud, joplin-cloud, joplin-server, s3, dropbox, onedrive (default: none)
JOPLIN_SYNC_PATH
Optional
Sync target URL or path; the bucket name for the s3 target
JOPLIN_SYNC_USERNAME
Optional
Sync username or email; the access key for the s3 target
JOPLIN_SYNC_PASSWORD
Optional, secret
Sync password; the secret key for the s3 target
JOPLIN_SYNC_REGION
Optional
S3 region (default: us-east-1)
JOPLIN_SYNC_ENDPOINT
Optional
S3 endpoint URL for non-AWS providers such as Backblaze B2, MinIO, R2 or Wasabi (default: https://s3.amazonaws.com/)
JOPLIN_SYNC_FORCE_PATH_STYLE
Optional
Use path-style S3 URLs, which self-hosted providers such as MinIO usually require: true or false (default: false)
LOG_LEVEL
Optional
Log verbosity: debug, info, warn or error (default: info)

Details

Package[email protected] (NPM, stdio)
First published31 Aug 2026
Last updated31 Aug 2026
Registry nameio.github.jordanburke/joplin-mcp-server

More search and web servers See all

Listing data from the official MCP registry. Status and tools from NestDaddy's daily check. Browse all MCP servers.