← Back to roadflow

roadflow MCP

Model Context Protocol for AI agents · Last updated: September 4, 2026

roadflow exposes a remote Model Context Protocol (MCP) server so agents can create and edit Plans roadmaps, Artifacts graphs, and the Model parameter register — without opening the browser UI. Plans tools are roadflow_*; Artifacts tools are artifacts_*; Model tools are model_*. One endpoint; three session workspaces.

Human docs: this page. Machine overview: llms.txt. Markup reference (Plans): notation.md. Protocol endpoint (not an HTML page): https://roadflow.io/mcp.

Connect from Cursor

Add a remote MCP server (Settings → MCP, or your MCP config JSON):

{
  "mcpServers": {
    "roadflow": {
      "url": "https://roadflow.io/mcp"
    }
  }
}

Workspace modes

  • Ephemeral (default) — In-memory draft for this MCP session (Plans or Artifacts). No cloud id until you call roadflow_create_shared or artifacts_create_shared.
  • Shared — Open with *_open_shared, or publish with *_create_shared. Edits via apply tools auto-save when you have an edit link (view links are read-only).
  • Model register — Always MySQL. model_new / model_open bind a project; each tool writes one record (parameter, observation, edge, or dictionaries). No whole-document apply.

Plans tools (roadflow_*)

Roadmaps: roads, lanes, steps, markup. Share URLs look like /?id=….

ToolPurpose
roadflow_newEmpty ephemeral workspace (optional seed JSON/markup)
roadflow_statusMode, ids, URLs, road/step counts
roadflow_getSnapshot as JSON and/or markup
roadflow_apply_jsonReplace/merge state (JSON-first)
roadflow_apply_markupReplace roads via friendly markup
roadflow_open_sharedLoad map by edit or view id
roadflow_create_sharedPersist workspace; return edit + view URLs
roadflow_export_jsonExport serializeState JSON
roadflow_export_markupExport friendly markup
roadflow_export_csvExport steps CSV
roadflow_list_versionsList shared edit version checkpoints
roadflow_get_versionFetch one checkpoint by relative index (-1 newest)
roadflow_discardClear in-memory Plans workspace

Artifacts tools (artifacts_*)

Freeform graphs: documents, registries (tables), notes, packages, labels, connections. Nodes of kind registry contain table columns and rows, and outgoing connections can target specific rows via targetRowId. Share URLs look like /artifacts/?id=…. JSON only (no markup/CSV).

ToolPurpose
artifacts_newEmpty ephemeral graph (optional seed JSON)
artifacts_statusMode, ids, URLs, node/label counts
artifacts_getCurrent graph JSON
artifacts_apply_jsonReplace/merge graph JSON (supports documents, registries with rows/columns, notes, packages, labels)
artifacts_open_sharedLoad graph by edit or view id
artifacts_create_sharedPersist graph; return edit + view URLs
artifacts_export_jsonExport serializeState JSON
artifacts_list_versionsList shared edit version checkpoints
artifacts_get_versionFetch one checkpoint (-1 newest)
artifacts_discardClear in-memory Artifacts workspace

Model tools (model_*)

Parameter register: catalog, scoped observations (facts), manual edges, dictionaries. URLs look like /model/?id=…. Record grain — patch one observation (or a capped bulk) without rewriting the graph. model_new allocates a view id (mv-…) and returns viewUrl. Closed formula set: IF, AND/OR/NOT, CEILING/FLOOR, MAX/MIN, ^/POW, PCT, CalendarHours(year|range), YearsFromBase, YEARFRACTION, BAND/LOOKUP, SUM/NPV/IRR/PAYBACK/DSCR, unicode ×÷−, unique [canonicalId]. CALC still needs = or SBC; formula wins if both are set. Narrative stays IN + comment. Not computed here: optimizer, reverse EQ, XNPV/XIRR, ECML. Do not persist CALC outputs or FORMULA edges. Full schema: /model/AGENTS.md.

ToolPurpose
model_newCreate a MySQL project (optional seed records); bind session
model_openBind session to edit or view id
model_statusCounts, rev, /model/?id= URLs
model_getHydrate (summary / all / one record family)
model_discardUnbind session (does not delete rows)
model_patch_projectTitle, calendar, streams, axes, phases, sets, chains
model_list_parametersCatalog list (stream / role / layer / owner filters)
model_get_parameterOne catalog row + its observations
model_upsert_parameterCatalog only (not facts). Optional top-level priority, canonicalId, domainId, comment, assignedWs, economicClass, qtyParameterId, rateParameterId, rateComponents, adjustmentKind
model_upsert_parametersBulk catalog (cap 400, per-row errors)
model_delete_parameterDelete parameter (cascades observations)
model_list_observationsFacts (filter parameter / set / evidence)
model_upsert_observationOne fact (scope + set + value + evidence)
model_upsert_observationsBulk facts (cap 400; CALC outputs rejected unless valueOverride)
model_delete_observationDelete one fact
model_list_edgesManual SOURCE / FLOW / INTERFACE
model_upsert_edgeCreate/patch a manual edge
model_delete_edgeDelete a manual edge
model_evaluateRead-only compute. View ids allowed. Default period = calendar start (not today). periodId XOR range. Cap 2000 cells. REST POST /v1/model-projects/:id/evaluate
model_list_dictionariesStreams, axes, phases, sets, chains, calendar

Auth and risk

The MCP endpoint is currently unauthenticated. Anyone who can reach https://roadflow.io/mcp can create ephemeral maps, and change a shared map if they know its edit id (same trust model as share links). Do not put secrets in roadmaps. Auth or rate limits may be added later.

See also the Privacy Policy and Terms of Service.

Typical agent flow

  1. Plans: roadflow_new → apply JSON/markup → export or roadflow_create_shared (viewUrl / editUrl)
  2. Artifacts: artifacts_new → artifacts_apply_json → artifacts_create_shared (URLs under /artifacts/)
  3. Model: model_new or model_open → model_upsert_parameter(s) / model_upsert_observation(s) / model_upsert_edge → model_evaluate (URLs under /model/)

See also

  • Plans editor
  • Artifacts editor
  • Model register
  • Model agent schema
  • Markup notation (Plans)
  • llms.txt

Questions: admin@roadflow.io