I've been working recently on a toolbox, joplin-mcp, to enable LLM agents to interact with Joplin. The goal is to be able to perform actions seamlessly on Joplin's database from within common LLM chat interfaces. This package wraps Joplin's Data API (using @Marph's Joppy) with an API that many LLMs support today (Model Context Protocol, MCP, see the diagram below). It is worth mentioning a similar package by @pikao that was released recently (providing a read-only toolbox). This way you may instruct a LLM to find notes, edit them, tag them, remove unnecessary ones, etc. For example, the first thing that I asked the LLM to do was to find forgotten tags that are no longer in use and delete them.
The installation is fairly simple. I included examples for how to connect joplin-mcp
with a commercial model (Claude Desktop), which takes about 5 minutes to setup, and a simple offline / open solution based on Ollama.
I tried to provide a nearly complete Data API support (excluding resource management for the time being). That said, I'm trying to think of ways to improve these tools. During the installation you'll be able to disable / enable tools, or limit their permissions to view or edit your notes, based on your privacy and security preferences. Furthermore, most chat interfaces will ask you to approve each tool execution in the UI. The complete tool set includes:
Note Management
- Find & Search:
find_notes
,find_notes_with_tag
,find_notes_in_notebook
,get_all_notes
- CRUD Operations:
get_note
,create_note
,update_note
,delete_note
Notebook Management
- Organise:
list_notebooks
,create_notebook
,update_notebook
,delete_notebook
Tag Management
- Categorise:
list_tags
,create_tag
,delete_tag
,get_tags_by_note
- Link:
tag_note
,untag_note
System
- Health:
ping_joplin
Next steps
I'm trying to think how RAG can be integrated with this MCP. One option is to test how external RAG tools can interact with joplin-mcp
. Another option is to support Jarvis embeddings, perhaps by loading and searching its note indexing database. We could also try to design tools with more advanced search methods.