Joplin▌
by jordanburke
Manage notes and notebooks seamlessly with Joplin. Create, edit, search, and organize todos and hierarchies via the REST
Integrates with Joplin's REST API to enable complete note and notebook management including search, read, create, edit, and delete operations with support for hierarchical structures and todo items.
Both formats append explainx.ai attribution and the canonical URL for this MCP server listing.
best for
- / Note-taking automation and bulk operations
- / AI assistants that need access to personal notes
- / Developers building Joplin integrations
- / Cross-platform note management workflows
capabilities
- / Search through all notes and notebooks
- / Create and edit notes and notebooks
- / Delete notes and manage todo items
- / Sync with cloud services or filesystem
- / Navigate hierarchical notebook structures
- / Query note metadata and contents
what it does
Provides complete access to Joplin notes through the REST API, allowing you to search, create, edit, and organize notes and notebooks.
about
Joplin is a community-built MCP server published by jordanburke that provides AI assistants with tools and capabilities via the Model Context Protocol. Manage notes and notebooks seamlessly with Joplin. Create, edit, search, and organize todos and hierarchies via the REST It is categorized under productivity.
how to install
You can install Joplin in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
license
MIT
Joplin is released under the MIT license. This is a permissive open-source license, meaning you can freely use, modify, and distribute the software.
readme
Joplin MCP Server
A self-contained MCP (Model Context Protocol) server for Joplin. Bundles the Joplin Terminal CLI as a dependency — no desktop app, no global installs, no external processes to manage. Coexists with Joplin Desktop via automatic port negotiation.
Quick Start
npx joplin-mcp-server --token your_joplin_token
That's it. The server spawns its own Joplin Terminal instance (sidecar mode), syncs to your configured backend, and exposes your notes via MCP.
Architecture
Sidecar Mode (Default)
The server bundles joplin as an npm dependency and manages its own Joplin Terminal process. No Joplin desktop app needed — the sidecar handles everything: data storage, sync, and the REST API.
If Joplin Desktop is already running, the sidecar automatically finds a free port (scanning 41184-41193) and runs alongside it. Both instances stay in sync if configured with the same sync target.
# Basic usage — sidecar starts automatically
npx joplin-mcp-server --token your_token
# With cloud sync
npx joplin-mcp-server --token your_token \
--sync-target joplin-cloud \
--sync-username [email protected] --sync-password pass
# With filesystem sync (e.g. OneDrive folder)
npx joplin-mcp-server --token your_token \
--sync-target filesystem \
--sync-path /mnt/c/Users/you/OneDrive/Joplin
The Joplin CLI is resolved in this order: JOPLIN_CLI env var > node_modules/.bin/joplin (bundled) > global install > npx fallback.
Data is stored in ~/.config/joplin-mcp by default (separate from any desktop Joplin install).
External Mode
Connects to an existing Joplin instance instead of spawning a sidecar. Activated by setting JOPLIN_HOST or JOPLIN_PORT.
# Connect to Joplin desktop on another machine or Windows host
JOPLIN_HOST=192.168.0.40 JOPLIN_PORT=41184 npx joplin-mcp-server --token your_token
Configuration
Environment Variables
| Variable | Description | Default |
|---|---|---|
JOPLIN_TOKEN | API token (required) | -- |
JOPLIN_HOST | Connect to existing Joplin at this host (skips sidecar) | -- |
JOPLIN_PORT | Connect to existing Joplin on this port (skips sidecar) | -- |
JOPLIN_CLI | Path to joplin CLI binary (overrides auto-detection) | -- |
JOPLIN_PROFILE | Joplin data directory for sidecar mode | ~/.config/joplin-mcp |
JOPLIN_SYNC_TARGET | Sync target type | none |
JOPLIN_SYNC_PATH | Sync target URL/path | -- |
JOPLIN_SYNC_USERNAME | Sync username/email | -- |
JOPLIN_SYNC_PASSWORD | Sync password | -- |
LOG_LEVEL | Log level: debug, info, warn, error | info |
Command Line Options
OPTIONS:
--env-file <file> Load environment variables from file
--token <token> Joplin API token
--transport <type> Transport type: stdio (default) or http
--http-port <port> HTTP server port (default: 3000, only with --transport http)
--profile <dir> Joplin data directory (default: ~/.config/joplin-mcp)
--sync-target <type> Sync target: none, filesystem, webdav, nextcloud,
joplin-cloud, joplin-server, s3, dropbox, onedrive
--sync-path <url> URL or path for sync target
--sync-username <user> Username/email for sync
--sync-password <pass> Password for sync
--help, -h Show help message
Path Expansion
The --sync-path and --profile options support ~ and environment variable expansion for cross-platform compatibility:
# Tilde expands to home directory (Linux, macOS, Windows)
--sync-path ~/OneDrive/Apps/Joplin
# Environment variables (both forms supported)
--sync-path ${HOME}/OneDrive/Apps/Joplin
--sync-path $HOME/OneDrive/Apps/Joplin
# Windows example using USERPROFILE
--sync-path ${USERPROFILE}/OneDrive/Apps/Joplin
This works in MCP client configs (.mcp.json, Claude Desktop) where shell expansion isn't available.
WSL auto-detection: On WSL, if a ~/ path is empty or missing, the server automatically checks the corresponding Windows path at /mnt/c/Users/<user>/.... This means --sync-path ~/OneDrive/Apps/Joplin just works on WSL without needing the full /mnt/c/... path.
Sync Targets
| Target | Required Options |
|---|---|
none | (default, no sync) |
filesystem | --sync-path /path/to/dir |
webdav | --sync-path <url> --sync-username --sync-password |
nextcloud | --sync-path <url> --sync-username --sync-password |
joplin-cloud | --sync-username --sync-password |
joplin-server | --sync-path <url> --sync-username --sync-password |
s3 | --sync-path <bucket> --sync-username <access-key> --sync-password <secret-key> |
dropbox | (OAuth flow) |
onedrive | (OAuth flow) |
MCP Client Configuration
Claude Code
The repository includes a .mcp.json that works with Claude Code's env var expansion:
{
"mcpServers": {
"joplin": {
"command": "node",
"args": ["dist/bin.js"],
"env": {
"JOPLIN_TOKEN": "${JOPLIN_TOKEN}"
}
}
}
}
Set JOPLIN_TOKEN in your shell (add to ~/.bashrc or ~/.zshrc):
export JOPLIN_TOKEN="your_actual_token_here"
Claude Desktop
Claude Desktop does not support ${VAR} expansion. Provide values directly:
{
"mcpServers": {
"joplin": {
"command": "npx",
"args": ["joplin-mcp-server", "--token", "your_actual_token_here"]
}
}
}
With Sync (Claude Desktop)
{
"mcpServers": {
"joplin": {
"command": "npx",
"args": [
"joplin-mcp-server",
"--token",
"your_token",
"--sync-target",
"filesystem",
"--sync-path",
"/path/to/sync/dir"
]
}
}
}
External Mode
{
"mcpServers": {
"joplin": {
"command": "npx",
"args": ["joplin-mcp-server"],
"env": {
"JOPLIN_TOKEN": "your_actual_token_here",
"JOPLIN_HOST": "192.168.0.40",
"JOPLIN_PORT": "41184"
}
}
}
}
Docker
docker build -t joplin-mcp .
docker run -e JOPLIN_TOKEN=your_token -p 3000:3000 joplin-mcp
WSL Setup
Running in WSL? The sidecar architecture makes this straightforward — no Windows port forwarding needed. The server auto-detects WSL and handles path resolution between Linux and Windows filesystems.
Filesystem Sync via OneDrive (Recommended)
Both your Windows Joplin desktop and the WSL sidecar sync to the same OneDrive folder. They see the same notes without needing to talk to each other directly.
# Uses ~/OneDrive — automatically resolves to /mnt/c/Users/YourName/OneDrive on WSL
npx joplin-mcp-server --token your_token \
--sync-target filesystem \
--sync-path ~/OneDrive/Apps/Joplin
# Or specify the Windows path explicitly
npx joplin-mcp-server --token your_token \
--sync-target filesystem \
--sync-path /mnt/c/Users/YourName/OneDrive/Apps/Joplin
In your Joplin desktop app, configure sync to the same OneDrive folder: Tools > Options > Synchronisation > File system > /Users/YourName/OneDrive/Apps/Joplin
Joplin Desktop coexistence: If Desktop is running on port 41184, the sidecar automatically uses the next available port. A warning is logged at startup reminding you that both instances use separate databases and need the same sync target to stay in sync.
Cloud Sync
Alternatively, both instances can sync to Joplin Cloud or any other cloud backend:
npx joplin-mcp-server --token your_token \
--sync-target joplin-cloud \
--sync-username [email protected] --sync-password pass
External Mode (Port Forwarding)
If you prefer to connect directly to Windows Joplin instead of running a sidecar:
On Windows (PowerShell as Administrator):
netsh interface portproxy add v4tov4 listenport=41184 listenaddress=0.0.0.0 connectport=41184 connectaddress=127.0.0.1
In WSL:
JOPLIN_HOST=192.168.0.40 JOPLIN_PORT=41184 npx joplin-mcp-server --token your_token
Find your Windows IP with ipconfig on Windows or cat /etc/resolv.conf | grep nameserver from WSL.
Available Tools
| Tool | Description |
|---|
FAQ
- What is the Joplin MCP server?
- Joplin is a Model Context Protocol (MCP) server profile on explainx.ai. MCP lets AI hosts (e.g. Claude Desktop, Cursor) call tools and resources through a standard interface; this page summarizes categories, install hints, and community ratings.
- How do MCP servers relate to agent skills?
- Skills are reusable instruction packages (often SKILL.md); MCP servers expose live capabilities. Teams frequently combine both—skills for workflows, MCP for APIs and data. See explainx.ai/skills and explainx.ai/mcp-servers for parallel directories.
- How are reviews shown for Joplin?
- This profile displays 30 aggregated ratings (sample rows for discoverability plus signed-in user reviews). Average score is about 4.5 out of 5—verify behavior in your own environment before production use.
Use Cases▌
Extended AI Capabilities
Add new capabilities to Claude beyond text generation
Example
Access external data sources, execute code, interact with tools and services
Transform Claude from chatbot to action-taking agent
Context Enhancement
Provide Claude with access to relevant context and data
Example
Load project documentation, access knowledge bases, query databases
Get more accurate, context-aware responses
Workflow Automation
Automate multi-step workflows combining AI and external tools
Example
Research → Summarize → Create document → Send notification
Complete complex tasks end-to-end without manual steps
Implementation Guide▌
Prerequisites
- ›Claude Desktop 0.7.0+ or Cursor IDE with MCP support
- ›Basic understanding of MCP architecture and capabilities
- ›Access credentials for integrated services (if required)
- ›Willingness to experiment and iterate on configuration
Time Estimate
15-60 minutes depending on server complexity
Installation Steps
- 1.Install MCP server: npm install -g [package-name] or via GitHub
- 2.Add server configuration to ~/.claude/mcp.json
- 3.Provide required credentials and configuration
- 4.Restart Claude Desktop to load new server
- 5.Test basic functionality with simple prompts
- 6.Explore capabilities and experiment with use cases
- 7.Document successful patterns for reuse
Troubleshooting
- ⚠MCP server not loading: Check config syntax, verify installation
- ⚠Connection errors: Check network, firewall, credentials
- ⚠Feature not working: Read server docs, check required parameters
- ⚠Performance issues: Monitor resource usage, check for network latency
- ⚠Conflicts with other servers: Check port assignments, namespace collisions
Best Practices▌
✓ Do
- +Read server documentation thoroughly before setup
- +Start with simple use cases to validate functionality
- +Test in non-production environment first
- +Monitor resource usage and performance
- +Keep servers updated for bug fixes and new features
- +Document configuration for team members
- +Use environment variables for sensitive configuration
✗ Don't
- −Don't grant overly permissive access to MCP servers
- −Don't skip reading security considerations in docs
- −Don't expose sensitive data without proper controls
- −Don't run untrusted MCP servers without code review
- −Don't ignore error messages—investigate root cause
💡 Pro Tips
- ★Combine multiple MCP servers for powerful workflows
- ★Create custom MCP servers for your specific needs
- ★Share successful configurations with team
- ★Use MCP inspector for debugging
- ★Join MCP community for tips and troubleshooting
Technical Details▌
Architecture
Model Context Protocol standardizes how AI hosts (Claude, Cursor) communicate with external tools and data sources through server implementations.
Protocols
- Model Context Protocol (MCP)
- JSON-RPC 2.0
- stdio or HTTP transport
Compatibility
- Claude Desktop
- Cursor IDE
- Custom MCP clients
When to Use This▌
✓ Use When
Use when you need Claude to access external data, execute actions, or integrate with tools. Best for extending AI capabilities beyond conversation.
✗ Avoid When
Avoid when native integrations exist (use official APIs directly), for real-time critical systems, or when security/compliance requires zero external dependencies.
Integration▌
- →Tool composition: Chain multiple MCP tools in workflows
- →Context augmentation: Provide AI with relevant external data
- →Action delegation: Let AI execute tasks on external systems
- →Bidirectional sync: Keep AI context and external systems in sync
Discussion
Product Hunt–style comments (not star reviews)- No comments yet — start the thread.
List & Promote Your MCP Server
Share your MCP server with the developer community
Ratings
4.5★★★★★30 reviews- ★★★★★Anika Taylor· Dec 16, 2024
I recommend Joplin for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
- ★★★★★Shikha Mishra· Dec 4, 2024
We wired Joplin into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
- ★★★★★Ishan Abebe· Nov 15, 2024
We wired Joplin into a staging workspace; the listing’s GitHub and npm pointers saved time versus hunting across READMEs.
- ★★★★★Kabir Thomas· Nov 7, 2024
Joplin is a well-scoped MCP server in the explainx.ai directory — install snippets and categories matched our Claude Code setup.
- ★★★★★Kabir Li· Oct 26, 2024
Useful MCP listing: Joplin is the kind of server we cite when onboarding engineers to host + tool permissions.
- ★★★★★Sakura Singh· Oct 6, 2024
According to our notes, Joplin benefits from clear Model Context Protocol framing — fewer ambiguous “AI plugin” claims.
- ★★★★★Oshnikdeep· Sep 21, 2024
Strong directory entry: Joplin surfaces stars and publisher context so we could sanity-check maintenance before adopting.
- ★★★★★Hiroshi Torres· Sep 21, 2024
I recommend Joplin for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
- ★★★★★Anaya Kim· Sep 5, 2024
We evaluated Joplin against two servers with overlapping tools; this profile had the clearer scope statement.
- ★★★★★Charlotte Wang· Aug 24, 2024
Joplin has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
showing 1-10 of 30