Skip to content

io.roadflow/roadflow

by roadflow.io · remote · no sign-in to list tools · v1.0.0 · published by io.roadflow

Create and edit roadmaps with JSON or markup; share edit and view links from AI agents.

Deletes · 3Changes · 25

43 tools: 3 can delete or cancel things, 25 change things and 15 only read.

Scanned Oct 21, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http roadflow https://roadflow.io/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

43 tools

Deletes or cancels 3Claude Code: deny
  • model_delete_edgeDelete a manual edge by edgeId.No findings

    Why it is in this group

    • The name "model_delete_edge" says "delete": a word for removing or ending something.
    Description, as the server wrote it
    Delete a manual edge by edgeId.
  • model_delete_observationDelete one fact by parameterId + scope/scopeKey + setId.No findings

    Why it is in this group

    • The name "model_delete_observation" says "delete": a word for removing or ending something.
    Description, as the server wrote it
    Delete one fact by parameterId + scope/scopeKey + setId.
  • model_delete_parameterDelete a parameter and its observations (cascade).No findings

    Why it is in this group

    • The name "model_delete_parameter" says "delete": a word for removing or ending something.
    Description, as the server wrote it
    Delete a parameter and its observations (cascade).
Changes things 25Claude Code: ask
  • artifacts_apply_jsonReplace (or merge) the Artifacts graph with normalized JSON.No findings

    Why it is in this group

    • The name "artifacts_apply_json" says "apply": a word for a change.
    Description, as the server wrote it
    Replace (or merge) the Artifacts graph with normalized JSON. Shared edit mode auto-saves to the cloud.
  • artifacts_create_sharedPersist the current Artifacts workspace to the cloud.No findings

    Why it is in this group

    • The name "artifacts_create_shared" says "create": a word for a change.
    Description, as the server wrote it
    Persist the current Artifacts workspace to the cloud. Returns editUrl and viewUrl under /artifacts/.
  • artifacts_discardClear the in-memory Artifacts workspace for this MCP session (does not delete cloud graphs or the Plans workspace).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Clear the in-memory Artifacts workspace for this MCP session (does not delete cloud graphs or the Plans workspace).
  • artifacts_export_jsonExport the current Artifacts workspace as JSON (serializeState).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Export the current Artifacts workspace as JSON (serializeState).
  • artifacts_newCreate an ephemeral in-memory Artifacts graph workspace.No findings

    Why it is in this group

    • The description's first verb is "create": a word for a change.
    Description, as the server wrote it
    Create an ephemeral in-memory Artifacts graph workspace. Optional seed JSON (serializeState shape: nodes + labels). No cloud id until artifacts_create_shared.
  • artifacts_open_sharedLoad a cloud Artifacts graph by edit or view id.No findings

    Why it is in this group

    • The name "artifacts_open_shared" says "open": a word for a change.
    Description, as the server wrote it
    Load a cloud Artifacts graph by edit or view id. View links are read-only.
  • model_discardUnbind the Model project from this MCP session.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Unbind the Model project from this MCP session. Does not delete MySQL rows.
  • model_evaluateRead-only computeModel.No findings

    Why it is in this group

    • The name "model_evaluate" says "evaluate": a word for a change.
    Description, as the server wrote it
    Read-only computeModel. Does not write MySQL. View ids allowed. Default period is calendar start (not today). periodId and range* are mutually exclusive. Cell cap 2000.
  • model_newCreate a Model project in MySQL (parameter register).No findings

    Why it is in this group

    • The description's first verb is "create": a word for a change.
    Description, as the server wrote it
    Create a Model project in MySQL (parameter register). Allocates a view id (mv-…) when omitted and returns viewUrl. Optional seed: title, calendar, streams, axes, phases, parameterSets, chains, parameters, observations, edges. Does not persist CALC outputs or FORMULA edges. Binds this MCP session. UI: /model/?id=…
  • model_openBind this MCP session to an existing Model project (edit or view id).No findings

    Why it is in this group

    • The name "model_open" says "open": a word for a change.
    Description, as the server wrote it
    Bind this MCP session to an existing Model project (edit or view id). View ids are read-only.
  • model_patch_projectUpdate title, calendar, viewId, streams, axes, phases, parameterSets, and/or chains.No findings

    Why it is in this group

    • The name "model_patch_project" says "patch": a word for a change.
    Description, as the server wrote it
    Update title, calendar, viewId, streams, axes, phases, parameterSets, and/or chains. Send If-Match via rev. Replaces each provided dictionary in full.
  • model_upsert_edgeCreate or patch a manual SOURCE, FLOW, or INTERFACE edge.No findings

    Why it is in this group

    • The name "model_upsert_edge" says "upsert": a word for a change.
    Description, as the server wrote it
    Create or patch a manual SOURCE, FLOW, or INTERFACE edge. FORMULA is rejected.
  • model_upsert_observationCreate or replace one fact (parameterId + scope + setId).No findings

    Why it is in this group

    • The name "model_upsert_observation" says "upsert": a word for a change.
    Description, as the server wrote it
    Create or replace one fact (parameterId + scope + setId). Example: Base P2 facility MW. Do not write CALC-computed values; only IN facts or CALC overrides (valueOverride). Pass rev for If-Match.
  • model_upsert_observationsCreate or replace many facts (cap 400).No findings

    Why it is in this group

    • The name "model_upsert_observations" says "upsert": a word for a change.
    Description, as the server wrote it
    Create or replace many facts (cap 400). Same body shape as model_upsert_observation. Rejects CALC outputs unless valueOverride. continueOnError returns per-row errors; otherwise one transaction.
  • model_upsert_parameterCreate or patch one parameter definition (not observations).No findings

    Why it is in this group

    • The name "model_upsert_parameter" says "upsert": a word for a change.
    Description, as the server wrote it
    Create or patch one parameter definition (not observations). Pass rev for If-Match on update.
  • model_upsert_parametersCreate or patch many catalog rows (cap 400).No findings

    Why it is in this group

    • The name "model_upsert_parameters" says "upsert": a word for a change.
    Description, as the server wrote it
    Create or patch many catalog rows (cap 400). Same body shape as model_upsert_parameter. continueOnError returns per-row errors; otherwise one transaction.
  • roadflow_apply_jsonReplace workspace state with normalized JSON (serializeState shape).No findings

    Why it is in this group

    • The name "roadflow_apply_json" says "apply": a word for a change.
    Description, as the server wrote it
    Replace workspace state with normalized JSON (serializeState shape). In shared edit mode, saves to the cloud automatically.
  • roadflow_apply_markupReplace roads via friendly markup (same as the editor panel).No findings

    Why it is in this group

    • The name "roadflow_apply_markup" says "apply": a word for a change.
    Description, as the server wrote it
    Replace roads via friendly markup (same as the editor panel). Shared edit mode auto-saves.
  • roadflow_create_sharedPersist the current workspace to the cloud (permanent share).No findings

    Why it is in this group

    • The name "roadflow_create_shared" says "create": a word for a change.
    Description, as the server wrote it
    Persist the current workspace to the cloud (permanent share). Returns editUrl (play/edit/share further) and viewUrl (visual canvas, read-only). Prefer viewUrl when the user only needs to see the map.
  • roadflow_discardClear the in-memory workspace for this MCP session (does not delete cloud maps).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Clear the in-memory workspace for this MCP session (does not delete cloud maps).
  • roadflow_export_csvExport steps as CSV (road, goal, lane, step, notes, type, status, position, date).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Export steps as CSV (road, goal, lane, step, notes, type, status, position, date).
  • roadflow_export_jsonExport the current workspace as JSON (serializeState).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Export the current workspace as JSON (serializeState).
  • roadflow_export_markupExport the current workspace as friendly markup.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    Description, as the server wrote it
    Export the current workspace as friendly markup.
  • roadflow_newCreate an ephemeral in-memory roadflow workspace (default).No findings

    Why it is in this group

    • The description's first verb is "create": a word for a change.
    Description, as the server wrote it
    Create an ephemeral in-memory roadflow workspace (default). Optional seed JSON and/or markup. No cloud id until create_shared.
  • roadflow_open_sharedLoad a cloud map by edit or view id into this session.No findings

    Why it is in this group

    • The name "roadflow_open_shared" says "open": a word for a change.
    Description, as the server wrote it
    Load a cloud map by edit or view id into this session. View links are read-only.
Only reads 15Claude Code: allow
  • artifacts_getReturn the current Artifacts workspace as JSON.No findings

    Why it is in this group

    • The name "artifacts_get" says "get": a word for reading.
    Description, as the server wrote it
    Return the current Artifacts workspace as JSON.
  • artifacts_get_versionLoad one shared Artifacts version by relative index (-1 newest).No findings

    Why it is in this group

    • The name "artifacts_get_version" says "get": a word for reading.
    Description, as the server wrote it
    Load one shared Artifacts version by relative index (-1 newest). Optional load=true replaces the MCP workspace (does not save).
  • artifacts_list_versionsList shared Artifacts version checkpoints (newest first).No findings

    Why it is in this group

    • The name "artifacts_list_versions" says "list": a word for reading.
    Description, as the server wrote it
    List shared Artifacts version checkpoints (newest first). Requires a shared edit workspace.
  • artifacts_statusReturn mode, ids, /artifacts/?id= URLs, and node/label counts.No findings

    Why it is in this group

    • The name "artifacts_status" says "status": a word for reading.
    Description, as the server wrote it
    Return mode, ids, /artifacts/?id= URLs, and node/label counts.
  • model_getHydrate records from MySQL.No findings

    Why it is in this group

    • The name "model_get" says "get": a word for reading.
    Description, as the server wrote it
    Hydrate records from MySQL. include=summary (default counts), dictionaries, parameters, observations, edges, or all. Prefer model_upsert_observation to change one fact — do not treat this as a blob to rewrite.
  • model_get_parameterOne catalog row plus its observations (facts).No findings

    Why it is in this group

    • The name "model_get_parameter" says "get": a word for reading.
    Description, as the server wrote it
    One catalog row plus its observations (facts).
  • model_list_dictionariesStreams, axes (members), phases, parameter sets, chains, and calendar.No findings

    Why it is in this group

    • The name "model_list_dictionaries" says "list": a word for reading.
    Description, as the server wrote it
    Streams, axes (members), phases, parameter sets, chains, and calendar. Period members may be derived from calendar.
  • model_list_edgesManual lineage edges only (SOURCE/FLOW/INTERFACE).No findings

    Why it is in this group

    • The name "model_list_edges" says "list": a word for reading.
    Description, as the server wrote it
    Manual lineage edges only (SOURCE/FLOW/INTERFACE). FORMULA edges are derived from formulas on load — not stored.
  • model_list_observationsList facts.No findings

    Why it is in this group

    • The name "model_list_observations" says "list": a word for reading.
    Description, as the server wrote it
    List facts. Filter by parameterId, setId, evidenceStatus. Sets are a column (Base/Downside/Upside), not an axis.
  • model_list_parametersList parameter catalog rows.No findings

    Why it is in this group

    • The name "model_list_parameters" says "list": a word for reading.
    Description, as the server wrote it
    List parameter catalog rows. Optional filters: streamId, role, layer, primaryOwner.
  • model_statusCounts, rev, and /model/?id= URLs for the bound project (or pass id).No findings

    Why it is in this group

    • The name "model_status" says "status": a word for reading.
    Description, as the server wrote it
    Counts, rev, and /model/?id= URLs for the bound project (or pass id).
  • roadflow_getReturn the current workspace as JSON and/or markup.No findings

    Why it is in this group

    • The name "roadflow_get" says "get": a word for reading.
    Description, as the server wrote it
    Return the current workspace as JSON and/or markup.
  • roadflow_get_versionLoad one shared-map version by relative index (e.g.No findings

    Why it is in this group

    • The name "roadflow_get_version" says "get": a word for reading.
    Description, as the server wrote it
    Load one shared-map version by relative index (e.g. -1 newest, -2 previous). Returns JSON state. Does not change the live map or workspace unless load=true.
  • roadflow_list_versionsList shared-map version checkpoints (newest first).No findings

    Why it is in this group

    • The name "roadflow_list_versions" says "list": a word for reading.
    Description, as the server wrote it
    List shared-map version checkpoints (newest first). Relative indexes: -1 = newest. Requires a shared edit workspace (not view-only).
  • roadflow_statusReturn mode, ids, URLs, and road/step counts for the current MCP session workspace.No findings

    Why it is in this group

    • The name "roadflow_status" says "status": a word for reading.
    Description, as the server wrote it
    Return mode, ids, URLs, and road/step counts for the current MCP session workspace.

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http roadflow https://roadflow.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__roadflow__roadflow_status",
      "mcp__roadflow__roadflow_get",
      "mcp__roadflow__roadflow_list_versions",
      "mcp__roadflow__roadflow_get_version",
      "mcp__roadflow__artifacts_status",
      "mcp__roadflow__artifacts_get",
      "mcp__roadflow__artifacts_list_versions",
      "mcp__roadflow__artifacts_get_version",
      "mcp__roadflow__model_status",
      "mcp__roadflow__model_get",
      "mcp__roadflow__model_list_parameters",
      "mcp__roadflow__model_get_parameter",
      "mcp__roadflow__model_list_observations",
      "mcp__roadflow__model_list_edges",
      "mcp__roadflow__model_list_dictionaries"
    ],
    "ask": [
      "mcp__roadflow__roadflow_new",
      "mcp__roadflow__roadflow_apply_json",
      "mcp__roadflow__roadflow_apply_markup",
      "mcp__roadflow__roadflow_open_shared",
      "mcp__roadflow__roadflow_create_shared",
      "mcp__roadflow__roadflow_export_json",
      "mcp__roadflow__roadflow_export_markup",
      "mcp__roadflow__roadflow_export_csv",
      "mcp__roadflow__roadflow_discard",
      "mcp__roadflow__artifacts_new",
      "mcp__roadflow__artifacts_apply_json",
      "mcp__roadflow__artifacts_open_shared",
      "mcp__roadflow__artifacts_create_shared",
      "mcp__roadflow__artifacts_export_json",
      "mcp__roadflow__artifacts_discard",
      "mcp__roadflow__model_new",
      "mcp__roadflow__model_open",
      "mcp__roadflow__model_discard",
      "mcp__roadflow__model_patch_project",
      "mcp__roadflow__model_upsert_parameter",
      "mcp__roadflow__model_upsert_parameters",
      "mcp__roadflow__model_upsert_observation",
      "mcp__roadflow__model_upsert_observations",
      "mcp__roadflow__model_upsert_edge",
      "mcp__roadflow__model_evaluate"
    ],
    "deny": [
      "mcp__roadflow__model_delete_parameter",
      "mcp__roadflow__model_delete_observation",
      "mcp__roadflow__model_delete_edge"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as roadflow. Review it before you use it.