alondmnt/joplin-mcp/joplin
Claude Code and agent skill by alondmnt/joplin-mcp
- community
Checking that the SKILL.md file is still in the repository.
Orchestration guidance for Joplin note, notebook, and tag management tools
Install
npx vskill@latest install alondmnt/joplin-mcp/joplinSKILL.md
Joplin MCP — Orchestration Guide
This skill covers non-obvious tool interactions. Tool parameters are already in the tool schemas — don't restate them here.
Setup
If Joplin MCP tools (e.g., ping_joplin) aren't available, the server isn't connected. Follow these steps to configure it automatically:
- Ask the user for their Joplin API token. Tell them where to find it:
> Open Joplin Desktop → Tools → Options → Web Clipper → copy the Authorization token.
- Write `.mcp.json` to the project root with the token. Use the Write tool to create the file:
``json { "mcpServers": { "joplin-mcp": { "command": "uvx", "args": ["--from", "joplin-mcp", "joplin-mcp-server"], "env": { "JOPLIN_TOKEN": "<paste_token_here>" } } } } ``
This file is already covered by .gitignore (.* rule) so it won't be committed.
- Tell the user to restart Claude Code. The MCP server is loaded at startup, so a restart is required for the tools to appear.
- After restart, call
ping_joplinto verify the connection.
Critical: edit_note vs update_note
- `edit_note` — find/replace, append, prepend. Use this for partial changes.
- `update_note(body=...)` — replaces the entire body. Only use when you intend to rewrite the whole note.
If you need to change a paragraph, fix a typo, or append a section: always use edit_note.
Reading long notes
get_note returns a table of contents (not content) when a note exceeds ~50 lines. To read the actual content:
get_note(note_id)— see the TOC and line countget_note(note_id, section="Section Name")— extract a specific sectionget_note(note_id, start_line=1, line_count=50)— sequential reading by line rangeget_note(note_id, force_full=True)— force full content (large context cost)
IDs vs names
| Parameter | Accepts | |
|---|---|---|
note_id | 32-char hex ID only | |
notebook_name | Human-readable name (e.g., "Work") | |
tag_name | Human-readable name (e.g., "important") | |
parent_name | Notebook name or path (e.g., "Projects/Work"); omit for top-level, "/" to move to top-level |
Search results return IDs — use those IDs in subsequent calls.
Pre-check before bulk tagging
tag_note fails if the tag doesn't exist. Before tagging multiple notes:
create_tag("my-tag")— create it first (idempotent if it already exists)- Then loop:
tag_note(note_id, "my-tag")for each note
Workflow recipes
Edit a long note
Create a sub-notebook with notes
Bulk-tag notes from search
Move a note to a different notebook
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/joplin/SKILL.md
Popularity
- Repository stars
- 74
- Repository forks
- 9
- 7-day trend score
- 22
Stars and forks are for the whole GitHub repository, not this skill alone. Refreshed 19 Mar 2026, 7 months ago.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/alondmnt/joplin-mcp/joplin)