SchemAgentic

MCP server

Everything else in these docs is AI working inside SchemAgentic. This is the other direction: an AI agent somewhere else — Claude Code in your terminal, Claude Desktop — reading and adding to your maps, as one tool among its own.

What it is

MCP — the Model Context Protocol — is how an AI client is given tools. Point one at this server and it can list your maps, read them, search them, create one and add nodes to one, in the middle of whatever else it is doing: "check my Roadmap map and add anything from this week's notes that is missing."

This reaches maps — the outline of nodes and their text. It does not reach agents, services, credentials or connections. An external agent cannot start an agent, call a service or spend anything.

Setting it up

You need a subscription and the app open.

  1. In the app, open MCP Server from the AI settings.
  2. Turn on Publish maps to MCP. Nothing is readable until you do — the server reads a mirror of the maps you have published, never your files.
  3. Choose which maps to publish. It is worth publishing only what you want an external agent to see.
  4. Generate an access token and copy it. It is shown once.

Connecting a client

Claude Code

claude mcp add --transport http schemagentic \
  https://us-central1-schemagentic.cloudfunctions.net/mcp \
  --header "Authorization: Bearer YOUR_TOKEN"

Claude Desktop, and other MCP clients

Add a Streamable HTTP server with that same URL and an Authorization: Bearer YOUR_TOKEN header. Clients that only speak stdio need an HTTP bridge.

Then ask for what you want

The five tools

ToolDoesTakes
list_maps read Every published map: id, title, node count, last updated.—
read_map read One map's full outline as indented text, one node per line. map_id
search_maps read Case-insensitive search across published maps, returning the matching lines. query
create_map write Queues a new map from an indented outline. First line is the central topic. title, outline
add_nodes write Queues nodes onto an existing map, optionally under a named node. map_id, outline, parent_title (optional)

Outlines are plain indented text — two spaces or a tab per level, one node per line.

How writes work

A write is a queued request, not a change. create_map and add_nodes return "Queued" immediately. Nothing has happened to your documents yet.

The queued command is applied by your app, the next time it syncs — on start, on a map-list refresh, or when you open that map. Until then the change does not exist, and read_map will not show it.

This is deliberate. Your maps are files with a format the app owns; letting a server rewrite them behind the app's back is how documents get corrupted. Going through the app also means every change arrives through the normal editing path — so it lands in your undo history, and you can reverse it like anything else you did yourself.

Queued commands are capped. If you see "Too many pending commands", open the app to let them through.

What a token can reach

The server needs an active subscription. If yours lapses it answers 403 and your maps stay exactly where they are.