Rootr MCP Server

Rootr MCP Server

Provides AI agents with direct, permissioned access to team documents, databases, spreadsheets, and knowledge via an MCP interface, enabling natural-language queries and management.

Category
Visit Server

README

Rootr CLI + MCP Server

Connect your team's living knowledge base to Claude, ChatGPT, and any AI agent.

Rootr is a team knowledge & document workspace. This package is the official way to give an AI agent direct, permissioned access to your team's shared documents, structured data, and institutional knowledge — so your assistant already knows what your team knows, instead of you copy-pasting context into every conversation.

There are two ways to connect.

1. Remote connector — no install (recommended)

Rootr hosts a remote MCP endpoint over Streamable HTTP. In Claude Desktop, claude.ai, or ChatGPT, add a connector with just the URL and sign in with OAuth:

https://rootr.io/mcp

No JSON, no CLI, no tokens to paste. Log in, pick the workspace, and your team's docs are available to the assistant with your existing permissions. See the docs.

2. Local CLI / stdio MCP server (rootr-cli)

For the shell, or for agents that speak to a local stdio MCP server (e.g. Claude Code):

npm install -g rootr-cli
rootr config --api-key rootr_xxxx --workspace ws_xxx
rootr mcp          # start the stdio MCP server

The rootr command also works standalone: ls, read, write, append, edit, search, ask, ws, config.

Pure Node.js ESM, no build step. Requires Node 18+ (uses the built-in fetch).

  • Homepage: https://rootr.io
  • Docs: https://rootr.io/en/docs
  • npm: https://www.npmjs.com/package/rootr-cli

Install

Run it straight from a clone, or install globally.

npm install -g rootr-cli
rootr --help

# or from source
cd cli && npm install
node bin/rootr.js --help

Configuration

Precedence: environment variables > ~/.rootr/config.json

Env var Config key Description
ROOTR_API_KEY apiKey A rootr_... API key. Sent as the x-api-key header on every request.
ROOTR_WORKSPACE workspace Workspace id
ROOTR_BASE_URL baseUrl Defaults to https://rootr.io/api/v1

Save to the config file (created with chmod 600):

rootr config --api-key rootr_xxxxxxxxxxxxxxxx --workspace ws_123
# optional on-prem / dev base URL
rootr config --api-key rootr_xxx --workspace ws_123 --base-url https://dev.rootr.io/api/v1

rootr config          # show current config (api key shown masked)

Two kinds of key

Rootr API keys come in two kinds, and some tools require a specific one:

  • Workspace key — scoped to a single workspace (docs:read / docs:write / graph:read / ask / webhooks:manage). Enough for most document, LOG, issue, webhook, and ask tools.
  • Account key (PAT) — acts across your whole account. With the workspaces:create scope it can create new workspaces (rootr_create_workspace). Using a workspace key for an account-level action returns a 403 with a hint that an account key is required.

CLI usage

Path rule: an argument starting with / is treated as a path (resolved to a node id via the by-path API; needs a workspace set). Otherwise it is treated as a node id.

rootr ls                                   # whole tree  (TYPE<TAB>path)
rootr ls /notes                            # subtree

rootr read /notes/todo.md                  # markdown to stdout
rootr read /notes/todo.md --json           # full JSON incl. metadata

echo "# Title" | rootr write /notes/new.md # full replace (creates if missing)
rootr write /notes/new.md --file ./local.md

rootr append /notes/log.md "Deployed today"          # safe, conflict-free
rootr append /notes/log.md "- one more" --heading "## Todo"

rootr edit /notes/todo.md --find "- [ ] ship" --replace "- [x] ship"

rootr search "deploy runbook"              # path — snippet
rootr ws                                   # list workspaces (id<TAB>name)
rootr ask "why did latency go up after last week's deploy?"

append never rewrites the whole document, so it is safe to run concurrently. write supports --if-match "\"etag\"" for optimistic concurrency (a 412 means the document changed underneath you — re-read and retry). edit returns 409 if --find is missing or not unique; pass --all to replace every match. ask queries the workspace knowledge graph (GraphRAG) and prints the answer plus citations (document path: quote).

Use as an MCP server

rootr mcp starts a Model Context Protocol server over stdio. It exposes 80+ tools across the full Rootr surface, so an agent can author and query every node type:

Group Tools (examples)
Documents rootr_list, rootr_read, rootr_append (recommended, conflict-free), rootr_edit, rootr_write, rootr_search, rootr_document_versions, rootr_delete_node, rootr_duplicate_node
Publishing & comments rootr_publish_document, rootr_set_document_public, rootr_document_public_status, rootr_comment_document, rootr_list_document_comments
Workspaces & scaffolding rootr_workspaces, rootr_scaffold_plan, rootr_create_workspace, rootr_scaffold_apply
Databases (typed columns + board/table views) rootr_read_database, rootr_add_row, rootr_update_row, rootr_delete_row, rootr_list_rows
Spreadsheets (formulas) rootr_create_spreadsheet, rootr_read_spreadsheet, rootr_update_spreadsheet, rootr_create_sheet, rootr_update_sheet, rootr_delete_sheet, rootr_patch_spreadsheet_cells
Whiteboards rootr_create_whiteboard, rootr_read_whiteboard, rootr_update_whiteboard
Forms rootr_create_form, rootr_read_form, rootr_update_form, rootr_list_form_responses, rootr_submit_form_response, rootr_create_form_share_link, rootr_list_form_share_links
CRM rootr_crm_* — companies, contacts, deals (kanban), activities, tasks, CSV import
Presentations rootr_create_presentation, rootr_read_presentation, rootr_update_presentation, rootr_update_presentation_slide, rootr_append_presentation_slides, rootr_reorder_presentation_slides
LOG datastores rootr_create_log_store, rootr_update_log_fields, rootr_add_log_entries, rootr_query_log_entries, rootr_log_stats
Issues rootr_create_issue_tracker, rootr_list_issues, rootr_create_issue, rootr_get_issue, rootr_update_issue, rootr_comment_issue
Webhooks rootr_list_webhooks, rootr_create_webhook, rootr_delete_webhook
GraphRAG ask rootr_ask — natural-language root-cause Q&A over the knowledge graph, with citations
Images rootr_generate_image, rootr_remove_image_background

Tool descriptions steer agents to prefer rootr_append / rootr_edit over the destructive rootr_write. Tools that take a workspace argument fall back to ROOTR_WORKSPACE (or the config default) when it is omitted. All tool schemas are in English; JSON-returning tools respond with pretty-printed JSON text.

Register in Claude Code / Claude Desktop

Add to ~/.claude.json (Claude Code) or your Claude Desktop MCP config:

{
  "mcpServers": {
    "rootr": {
      "command": "rootr",
      "args": ["mcp"],
      "env": {
        "ROOTR_API_KEY": "rootr_xxxxxxxxxxxxxxxx",
        "ROOTR_WORKSPACE": "ws_123"
      }
    }
  }
}

(If you did not install globally, use "command": "node" and "args": ["/path/to/rootr-cli/bin/rootr.js", "mcp"].)

Error handling

On a non-2xx response the CLI prints the API message (when present) to stderr and exits 1:

  • 401 / 403 — check the API key / workspace scope
  • 412 — document changed since you read it (If-Match mismatch): re-read and retry
  • 409 — the server's reason is shown verbatim (e.g. edit find not found / not unique)

Layout

  • bin/rootr.js — entry point, command dispatch
  • lib/config.js — config load/save
  • lib/client.js — Rootr REST API client
  • lib/resolve.js — shared path/id target resolution
  • lib/mcp.js — MCP stdio server, assembles all tool groups
  • lib/mcp-tools/* — one module per tool group (documents, workspaces, databases, spreadsheets, whiteboards, forms, crm, presentations, logs, issues, webhooks, ask, misc)

Dependencies: @modelcontextprotocol/sdk (MCP server) and zod (tool input schemas). The CLI core has no external dependencies. No build step — pure ESM JavaScript.


Made by Inspirio · rootr.io · info@inspirio.co

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured