Joplin Server MCP
Allows interaction with Joplin Server, providing tools for managing notebooks, notes, tags, and attachments via the Joplin Server REST API.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Joplin Server MCPlist my notes in the 'Work' notebook"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Joplin Server MCP
Model Context Protocol server for Joplin Server. Gives LLMs full access to your notes, notebooks, tags, and attachments via the Joplin Server REST API.
What is Joplin Server?
Joplin is an open-source note-taking app with Markdown support, end-to-end encryption, and sync across devices. Joplin Server is the sync backend that stores and syncs your data. You can run it yourself using the official Docker image or use the managed Joplin Cloud service.
Note: This MCP server connects to Joplin Server REST API, not the Joplin Desktop Web Clipper.
Joplin Cloud: Should work with
JOPLIN_SERVER_URL=https://joplincloud.com, but this has not been tested. If you try it — please open an issue with your results.
Related MCP server: joplin-mcp
Tools
Tool | Description |
| Check server connectivity |
| List all notebooks |
| Get notebook details with notes and sub-notebooks |
| Create a new notebook |
| Rename or move a notebook (with circular reference check) |
| Delete a notebook (with optional force for non-empty) |
| List notes, optionally filtered by notebook |
| Get all notes with pagination, sorting, and notebook filter |
| Search notes by text in title or body |
| Get note text (resource references replaced with names) |
| Read multiple notes at once (up to 50, parallel) |
| Get note with all resources embedded as base64 |
| Create a new note |
| Export note as markdown with resources as named base64 blocks |
| Update note title, body, or move to another notebook |
| Delete a note |
| List all tags |
| Create a new tag |
| Delete a tag |
| List tags assigned to a note |
| Add a tag to a note |
| Remove a tag from a note |
| List resources attached to a note |
| Get resource metadata |
| Download a resource as base64 |
Setup
Prerequisites
A running Joplin Server instance or Joplin Cloud account
User credentials (email + password)
Environment variables
Variable | Required | Default | Description |
| Yes | — | Joplin Server URL |
| Yes | — | User email |
| Yes | — | User password |
| No |
| Transport: |
| No |
| SSE listen host |
| No |
| SSE listen port |
Run with Docker
docker run -d \
-e JOPLIN_SERVER_URL=https://your-joplin-server.example.com \
-e JOPLIN_EMAIL=your@email.com \
-e JOPLIN_PASSWORD=your_password \
-p 8081:8081 \
alexfail2/joplin-mcpThe container defaults to SSE transport. The endpoint will be available at http://localhost:8081/sse.
Run locally (stdio)
pip install mcp httpx
python app/server.pyBuild from source
docker build -t joplin-mcp .MCP client configuration
SSE (Docker)
{
"mcpServers": {
"joplin": {
"url": "http://localhost:8081/sse"
}
}
}stdio (local)
{
"mcpServers": {
"joplin": {
"command": "python",
"args": ["/path/to/app/server.py"],
"env": {
"JOPLIN_SERVER_URL": "https://your-joplin-server.example.com",
"JOPLIN_EMAIL": "your@email.com",
"JOPLIN_PASSWORD": "your_password"
}
}
}
}How it works
The server authenticates with Joplin Server via email/password sessions and builds an in-memory index of all items (notes, notebooks, tags) with a 2-minute TTL cache. Incremental sync compares server-side updated_time with cached etags, fetching only changed items (typical refresh: ~5s vs ~35s full rebuild). The index is persisted to disk so container restarts are instant. Resource metadata is loaded lazily on first access. Background refresh keeps the index up to date without blocking requests. All IDs are validated (32-char hex) before API calls.
Joplin's internal serialization format (title + markdown body + metadata block) is parsed and presented as clean structured output.
License
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Alexander-Zhukov/joplin-server-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server