CherryTree MCP Server
CherryTree MCP Server
MCP-сервер, который предоставляет чтение и запись файлов CherryTree .ctd (XML) как нативные инструменты Claude Code.
Поддерживает форматированный текст, codeboxes, таблицы, изображения, якоря и закладки. Все записи проходят автоматическую побайтовую проверку, сравнивающую резервную копию с итоговым файлом на диске.
Доступные инструменты
Чтение
list_nodes— список узлов дерева (с глубиной и хлебными крошками)read_node— чтение содержимого узла (текст, форматирование, виджеты)search_nodes— полнотекстовый поиск по всем узламlist_bookmarks— список узлов, отмеченных как избранные
Запись
create_node— создание узла (обычный текст или XML с форматированием черезcontent_xml)create_node_with_codebox— создание узла с codebox (или XML с форматированием черезcontent_xml)update_node_content— замена или добавление (обычный текст или XML с форматированием черезcontent_xml)append_codebox_to_node— добавление codebox или XML с форматированием в существующий узелupdate_node_properties— изменение имени, тегов, значка, цвета, только для чтенияdelete_node— удаление узла и его потомковmove_node— перемещение узла к другому родителю
Закладки
add_bookmark— добавить узел в избранноеremove_bookmark— удалить узел из избранного
Related MCP server: notion-full-mcp
форматированный текст (content_xml)
Инструменты записи принимают content_xml для полного форматирования CherryTree:
<rich_text scale="h1" foreground="#00000000ffff" weight="heavy">Título</rich_text>
<rich_text>
Texto normal com </rich_text>
<rich_text weight="heavy">negrito</rich_text>
<rich_text> e </rich_text>
<rich_text style="italic">itálico</rich_text>
<rich_text foreground="#e66100" weight="heavy"> e laranja bold</rich_text>
<rich_text link="node 42">link interno</rich_text>Поддерживаемые атрибуты в <rich_text>
Атрибут | Значения | Пример |
|
| жирный |
|
|
|
|
| выделение |
|
| курсив |
|
| подчёркивание |
|
| зачёркивание |
|
| заголовки |
|
| моноширинный |
|
| выравнивание |
|
| ссылки |
|
| отступ |
Виджеты (позиционируются через char_offset)
Виджеты отображаются внутри строки в позиции char_offset (счётчик символов в объединённом тексте <rich_text>). Каждый виджет занимает ровно 1 символ в буфере.
<codebox char_offset="42" justification="left" frame_width="700"
frame_height="200" width_in_pixels="1"
syntax_highlighting="python3" highlight_brackets="1"
show_line_numbers="0">print("hello")</codebox>
<table char_offset="100" col_min="40" col_max="400"
col_widths="200,200" is_light="0">
<row><cell>valor1</cell><cell>valor2</cell></row>
<row><cell>header1</cell><cell>header2</cell></row>
</table>
<encoded_png char_offset="50" anchor="nome_ancora"/>Архитектура
Чтение использует
lxmlдля парсинга/запросов XML (безопасно, без обратной записи)Запись использует манипуляции с сырыми строками, чтобы избежать нормализации
\r, которая портитchar_offsetв неотредактированных узлах (багlxml/ETпри сериализации)Резервная копия
.ctd.bakсоздаётся автоматически перед каждой записьюПроверка побайтовая после каждой записи: читает резервную копию и новый файл с диска, сравнивает префикс/суффикс, определяет изменённый узел, считает общее количество узлов, проверяет XML
Формат проверки
Каждая операция записи возвращает отчёт вида:
[AUDIT] readback 45,120,109 bytes: OK
delta: +252 bytes (45,119,857 -> 45,120,109)
change region: bak[45,119,844:45,119,844] -> disk[45,119,844:45,120,096]
prefix (45,119,844 bytes): OK
suffix (13 bytes): OK
nodes: 5304 (backup) -> 5305 (disco) [+1]
node adicionado: 6481 "Nome do Node" (alvo)
integridade: OK
XML parse: OKЕсли какой-либо байт за пределами целевой области отличается между резервной копией и диском, отчёт показывает CORRUPTED! и INTEGRITY FAILURE.
Установка
1. Создать виртуальное окружение и установить зависимости
cd ~/cherrytree-mcp
python3 -m venv .venv
.venv/bin/pip install -e .2. Настроить MCP в Claude Code
claude mcp add cherrytree -s user \
-e CHERRYTREE_FILE="/caminho/para/seu/arquivo.ctd" \
-- /caminho/para/cherrytree-mcp/.venv/bin/python \
/caminho/para/cherrytree-mcp/server.py3. Перезапустить Claude Code
Инструменты появятся автоматически как mcp__cherrytree__<имя_инструмента>.
Переменные окружения
Переменная | Описание |
| Абсолютный путь к файлу CherryTree |
Требования
Python >= 3.11
CherryTree v1.x (формат
.ctdXML, не.ctbSQLite)Зависимости:
mcp[cli]>=1.0.0,lxml>=5.0.0
Ограничения
Поддерживается только формат
.ctd(XML). Файлы.ctb(SQLite) не поддерживаются.После редактирования через MCP CherryTree необходимо перезагрузить (закрыть/открыть или переключить узел), чтобы изменения отобразились в интерфейсе.
Операции записи с
append=Falseвupdate_node_contentзаменяют всё содержимое узла (текст, codebox'ы, изображения, таблицы).
This server cannot be installed
Maintenance
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
- AlicenseAqualityCmaintenanceAn MCP server that enables reading, writing, and searching documents in Outline via its API. It supports document management, full-text search, and collection organization using Markdown formatting.83817MIT
- AlicenseAqualityCmaintenanceFull-featured Notion MCP server enabling deep page reading, block editing, snapshot/restore, file uploads, table manipulation, page restore, and destructive page copying.33MIT
- AlicenseNot gradedqualityCmaintenanceMCP server that provides read and write access to an Obsidian vault by interacting directly with markdown files on disk. Supports searching, listing, reading, creating, editing, and appending notes without requiring any Obsidian plugins.3,860ISC
- AlicenseNot gradedqualityDmaintenanceMCP server for mind-wiki — access your personal knowledge wiki from any directory or MCP-compatible client.MIT
Related MCP Connectors
MCP-native open-source Notion alternative: read & write pages, databases and kanban boards.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
MCP Server for Slima - AI Writing IDE for Novel Authors with AI Beta Reader.
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/lucaszarzur/cherrytree-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server