Rootr 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., "@Rootr MCP Serverread the weekly meeting notes"
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.
rootr-cli
Official CLI and MCP server for Rootr — a team documentation workspace that AI agents can read and write.
Point Claude, Cursor, or any MCP client at your workspace and it can browse the document tree, read and edit markdown, add rows to a database, open and close issues, build a slide deck, run a spreadsheet, or ask a question and get an answer with citations back to the exact document.
(한국어 문서: README.ko.md)
rootrCLI —ls,read,write,append,edit,search,ws,ask,configrootr mcp— stdio MCP server, 81 tools (see MCP tools)
Plain Node.js ESM, no build step. Node 18+ (uses the built-in fetch).
Two ways to connect
1. Remote connector — nothing to install. Rootr hosts an MCP endpoint with OAuth:
https://rootr.io/mcpAdd it as a custom connector in Claude (Streamable HTTP), sign in, done. Same tools as the local server. This is the recommended path for most people.
2. Local CLI — use this repo when you want the client running on your own machine or infrastructure, or when you want the shell commands.
npx rootr-cli mcp # run the MCP server straight from npm
npm install -g rootr-cli # or install the `rootr` command globallyOr from a clone:
npm install
node bin/rootr.js --helpDocker:
docker build -t rootr-cli .
docker run -i --rm -e ROOTR_API_KEY=rootr_xxx -e ROOTR_WORKSPACE=ws_123 rootr-cliRelated MCP server: notes-mcp
Configuration
Precedence: environment variables > ~/.rootr/config.json
Env var | Config key | Description |
|
| API key ( |
|
| Workspace id |
|
| Defaults to |
Save them to the config file:
rootr config --api-key rootr_xxxxxxxxxxxxxxxx --workspace ws_123
# self-hosted or dev server
rootr config --api-key rootr_xxx --workspace ws_123 --base-url https://dev.rootr.io/api/v1~/.rootr/config.json is written with mode 600.
Two kinds of key
Workspace key — scoped to one workspace. Scopes:
docs:read,docs:write,graph:read,ask,webhooks:manage. Enough for almost every tool.Account key (PAT) — acts for the whole account. With the
workspaces:createscope it can create new workspaces (rootr_create_workspace). Trying that with a workspace key returns 403 with a hint saying an account key is required.
Show the current configuration (only the first 12 characters of the key are printed):
rootr configCLI
Path arguments starting with / are resolved as paths through the by-path API (needs a
workspace). Anything else is treated as a node id.
rootr ls # whole tree, TYPE<TAB>path
rootr ls /notes # one subtree
rootr read /notes/todo.md # markdown to stdout
rootr read /notes/todo.md --json # full JSON with metadata
echo "# Title" | rootr write /notes/new.md
rootr write /notes/new.md --file ./local.md
rootr write <nodeId> --file ./local.md --if-match '"abc123"' # optimistic concurrency
rootr append /notes/log.md "deploy finished"
rootr append /notes/log.md "- one more item" --heading "## Todo"
cat diff.md | rootr append /notes/log.md
rootr edit /notes/todo.md --find "- [ ] deploy" --replace "- [x] deploy"
rootr edit /notes/todo.md --find "TODO" --replace "DONE" --all
rootr search "deployment runbook"
rootr ws # id<TAB>name
rootr ask "why did latency go up after last week's deploy?"append never rewrites the whole document, so concurrent writers cannot clobber each other —
prefer it over write. --heading appends to the end of that heading's section.
edit returns 409 if the --find text is missing or not unique; the server's reason is printed
as-is. write --if-match returns 412 if the document changed in the meantime.
ask queries the workspace knowledge graph (GraphRAG) and prints the answer plus citations in
document path: quote form. Requires the ask scope.
MCP tools
rootr mcp speaks MCP over stdio. 81 tools:
Group | Count | Tools |
Documents | 12 | list, read, append, edit, write, search, comment, list comments, publish, set public, public status, duplicate node |
Workspaces & scaffolding | 4 | workspaces, scaffold plan, create workspace, scaffold apply |
Databases | 5 | read schema, list rows, add/update/delete row |
Spreadsheets | 7 | create/read/update, per-sheet create/update/delete, patch cells & formulas |
Whiteboards | 3 | create/read/update the shapes & edges scene |
Forms | 7 | create/read/update, list & submit responses, share links |
Presentations | 6 | create/read/update deck, append/update/reorder slides |
Images | 2 | generate image, remove background |
Issue tracker | 6 | create tracker, list/create/get/update issue, comment |
CRM | 18 | companies, contacts, deals (incl. pipeline moves), activities, tasks, CSV import |
LOG datastores | 5 | create store, update fields, add entries, query, stats |
Root-cause Q&A | 1 | ask the knowledge graph, answer with citations |
Webhooks | 3 | list, create (secret shown once), delete |
Versions & trash | 2 | document version history, move node to trash |
Guidance baked into the tool descriptions: agents should reach for rootr_append and
rootr_edit, and use rootr_write only for a genuine full rewrite (ideally with ifMatch).
Tools that take a workspace argument fall back to ROOTR_WORKSPACE / the config file, and
return a clear error if neither is set.
Scope notes: document, database, spreadsheet, whiteboard, form, presentation, issue, CRM and LOG
tools need docs:read / docs:write; rootr_ask needs ask; webhook tools need
webhooks:manage; rootr_create_workspace needs an account key with workspaces:create.
For high-quality slide decks, write self-contained 1280×720 HTML into each slide's html field —
the viewer renders it verbatim instead of the default template. The rules (inline everything,
images as data URIs, font fallback stack, <span class="pn"> for page numbers, and keeping the
text fields filled so the deck still feeds the knowledge graph) are documented in
/llms.txt.
Register with Claude Code / Claude Desktop
{
"mcpServers": {
"rootr": {
"command": "npx",
"args": ["-y", "rootr-cli", "mcp"],
"env": {
"ROOTR_API_KEY": "rootr_xxxxxxxxxxxxxxxx",
"ROOTR_WORKSPACE": "ws_123"
}
}
}
}With a global install, use "command": "rootr" and "args": ["mcp"]. From a clone, point
command at node and args at ["/path/to/rootr-cli/bin/rootr.js", "mcp"].
Errors
On a non-2xx response the CLI prints the API's message to stderr and exits 1, with hints:
401/403— check the API key and workspace scopes412— document changed since you read it; read again and retry (If-Match mismatch)409— the server's reason is shown verbatim (e.g.editfound no unique match)
Development
Dependencies:
@modelcontextprotocol/sdk(MCP server) andzod(tool input schemas). The CLI itself (bin/rootr.js,lib/config.js,lib/client.js,lib/resolve.js) has none.No build step — plain ESM JavaScript.
bin/rootr.js entry point, command dispatch
lib/config.js config load/save
lib/client.js Rootr REST client
lib/resolve.js path/id target resolution
lib/mcp.js MCP stdio server, assembles the tool modules
lib/mcp-tools/*.js one module per tool group (shared, documents, workspaces, logs,
ask, issues, databases, webhooks, crm, presentations,
spreadsheets, whiteboards, forms, misc)Smoke-test the MCP server without any credentials — it must start and list its tools:
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"t","version":"1"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
| node bin/rootr.js mcpLicense
MIT — see LICENSE.
Maintenance
Related MCP Servers
- AlicenseCqualityDmaintenanceMCP protocol server for managing multi-project Markdown documents, supporting project isolation and LLM tool integration.29134MIT
- Alicense-qualityFmaintenanceA simple MCP server for chatbot/human collaborative management of text content stored as markdown files with YAML frontmatter.3MIT
- Flicense-qualityAmaintenanceMCP server for the Zenvoy Markdown notes app, providing 26 tools for vault operations like reading, creating, searching notes, and managing tasks, templates, and comments.2
- Flicense-qualityBmaintenanceMCP server for structured markdown knowledge vaults that provides validation, FTS5 search, and wikilink cross-references. Enables AI agents to prime context and search across vaults using two MCP tools and template resources.6
Related MCP Connectors
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
MCP server for AgentDocs (agentdocs.eu): read, search, write, comment on & share Markdown docs.
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
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/gwmage/rootr-cli'
If you have feedback or need assistance with the MCP directory API, please join our Discord server