Skip to main content

MCP server that connects Claude Code (and other MCP clients) to your Joplin knowledge base

Project description

second-brain-joplin

An MCP server that turns your Joplin knowledge base into searchable memory for any MCP-capable AI client — Claude Code, Cursor, and others.

Inspired by second-brain-mcp (for Obsidian). This project covers the same use case for Joplin: your AI assistant reads, searches, and files notes directly, without leaving the tool you already use.

Status: Pre-alpha — MCP tools are stubbed. See the roadmap and open issues.


How it works

Joplin Desktop exposes a local REST API on localhost:41184 (the Web Clipper service). This server wraps that API as MCP tools, so your AI client can query and update your notes in real time — no export step, no sync lag.

Claude Code / Cursor
       │  MCP
       ▼
second-brain-joplin (this server)
       │  HTTP + token
       ▼
Joplin Desktop (localhost:41184)
       │
       ▼
Your notes

Prerequisites

  • Joplin Desktop running with the Web Clipper service enabled:
    Tools → Options → Web Clipper → Enable Web Clipper Service
  • API token — copy it from the Web Clipper settings panel
  • Python ≥ 3.11 or uvx (recommended — no install needed)

Quickstart

Claude Code

claude mcp add -s user second-brain-joplin \
  -e JOPLIN_API_TOKEN=your-token-here \
  -- uvx second-brain-joplin serve

Other MCP clients

Setting Value
Command uvx second-brain-joplin serve
JOPLIN_API_TOKEN token from Joplin Web Clipper settings
JOPLIN_BASE_URL http://localhost:41184 (default)

See docs/install.md for per-client setup guides.


MCP Tools

Tool Description Writes?
joplin_overview List all notebooks with note counts No
joplin_search Keyword search across all notes No
joplin_read Read a note by ID No
joplin_recent Notes modified in the last N days No
joplin_create Create a note (human-gated) Yes

All tools are stubbed in v0.1. Implementation tracked in v0.2 milestone.


vs. second-brain-mcp (Obsidian)

second-brain-mcp second-brain-joplin
Note app Obsidian Joplin
Storage Plain .md files on disk Joplin REST API
Requires app running No Yes (Joplin + Web Clipper)
Semantic search Yes (bge-m3) Planned (v0.3)
Write support Human-gated Human-gated (v0.4)
Install uvx second-brain-mcp uvx second-brain-joplin

Notebook structure

The PARA method works well with Joplin. See docs/notebook-structure.md for a recommended setup.


Roadmap

Milestone Theme Status
v0.1 — Bootstrap Repo, CI, package skeleton Done
v0.2 — Core Read Tools All read MCP tools working Planned
v0.3 — Semantic Search Embedding index, semantic search Planned
v0.4 — Write Workflow Human-gated note creation Planned
v1.0 — Publish PyPI, full docs, templates Planned

Security & privacy

This server keeps your notes local: it talks only to Joplin's Web Clipper REST API on localhost and runs on your own machine. Anything an MCP client can read, the connected AI can read — so apply least privilege and don't expose notebooks with credentials or other sensitive data. Note creation is planned as an explicit human-gated flow (v0.4); v0.1 does no silent writes. See SECURITY.md for details and how to report a vulnerability.


Contributing

See CONTRIBUTING.md. Issues and PRs welcome — especially for testing against different Joplin versions and OS platforms.


License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

second_brain_joplin-0.1.0.tar.gz (105.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

second_brain_joplin-0.1.0-py3-none-any.whl (6.5 kB view details)

Uploaded Python 3

File details

Details for the file second_brain_joplin-0.1.0.tar.gz.

File metadata

  • Download URL: second_brain_joplin-0.1.0.tar.gz
  • Upload date:
  • Size: 105.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for second_brain_joplin-0.1.0.tar.gz
Algorithm Hash digest
SHA256 25e72d88548303b005a58fcb5ead576966af93b9eaaab1884b49579030f0b93c
MD5 a5023a383c728c040c014032b6813a47
BLAKE2b-256 71e4af2b0204dfccd36809a1206f11abc7a023628860f920119dddba2123a122

See more details on using hashes here.

Provenance

The following attestation bundles were made for second_brain_joplin-0.1.0.tar.gz:

Publisher: release.yml on jomkz/second-brain-joplin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file second_brain_joplin-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for second_brain_joplin-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1415b47a5c5e6eec9cb7b71e9e9c89047588da6a4851f64ede4f37c90a41aea1
MD5 4ad483a4fe0474199c306709bb397b25
BLAKE2b-256 26c7eeb76c75b0eb283487efefb58c2b72b5bdb80ee1957891221aecc99763ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for second_brain_joplin-0.1.0-py3-none-any.whl:

Publisher: release.yml on jomkz/second-brain-joplin

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page