Because i wanted to access Joplin from within my AI tools, but none of the existing MCP servers worked (or worked in a way i wanted), i created a new one. Also as a training for my agentic coding skills and test of how good AI coding currently is.
Keep in mind - this is a test implementation, 100% AI coded (but not quite vibe) with supervision of a Senior Developer (me) in my free time.
configured in vscode/roo (for testing) and opencode (for prod)
plug-in-ready implementation
just exposes the joplin API endpoints 1:1 as MCP tools
Basically you just put your endpoint and credentials into .env, do a docker compose up and it works. Does NOT need Joplin locally installed!
Give me your thoughts and comments and feel free to register bugs and ask questions.
Known missing feature: user management. (Currently) it is only possible to have a single user, as the credentials are defined on the server side. Perhaps i'll change that some time in the future, but not now.
With a bit of a indirection, yes.
Part of my setup is:
OpenWebUI on a homelab server
opencode on various clients (direct access to my Joplin MCP from within my network) -> using joplin has the bridge between human and AI for a knowledge map and database
JoplinApp on my main machine only (which is not online all of the time)
Joplin Server self hosted on a VPS, available over the internet
On my mobile:
VPN active that connects my homelab
Joplin App
but also:
browser points to OpenWebUI in my homelab
OpenWebUI has joplin-mcp connected
OpenWebUI has also speech recognition (which tbh is crap atm, but i am working on that)
So basically, i can use OpenWebUI as a centralized AI agent with shared knowledge and capabilites across all devices that i am using. And it also knows of my notes, so if i ask the AI to - just a silly example - tell me something about my DNS server, it can then lookup in my notes on Joplin either if the information is in there or if it can get it from executing some SSH somewhere.
And at the same time i have still full control over that content, because i can directly access my AI's knowledge database through "normal" means with the JoplinApp
And lastly - i have HomeAssistant running, with HomeAssistant Voice Preview as a interaction device - and if that can access Notes on Joplin as well (which currently it doesn't, but i am working on it), i just can stand in my living room and talk to my AI to take notes, like an idea that just came across my mind in the middle of chopping onions. For example.
@Delfi_R that would be great, i am desparately searching for testers. It works flawlessly for me, but that never should be enough. And the setup is also something where i am not sure if it is described enough.
I found one issue with emojis in titles, tho, but i hope my fix works.
Hm, i am not sure what you mean - as i don't know your internal setup, i can't prepare anything. The .env example should be fine for local as well as remote install.
Unless with "local install" you mean "no sync server" - that misses the point of my whole project and is not (yet?) supported.
That's not a service topic any more, thats an infrastructure topic and not specific to Joplin or my MCP.
As i mentioned before, if you do not have a sync server running, my solution is not the correct one for you.