CherryTree MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CherryTree MCP Serversearch nodes for 'project plan' and show the tree"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
CherryTree MCP Server
MCP server that exposes reading and writing of CherryTree .ctd (XML) files as native Claude Code tools.
Supports rich text, codeboxes, tables, images, anchors, and bookmarks. All writes go through automatic byte-by-byte auditing comparing the backup with the resulting file on disk.
Available Tools
Reading
list_nodes— list tree nodes (with depth and breadcrumb)read_node— read a node's content (text, formatting, widgets)search_nodes— full-text search across all nodeslist_bookmarks— list nodes marked as favorites
Writing
create_node— create node (plain text or rich XML viacontent_xml)create_node_with_codebox— create node with codebox (or rich XML viacontent_xml)update_node_content— replace or append (plain text or rich XML viacontent_xml)append_codebox_to_node— add codebox or rich XML to an existing nodeupdate_node_properties— change name, tags, icon, color, readonlydelete_node— delete node and childrenmove_node— move node to another parent
Bookmarks
add_bookmark— add node to favoritesremove_bookmark— remove node from favorites
Related MCP server: notion-full-mcp
Rich Text (content_xml)
The writing tools accept content_xml for full CherryTree formatting:
<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>Supported attributes in <rich_text>
Attribute | Values | Example |
|
| bold |
|
|
|
|
| highlight |
|
| italic |
|
| underlined |
|
| strikethrough |
|
| headings |
|
| monospaced |
|
| alignment |
|
| links |
|
| indentation |
Widgets (positioned by char_offset)
Widgets are rendered inline at the char_offset position (character count in the concatenated text of the <rich_text> elements). Each widget occupies exactly 1 character in the buffer.
<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"/>Architecture
Reads use
lxmlfor XML parsing/queries (safe, no write-back)Writes use raw string manipulation to avoid
\rnormalization that corruptschar_offsetin unedited nodes (lxml/ETserialization bug)Backup
.ctd.bakcreated automatically before each writeAudit byte-by-byte after each write: reads backup and new file from disk, compares prefix/suffix, identifies changed node, counts total nodes, validates XML
Audit format
Every write operation returns a report like:
[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: OKIf any byte outside the target region differs between backup and disk, the report displays CORRUPTED! and INTEGRITY FAILURE.
Installation
1. Create virtualenv and install dependencies
cd ~/cherrytree-mcp
python3 -m venv .venv
.venv/bin/pip install -e .2. Configure MCP in 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. Restart Claude Code
The tools appear automatically as mcp__cherrytree__<tool_name>.
Environment variables
Variable | Description |
| Absolute path to the CherryTree |
Requirements
Python >= 3.11
CherryTree v1.x (
.ctdXML format, not.ctbSQLite)Dependencies:
mcp[cli]>=1.0.0,lxml>=5.0.0
Limitations
Only
.ctd(XML) format..ctb(SQLite) files are not supported.CherryTree needs to be reloaded (close/open or switch nodes) after MCP edits to reflect changes in the UI.
Write operations with
append=Falseinupdate_node_contentreplace the entire node content (text, codeboxes, images, tables).
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