Joplin MCP
Joplin MCP
MCP-сервер, который предоставляет коллекцию заметок Joplin как набор инструментов и работает как агент с состоянием на Cloudflare Workers. Укажите MCP-клиенту (Claude и др.) на развёрнутый эндпоинт — и он сможет просматривать блокноты и заметки, а также создавать, обновлять и удалять заметки и блокноты напрямую в вашем экземпляре Joplin.
Как это работает
Каждый вызов инструмента идёт напрямую к Joplin Data API на вашем работающем экземпляре — между ними нет ни индекса, ни кэша. Сам Joplin Data API никогда не доступен из публичного интернета: Worker обращается к нему приватно через привязку Workers VPC Service поверх Cloudflare Tunnel.
MCP client ──HTTP/SSE──► Worker (/mcp) ──► JoplinMCP (Durable Object)
│
JoplinClient ──► JOPLIN_VPC (Workers VPC Service)
│
Cloudflare Tunnel ──► Joplin Data API (LAN-only)JoplinMCP — это McpAgent, размещённый на Durable Object.
Related MCP server: Capacities MCP Worker
Инструменты
Каждый инструмент, принимающий заметку или блокнот, так же легко принимает имя, как и 32-значный шестнадцатеричный ID, поэтому вызывающему агенту не нужно тратить лишнее обращение на поиск ID. Имена сопоставляются нечётко (регистр, диакритика, пунктуация и порядок слов игнорируются); если имя действительно неоднозначно, инструмент возвращает кандидатов с их ID, а не угадывает.
Инструмент | Описание |
| Читает заметку по названию (нечётко) или ID |
| Полнотекстовый поиск по всем заметкам с фрагментами |
| Последние обновлённые заметки во всех блокнотах |
| Перечисляет блокноты полными путями с ID |
| Перечисляет заметки в блокноте; если блокнот не указан — в блокноте по умолчанию |
| Создаёт заметку в блокноте по умолчанию, если не указано иное |
| Заменяет содержимое или добавляет к нему текст ( |
| Перемещает заметку в корзину ( |
| Создаёт блокнот, при необходимости вложенный |
| Переименовывает или перемещает блокнот |
| Перемещает блокнот (и его заметки) в корзину |
Заметки и блокноты в корзине исключаются из всех результатов — и из списков, и из поиска, и из прямых чтений.
Меньше обращений
Инструменты устроены так, чтобы агент мог добраться до нужной заметки за как можно меньшее число вызовов. Чтение заметки по имени — один вызов вместо трёх:
list_notebooks → list_notes → get_note ⟶ get_note { note: "grocery list" }а добавление строки к ней — один вызов вместо двух, потому что append выполняет чтение-изменение-запись на стороне сервера:
get_note → update_note { body: <whole note> } ⟶ update_note { note: "grocery list", append: "- milk" }Разрешение имён идёт через собственный поисковый индекс Joplin, поэтому обычно стоит один вызов API; локальный индекс заголовков строится только тогда, когда поиск не даёт результатов (опечатки или заголовки, которые полнотекстовый индекс разбивает на токены необычным образом). Список блокнотов кэшируется в Durable Object, так что разрешение имени блокнота обычно ничего не стоит.
Настройка
npm installПеред развёртыванием ваш Joplin Data API должен быть доступен через Cloudflare Tunnel, зарегистрированный как Workers VPC Service:
npx wrangler vpc service create joplin-data-api \
--type http \
--tunnel-id <YOUR_TUNNEL_ID> \
--hostname <JOPLIN_HOST_ON_YOUR_LAN> \
--http-port <JOPLIN_PORT>Затем пропишите полученный Service ID в wrangler.jsonc:
"vpc_services": [
{ "binding": "JOPLIN_VPC", "service_id": "<service-id-from-above>", "remote": true }
]JOPLIN_API_TOKEN (токен Joplin Data API) считывается из Cloudflare Secrets Store, а не из обычного секрета Wrangler. Создайте его один раз для аккаунта, и его можно переиспользовать в разных Workers:
wrangler secrets-store secret create <store-id> \
--name joplin-token --scopes workers --remoteЗатем wrangler.jsonc подключает его через secrets_store_secrets:
"secrets_store_secrets": [
{ "binding": "JOPLIN_API_TOKEN", "store_id": "<store-id>", "secret_name": "joplin-token" }
]Для локальной разработки создайте локальный секрет с тем же именем (без --remote), чтобы wrangler dev мог его прочитать.
Блокнот по умолчанию
Инструменты, принимающие блокнот, по умолчанию используют блокнот, заданный переменной JOPLIN_DEFAULT_NOTEBOOK в wrangler.jsonc (из коробки — "Default"). Укажите в ней тот блокнот, в который должны попадать новые заметки; если блокнота с таким именем не существует, инструменты сообщают об этом, а не выбирают какой-то сами.
См. CLAUDE.md — там полная архитектура и справочник по привязкам.
Разработка
npm run dev # wrangler dev — local development with hot reload
npm run test # vitest run
npm run typecheck # tsc --noEmitДеплой
npm run deployИли подключите этот репозиторий к Cloudflare Worker для деплоев через git. В любом случае секрет joplin-token должен существовать в Secrets Store аккаунта — он никогда не хранится в репозитории.
Стек
Cloudflare Workers + Durable Objects (на базе SQLite)
Cloudflare Agents SDK (
agents/mcp)TypeScript, Zod для схем входных данных инструментов, Vitest
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceSelf-hosted semantic memory layer for Claude and MCP-compatible AI clients. Store notes, search by meaning not keywords, and recall relevant context automatically across sessions. Runs free on Cloudflare Workers, D1, Vectorize, and Workers AI2738MIT
- AlicenseNot gradedqualityDmaintenanceA Cloudflare Worker that wraps the Capacities API as a remote MCP server, enabling Claude on any device to interact with your Capacities knowledge base.MIT
- AlicenseAqualityAmaintenanceEnables AI assistants to interact with Joplin notes, notebooks, and tags through a standardized MCP interface, supporting CRUD operations, search, and organization.19165MIT
- AlicenseNot gradedqualityCmaintenanceUnofficial MCP server that enables interaction with NotebookLM through a Cloudflare Worker, supporting tools for notebooks, sources, chat, notes, and more. It uses OAuth authentication and stateless encrypted credential envelopes.1MIT
Related MCP Connectors
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
Read and write your Fresh Jots notes from Claude, Cursor, and any MCP client.
Hosted remote MCP server for YNAB on Cloudflare Workers with OAuth
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/crunchypancake1/joplin-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server