TabTree

app.tabtreePublished by tabtree.appOfficial publisherv1.22.0Updated Nov 7, 2026

Build mind maps, kanban boards and whiteboards in your TabTree account, team spaces included.

Overview

AI-generated overview

Connects an assistant to a TabTree account so it can read, search and build mind maps, kanban boards and whiteboards, including team spaces.

What you can do
  • List and search the whole library of maps, boards, notes and kanbans, including team spaces
  • Read a single map as a markdown outline or a board as elements and connections
  • Create new mind maps, whiteboards with shapes, tables and images, and kanban boards with columns and cards
  • Turn a project brief into a planted tree, a full project plan or a knowledge-base entry set
  • Propose changes to existing maps and boards, and deliver finished work back onto a card for approval
  • Read a card's generated prompt and a kanban's dashboard numbers such as burnup, blockers and forecast
When to use it
Useful when someone keeps planning, project and knowledge work in TabTree and wants an assistant to turn conversations, transcripts or specs into real maps and boards, or to read existing ones for context. Also fits teams that want a coding session tied to a board card.
Requirements
A TabTree account and a connector key (TABTREE_API_KEY, starting with tt_live_) created in TabTree settings, or OAuth sign-in when connecting by address to the remote endpoint. The local option runs the npm package tabtree-mcp through npx, so Node.js is needed; network access to tabtree.app is required.
Before you install
The connector key is a live account credential that grants access to the user's own and team-space maps; keep it out of repositories and shared files. It can create and change maps and boards, and harvest files conversation content into the account, though changes to existing content are shown for approval and nothing is deleted. Delivered work and harvested items wait for the user's acceptance in TabTree.

Installation

In SourceWeft

  1. Open TabTree in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/app.tabtree%2Ftabtree/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "tabtree": {
      "type": "http",
      "url": "https://tabtree.app/mcp"
    }
  }
}

README

TabTree

Mind maps, kanban boards and whiteboards — one document, many views, in your account.

Live demo — no signup · tabtree.app · Templates · Claude connector

[TabTree]


What it is

TabTree is a mind-mapping, kanban and whiteboard app at tabtree.app. One document reads several ways: mind map, kanban board, Gantt chart, calendar, page of notes, spreadsheet or full-screen presentation. Switch views; nothing is converted and nothing is lost.

Your maps follow your accountSign in on your laptop or your phone and your library is there.
Team spacesInvite people into a space: shared maps and boards, live presence, comments, a daily digest.
TemplatesBusiness Model Canvas, Lean Canvas, OKRs, roadmaps, agent specs… browse them
It leaves the buildingPNG posts, carousel PDFs, MP4 flythroughs, or a shared page anyone can read.
Claude works in itThe connector below lets Claude read your library and build maps, boards and kanbans in it.

This repository

TabTree itself is a commercial product and its source is not published here. This repository is the public face of it, and it holds four things that are useful on their own:

  • mcp/ — the full source of the Claude connector, free to use, copy, redistribute and modify (its own licence, no attribution required), and the same code published to npm as tabtree-mcp.
  • plugins/tabtree/ — the Claude Code plugin: it ties a coding session to one card of a board (your commits land on it), ships the connector, and adds a facilitation skill that ends in a real document. See Claude Code plugin below.
  • templates/ — template outlines in plain Markdown, each with a link that opens it live. Paste them into TabTree, or into any outliner.
  • screenshots/ — rendered by the real app, not mocked up.

To see the app itself, try the demo — it runs in your browser, with nothing to install and no signup.

Claude connector

Let Claude read your TabTree library and turn a conversation, a transcript or a spec into a real mind map, kanban board or whiteboard — in your account, on every device, and in the team spaces you belong to.

1. Get your connector key. In TabTree: ⚙️ Settings → Account → Claude connector → Create a connector key. It is shown once and starts with tt_live_.

2. Claude Desktop — double-click. Download TabTree-Connector.mcpb (or from tabtree.app/connector) and double-click it. Claude Desktop ships its own Node and asks for your key on its install screen.

No install — claude.ai, ChatGPT, Cursor: connect by address, https://tabtree.app/mcp. The app opens a TabTree page where you sign in and press Allow: no key to copy. In claude.ai: Settings → Connectors → Add custom connector, then paste the address.

Claude Code, or any MCP client:

bash
claude mcp add tabtree --scope user -e TABTREE_API_KEY="tt_live_…" -- npx -y tabtree-mcp

Or in your client's config:

json
{  "mcpServers": {    "tabtree": {      "command": "npx",      "args": ["-y", "tabtree-mcp"],      "env": { "TABTREE_API_KEY": "tt_live_…" }    }  }}

Fourteen tools: list_maps, read_map, search_maps, create_mindmap, plant_project (a brief becomes a tree — roots, branches, birds), create_kanban, create_board (with your own images, and tables), plan_system (a whole system from a brief, built after review), propose_changes, harvest, fill_knowledge, card_prompt, deliver_card, and board_numbers (a kanban's burnup, what is blocking, cycle time and forecast — the numbers of TabTree's dashboard). The connector never overwrites or deletes a map. Safe changes to an existing map (add a card, move it, tick it, assign it, date it, comment on it) are applied by TabTree itself while it is open, and Cmd+Z undoes them; anything that rewrites or removes what someone wrote is shown to you first, as a banner on that map. Full detail in mcp/README.md.

Claude Code plugin

Ties a Claude Code session to one card of a TabTree board. Claude knows which card it is working on — even after /clear — and your commits land on that card as a comment, without you writing anything.

bash
claude plugin marketplace add ai4xedu/tabtree-mcpclaude plugin install tabtree@tabtree

Then give it your connector key (tt_live_…, from TabTree → ⚙️ Settings → Account → Claude connector): inside a Claude Code session, run /plugin configure tabtree@tabtree. From a shell, claude plugin configure tabtree@tabtree --values-stdin reads it as {"api_key":"tt_live_…"} on standard input. The key is kept by Claude Code, never written into a file of your repository.

CommandWhat it does
/tabtree:linkLinks this git repository to one board — writes .tabtree.json (the board's id, no secret), so teammates share the link.
/tabtree:nextPicks the card to work on next, reads its brief, moves it to the in-progress column.
/tabtree:statusSays which board and card this session is tied to.
/tabtree:doneWrites the deliverable onto the card, for your approval in TabTree.
atelier-vision-okrFacilitates a vision / mission / OKR session — in French, the language it was built to run workshops in — and writes the result as a canvas you can present.

Once a repository is linked, each session starts with a one-paragraph summary of the board and the current card, and the commits made during a session become one comment on the card: hash, subject and branch — never a diff, a file or a secret. A hook never blocks a session: when TabTree does not answer, Claude goes on without it. The connector itself ships inside the plugin (the same tabtree-mcp.mjs as on npm), so the twelve tools above are in the session.

Screenshots

The same document as status columns — every card is still a node of the map.

[03-kanban.png]

Arrows stay attached to the boxes when you move them.

[06-flowchart.png]

A shared map, as your reader sees it.

[04-reader.png]

Images and reasoning on one canvas.

[05-moodboard.png]

Radial layout, dark theme.

[90-radial-dark.png]

Licence

Different licences, and the distinction matters:

  • The connector in mcp/ is free to use, copy, redistribute and modify, for any purpose — see mcp/LICENSE.md. It is given away on purpose.
  • The plugin in plugins/tabtree/ carries the connector's licence file, and the workshop skill keeps its own (plugins/tabtree/skills/atelier-vision-okr/LICENSE.md): free on the same terms, commercial workshops included. Each text names what it covers.
  • The app is a commercial service at tabtree.app; its source is not in this repository.
  • The template outlines are yours to copy and adapt freely.

Made in Casablanca. tabtree.app

Source: README.md at commit f530121

Tools

14

list_maps

List maps

Lists every mind map, kanban, note and board in the TabTree library — the user's own and those of the team spaces they belong to (name, type, space, folder, size, last modified).

Takes no parameters.

read_map

Read a map

Reads one TabTree map. A mind map comes back as a markdown outline; a board as a list of elements and connections. `file` is a file name (or a map name) returned by list_maps. A 🗂 PROJECT (format projet) opens with a “🗂 Project” block before its outline: description, vision, mission; the objectives with their key results done/total; each epic with its Verdict (untested · testing · validated · invalidated), its cards done/total and its ICE; the live sprint — its number and name, its day (“day 9 of 14”) and last day if the root carries “Sprint length:” (and “Sprints start:” for the first one), its goal (the running sprint's goal, kept in the board's season — the 🎯 chip), committed / done / backlog counts, and the last closed sprint with its bets; then the Backlog ranked by ICE = Impact × Confidence × (6 − Effort) (a card without its own scores takes its epic's). Read this block before steering a project: to plan the next sprint, take the top of the ICE ranking up to about 6 committed cards, `move` them from Backlog to “To do”, set the goal with { op: "season", goal: … }, and settle a bet with { op: "attr", target: <epic>, name: "Verdict", value: "validated" } — all safe changes, applied by TabTree itself.

Parametersfilerequired

search_maps

Search maps

Searches text across the whole TabTree library — map names, nodes, notes, shapes, sticky notes. Case-insensitive.

Parametersqueryrequired

create_mindmap

Create a mind map

Creates a NEW TabTree mind map from a markdown outline (#/## headings, bullet lists indented by 2 spaces, [x]/[ ] checkboxes, [title](url) links, and " @a:<id>" / " @e:<emoji>" at the end of a line for an illustration). The first top-level line becomes the centre. SCREENSHOTS: pass `images` — a list of { target, file } where `file` is the path of a PNG/JPEG on this machine (a screenshot you saved) and `target` the exact text of the node it goes on; the picture is re-encoded to fit and drawn as the node's cover. PROJECT — when the user wants to run a project, a product, a launch or a plan of bets (not a one-off mind map), create it with `format: "projet"`: one tree that holds the vision, the objectives, the epics as bets you settle, their cards and the sprints. TabTree recognises the first-level branches by their leading emoji. Write it like this (an attribute is its own line "Name: value"): # 🗂 <Project name> - Description: one sentence — what ships, for whom, why now - Vision: the world once it has worked, no numbers - Mission: what ships by when, with the one number that proves it - Sprint length: 2 weeks (optional — the planned rhythm) - Sprints start: 2026-11-02 (optional — the first sprint's first day) - 🎯 Objectives - O1 — the outcome, by a date - [ ] KR1 — a number with its target - 🧱 Epics - F · Foundations - Hypothesis: what we believe is true and justifies the epic - Goal: the number that settles it - Signal: the indicator, and where it is read - Verdict: untested (untested | testing | validated | invalidated) - Impact: 4 (optional, 1–5; with Confidence and Effort → ICE = Impact × Confidence × (6 − Effort)) - Confidence: 3 - Effort: 2 - [ ] F01 · a card, a deliverable in a few days @todo - 📚 Knowledge - [Company knowledge](map:<file>) - 📝 Decisions - 2026-10-26 — the decision, who took it, and the gate that reopens it Pass `columns` to put the cards on the project's

Parametersnamerequiredviewdatesspacestylefolderformatimagescolumnsmarkdownrequired

plant_project

Plant a project as a tree

“Claude, plant me the project”: turns a project brief into a TabTree TREE in one call — the map drawn as a real tree, root planted at the bottom. Use it when the user wants to start, frame or visualise a project (not for a plain mind map). Extract from the brief: WHY it exists (it grows as roots under the ground), its RISKS (roots too — the higher the priority, the thicker the root), and its BRANCHES (the work streams), each with its TASKS. In the tree: an owner is a bird on the branch, a due date within 3 days makes it sway (overdue: a storm), a done task is a ripe fruit, a task in progress a green one. TabTree then diagnoses the project's shape and picks its SPECIES (a baobab when three branches carry most of the work, a fir for a long flat backlog, a cedar for a deep strategy, a palm for a small project already well along, a willow when it bends under overdue work, an olive for a slow patient yield, otherwise an oak) — tell the user which tree their project is, and why, using the sentence the answer gives you. Dates are YYYY-MM-DD; only set the ones the brief gives. Owners: a first name or an email.

Parameterswhylangnamerequiredrisksspacefolderspeciesbranchesrequired

create_board

Create a whiteboard

Creates a NEW TabTree board (whiteboard): shapes (rect, ellipse, diamond, text, sticky), TABLES (kind "table" with `cells` — a comparison, a pricing grid, a RACI), IMAGES (kind "image" with a `file` path or an https `url` — your logos, photos, posters, placed where you say) and arrow connections that stay anchored to the shapes in the app. With no x/y coordinates, layout is automatic by level (the connections define the hierarchy, left to right). Good for a diagram, a flow, a brainstorm. In a flowchart use ellipse for start/end, rect for a step, and diamond for a decision — its text should read as a closed question with exactly two ways out. FIT THE TEXT TO THE BOX. A box shows roughly (w−24)/7 characters per line and (h−10)/20 lines, and every blank line costs a full line. Write captions, not paragraphs: when filling a canvas template (Business Model Canvas, Lean Canvas, SWOT…), the shipped templates use 70–110 characters per block, and that is what looks composed. Longer text is shrunk to fit — nothing ever spills out — but past ~11px it stops being readable and the response will warn you.

Parametersnamerequiredspacestylefolderelementsrequiredconnections

create_kanban

Create a kanban board

Creates a NEW TabTree kanban board in one call — columns and cards, each card with what TabTree shows on it: owner, start/due days, priority, colour labels, time estimate, Ai4X lever, note (links in it become clickable — a Google Meet link, a doc), a link, and sub-tasks. It opens directly as a kanban in TabTree, on every device signed in to the account, and in a TEAM space every member sees it. To add or move cards on an EXISTING kanban, use propose_changes instead.

Parametersnamerequiredcardsspacestylefolderformatlabelscolumns

plan_system

Plan a whole system from a brief (built after review)

Plans a whole PROJECT in TabTree from a brief, in one call, and lets the user build it with one click in the app. You write a blueprint: the work (each item human, agent or pair — an agent or pair item needs a deliverable and acceptance criteria), Build (project work) and Run (recurring) sides, epics, roles, milestones, and the systems the project needs (crm, launch, hiring, ops — each becomes a sheet + pipeline tab). TabTree creates an empty board named after the project and shows the plan on the user's library screen; the user adjusts the horizon, how much Claude takes, the systems and who holds each role, then clicks Build it. Nothing appears until TabTree is open on one of the user's devices. Never invent people, e-mail addresses, clients or figures: only names written in the brief. Work-item ids: a-z, 0-9 and _ only. Dates: "w1"… within the horizon, or a real day YYYY-MM-DD.

Parameterswhygoalknowlangnamerequiredworkrequiredrisksrolesspacehorizonsystemsmilestones

propose_changes

Change a map (safe changes apply, others wait for review)

Changes an EXISTING mind map, kanban or BOARD (also one in a team space). ON A BOARD, target elements by the ids read_map shows (sh:2, im:7, st:0), or an image by its exact name: add_image { file | url | data, name, alt, x, y, w, h } or { ..., inside: "sh:2" } — placed below what that shape already holds, in centred rows, never overlapping, on top of the shape; with both w and h the image is FITTED into that cell with its proportions kept; add_shape { type, x, y, w, h, text, color }, add_text { x, y, text }, move { target, x, y } or { target, dx, dy }, resize { target, w, h }, label { target, name, alt } to name an existing image, arrange { target: "sh:2", images: [ids or names], w, h } to line images up inside a shape (omit images to tidy all it holds), and delete { target }. All but delete are applied by TabTree itself; delete waits for review. Sending the same add twice never makes a duplicate: images are matched by name, which defaults to the file's name. On a mind map or kanban, HYBRID, by design: SAFE changes — add cards or branches, move a card to a column, tick it, set its owner, dates, priority, labels, estimate, Ai4X lever, an attribute, a link, a comment, a picture, a ⭐ star for the user, the map's format, the running sprint's goal when none is typed yet (op season), and set up the columns of a board that has none — are APPLIED BY TABTREE ITSELF within seconds when TabTree is open on one of the user's devices (otherwise the next time it opens), and Cmd+Z undoes them. Changes that rewrite or remove what someone wrote — rename, note, delete, replacing existing columns, replacing a sprint goal someone typed, a persona re-cast — appear as a banner for the user to review and approve. In one call, the safe changes BEFORE the first review-only change apply by themselves and the rest goes to review, in order. Name each target node by its exact text, or by a path "Ancestor > Node" when the same wording appears twice; a later change may target a node added earlier

Parametersfilerequirednotechangesrequired

harvest

Keep what matters from this conversation

Keeps what matters from THIS conversation in the user's TabTree second brain: facts, decisions and lessons. Call it ONLY after you listed the items to the user in the conversation and they agreed — then once. Nothing is filed until the user accepts it in TabTree (a banner, on any of their devices). Use it when the user ends a conversation (thanks, "that's all", "ok bye") or right after a decision was made. Facts and decisions go to the "Company knowledge" map of ONE space (created if the space has none); lessons always go to the user's "🌱 Lessons" map in Personal. Never for tasks (use propose_changes or create_kanban). Never a password, key or token. If nothing is worth keeping, call it with nothing: true and tell the user so.

Parametersitemsspacetitlenothing

fill_knowledge

Fill the company knowledge base

Fills the user's TabTree KNOWLEDGE BASE — the "Company knowledge" map of a space — with its objects: projects, products, topics, clients, people, the company and its brands, partners. Each entry gets a short DEFINITION (what TabTree's card prompts read as context), its other names and a few facts. Use it when the user asks to fill or update their knowledge base, for example from their second brain. An entry that already exists (same name or alias, any section) is UPDATED, never duplicated. Nothing is written until the user accepts it in TabTree: one banner per call, one click applies it all. 30 entries per call at most — send several calls for more. Never a password, key or token.

Parametersspaceentriesrequired

card_prompt

Get a card's prompt

Reads ONE card of a TabTree kanban or mind map and returns the prompt TabTree's 🪄 builds for it — Role, Context (board, column, owner, dates, labels, the knowledge-base entries the card is about, relevant passages from the user's other maps in the same space), Task (the card, its spec, its acceptance criteria — and, when the reviewer sent the card back, their last request, first in the Context), Guardrails and Format (picked from the deliverable: spreadsheet, slides, email, code, research, document, plan). Use it when the user asks you to work on, do or prepare a card ("work on the card X"). Then do the work following that prompt, and send the result back with deliver_card. Read-only.

Parameterscardrequiredfilerequiredkindlang

board_numbers

Read a board's numbers

Reads the numbers of ONE TabTree kanban board, computed by the same code as the app's 📊 Dashboard and 🏁 Sprint panel: cards per column; the running sprint (day, goal) and its burnup — done / scope, scope change since day 1, the pace and whether it will finish on time, day by day; what is blocking (cards marked Blocked, waiting on an open card, overdue, or still for 3 days; columns over their limit; work per person); the flow over 30 days (cycle time, ageing work in progress, a forecast range, cards at risk of missing their due date, labels); and what agents carry. Use it when the user asks how a board, a sprint or a project is going, what is blocking, or when it will be done — then act on it with propose_changes. Read-only.

Parametersfilerequired

deliver_card

Deliver work on a card

Sends your finished work on a card back to TabTree, ON that card, for the user's approval: the deliverable becomes a 📄 entry under the card (its note holds your result, in Markdown), with optional next-step sub-tasks, and the card moves to the board's review column when it has one (e.g. "🛂 To validate") — or to the column you name, never Done on such a board, never Won or Lost on a sales pipeline (a human moves it there). Nothing is written until the user approves it in TabTree — one banner, one click, Cmd+Z undoes it. Use it after card_prompt, once the deliverable is ready. Never put a password, key or token in it.

Parameterscardrequiredfilerequirednotetitleresultrequiredmove_tosubtasks

Version history

8
  1. v1.22.0LatestNov 4, 2026
  2. v1.19.0Nov 3, 2026
  3. v1.14.0Nov 1, 2026
  4. v1.8.0Oct 26, 2026
  5. v1.7.0Oct 25, 2026
  6. v1.6.1Oct 23, 2026
  7. v1.4.0Oct 13, 2026
  8. v1.2.1Sep 16, 2026

Score

90% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.

Other Tabtree integrations