# Joplin Mcp Server

> A Model Context Protocol (MCP) Server for https://joplinapp.org/ that enables note access through the https://modelcontextprotocol.io. Perfect for integration with AI assistants like Claude.

- **Type:** MCP server
- **Install:** `agentstack add mcp-dweigend-joplin-mcp-server`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [dweigend](https://agentstack.voostack.com/s/dweigend)
- **Installs:** 0
- **Category:** [Integrations](https://agentstack.voostack.com/c/integrations)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [dweigend](https://github.com/dweigend)
- **Source:** https://github.com/dweigend/joplin-mcp-server

## Install

```sh
agentstack add mcp-dweigend-joplin-mcp-server
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# 📝 Joplin MCP Server

A Model Context Protocol (MCP) Server for [Joplin](https://joplinapp.org/) that enables note access through the [Model Context Protocol](https://modelcontextprotocol.io). Perfect for integration with AI assistants like Claude.

## ✨ Features

- 🔍 **Search Notes**: Full-text search across all notes
- 📖 **Read Notes**: Retrieve individual notes
- ✏️ **Edit Notes**: Create new notes and update existing ones
- 🗑️ **Delete Notes**: Move notes to trash or delete permanently
- 📥 **Markdown Import**: Import markdown files as notes
- 🤖 **AI Integration**: Seamless integration with Claude and other MCP-capable AI assistants

## 🚀 Installation

### Prerequisites

- Python 3.10 or higher
- [Joplin Desktop](https://joplinapp.org/) with Web Clipper Service enabled
- [uv](https://github.com/astral-sh/uv) (Python package manager)

```bash
# Clone repository
git clone https://github.com/dweigend/joplin-mcp.git
cd joplin-mcp

# Create and activate virtual environment
uv venv
source .venv/bin/activate  # On Windows: .venv\Scripts\activate

# Install dependencies
```bash
uv pip install -e .
```

## ⚙️ Configuration

### Joplin API Token

1. Open Joplin Desktop
2. Go to Tools -> Options -> Web Clipper
3. Enable the Web Clipper Service
4. Copy the API Token

Create a `.env` file in the project directory:
```bash
JOPLIN_TOKEN=your_api_token_here
```

### Claude Desktop Setup

1. **Install Claude Desktop**
   - Download [Claude Desktop](https://claude.ai/download)
   - Ensure you have the latest version (Menu: Claude -> Check for Updates...)

2. **Configure MCP Server**
   ```json
   {
     "mcpServers": {
       "joplin": {
         "command": "/PATH/TO/UV/uv",
         "args": [
           "--directory",
           "/PATH/TO/YOUR/PROJECT/joplin_mcp",
           "run",
           "src/mcp/joplin_mcp.py"
         ]
       }
     }
   }
   ```
   - Replace `/PATH/TO/UV/uv` with the absolute path to your uv installation
     - Find the path with: `which uv`
     - Example macOS: `/Users/username/.local/bin/uv`
     - Example Windows: `C:\Users\username\AppData\Local\Microsoft\WindowsApps\uv.exe`
   - Replace `/PATH/TO/YOUR/PROJECT/joplin_mcp` with the absolute path to your project

   **Important**: Claude Desktop needs the full path to `uv` as it cannot access shell environment variables.

## 🛠️ Available Tools

### search_notes
Search for notes in Joplin.

**Parameters:**
- `query` (string): Search query
- `limit` (int, optional): Maximum number of results (default: 100)

### get_note
Retrieve a specific note by its ID.

**Parameters:**
- `note_id` (string): ID of the note

### create_note
Create a new note.

**Parameters:**
- `title` (string): Note title
- `body` (string, optional): Note content in Markdown
- `parent_id` (string, optional): ID of parent folder
- `is_todo` (boolean, optional): Whether this is a todo item

### update_note
Update an existing note.

**Parameters:**
- `note_id` (string): ID of note to update
- `title` (string, optional): New title
- `body` (string, optional): New content
- `parent_id` (string, optional): New parent folder ID
- `is_todo` (boolean, optional): New todo status

### delete_note
Delete a note.

**Parameters:**
- `note_id` (string): ID of note to delete
- `permanent` (boolean, optional): If true, permanently delete the note

### import_markdown
Import a markdown file as a new note.

**Parameters:**
- `file_path` (string): Path to the markdown file

## 🧪 Development

### Debug Mode

To start the server in debug mode:

```bash
MCP_LOG_LEVEL=debug mcp dev src/mcp/joplin_mcp.py
```

This starts the MCP Inspector at http://localhost:5173 where you can test the tools.

## 📄 License

[MIT License](LICENSE) - Copyright (c) 2025 David Weigend

## 👤 Author

**David Weigend**

* Website: [weigend.studio](https://weigend.studio)
* GitHub: [@dweigend](https://github.com/dweigend)

## 🤝 Contributing

Contributions, issues and feature requests are welcome!
Visit the [issues page](https://github.com/dweigend/joplin-mcp/issues).

## Source & license

This open-source MCP server is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [dweigend](https://github.com/dweigend)
- **Source:** [dweigend/joplin-mcp-server](https://github.com/dweigend/joplin-mcp-server)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** yes
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/mcp-dweigend-joplin-mcp-server
- Seller: https://agentstack.voostack.com/s/dweigend
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
