Koskamo

roadflow MCP

An official MCP server for roadflow.io that enables AI agents to create, edit, and manage product roadmaps, artifacts, and model parameters via JSON or markup. It supports tools for generating roadmaps, managing shared links, exporting data, and evaluating model parameters with closed formulas.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

roadflow MCP logo, by roadflowVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-06Operated by roadflow
MCP endpoint (Streamable HTTP)
https://roadflow.io/mcp
Vendor documentation

What its tools do

43 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

43 of 43 have a description · 0 of 43 declare behavior hints · 13 of 31 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to roadflow.io ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Create and edit product roadmaps using JSON or markup
  • Manage artifacts and model parameters for AI agents
  • Export roadmaps to JSON, markup, or CSV formats
  • Generate shared view-only links for roadmaps

Source and maintenance

Vendor evidenceRegistry 1.0.0

Protocol and capabilities

Server
roadflow 1.0.0
MCP protocol negotiated in check
2025-11-25
Tools
43 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  }
}

Tools

43 advertised

roadflow_new — New roadflow workspace
Advertised by the server during the last successful anonymous check.

Create an ephemeral in-memory roadflow workspace (default). Optional seed JSON and/or markup. No cloud id until create_shared.

roadflow_new input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "json": {
      "description": "Optional seed state (same shape as serializeState)"
    },
    "markup": {
      "type": "string",
      "description": "Optional friendly markup to apply after seed/empty"
    }
  },
  "additionalProperties": false
}
roadflow_status — Workspace status
Advertised by the server during the last successful anonymous check.

Return mode, ids, URLs, and road/step counts for the current MCP session workspace.

roadflow_status input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
roadflow_get — Get workspace snapshot
Advertised by the server during the last successful anonymous check.

Return the current workspace as JSON and/or markup.

roadflow_get input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "format": {
      "enum": [
        "json",
        "markup",
        "both"
      ],
      "type": "string",
      "description": "Default both"
    }
  },
  "additionalProperties": false
}
roadflow_apply_json — Apply JSON state
Advertised by the server during the last successful anonymous check.

Replace workspace state with normalized JSON (serializeState shape). In shared edit mode, saves to the cloud automatically.

roadflow_apply_json input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "json": {
      "description": "Full or partial map state object, or JSON string"
    },
    "merge": {
      "type": "boolean",
      "description": "If true, deep-ish merge timeline/display and replace roads from payload"
    }
  },
  "additionalProperties": false
}
roadflow_apply_markup — Apply markup
Advertised by the server during the last successful anonymous check.

Replace roads via friendly markup (same as the editor panel). Shared edit mode auto-saves.

roadflow_apply_markup input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "markup"
  ],
  "properties": {
    "markup": {
      "type": "string",
      "description": "Friendly roadflow markup text"
    }
  },
  "additionalProperties": false
}
roadflow_open_shared — Open shared roadflow
Advertised by the server during the last successful anonymous check.

Load a cloud map by edit or view id into this session. View links are read-only.

roadflow_open_shared input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "editId or viewId from a share URL (?id=…)"
    }
  },
  "additionalProperties": false
}
roadflow_create_shared — Create shared roadflow
Advertised by the server during the last successful anonymous check.

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_create_shared input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "editId": {
      "type": "string",
      "description": "Optional edit id (default: random rm-…)"
    },
    "viewId": {
      "type": "string",
      "description": "Optional view id (default: random rm-…)"
    }
  },
  "additionalProperties": false
}
roadflow_export_json — Export JSON
Advertised by the server during the last successful anonymous check.

Export the current workspace as JSON (serializeState).

roadflow_export_json input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
roadflow_export_markup — Export markup
Advertised by the server during the last successful anonymous check.

Export the current workspace as friendly markup.

roadflow_export_markup input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
roadflow_export_csv — Export CSV
Advertised by the server during the last successful anonymous check.

Export steps as CSV (road, goal, lane, step, notes, type, status, position, date).

roadflow_export_csv input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
roadflow_list_versions — List version history
Advertised by the server during the last successful anonymous check.

List shared-map version checkpoints (newest first). Relative indexes: -1 = newest. Requires a shared edit workspace (not view-only).

roadflow_list_versions input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
roadflow_get_version — Get version snapshot
Advertised by the server during the last successful anonymous check.

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_get_version input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "rel"
  ],
  "properties": {
    "rel": {
      "type": "integer",
      "description": "Relative version index: -1 = newest checkpoint, -2 = older, …",
      "exclusiveMaximum": 0
    },
    "load": {
      "type": "boolean",
      "description": "If true, also replace the current MCP workspace with this version (does not save to cloud)."
    }
  },
  "additionalProperties": false
}
roadflow_discard — Discard workspace
Advertised by the server during the last successful anonymous check.

Clear the in-memory workspace for this MCP session (does not delete cloud maps).

roadflow_discard input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
artifacts_new — New Artifacts workspace
Advertised by the server during the last successful anonymous check.

Create an ephemeral in-memory Artifacts graph workspace. Optional seed JSON (serializeState shape: nodes + labels). No cloud id until artifacts_create_shared.

artifacts_new input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "json": {
      "description": "Optional seed graph state"
    }
  },
  "additionalProperties": false
}
artifacts_status — Artifacts workspace status
Advertised by the server during the last successful anonymous check.

Return mode, ids, /artifacts/?id= URLs, and node/label counts.

artifacts_status input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
artifacts_get — Get Artifacts graph
Advertised by the server during the last successful anonymous check.

Return the current Artifacts workspace as JSON.

artifacts_get input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
artifacts_apply_json — Apply Artifacts JSON
Advertised by the server during the last successful anonymous check.

Replace (or merge) the Artifacts graph with normalized JSON. Shared edit mode auto-saves to the cloud.

artifacts_apply_json input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "json": {
      "description": "Full or partial graph state, or JSON string"
    },
    "merge": {
      "type": "boolean",
      "description": "If true, merge nodes/labels arrays from payload onto current state"
    }
  },
  "additionalProperties": false
}
artifacts_open_shared — Open shared Artifacts graph
Advertised by the server during the last successful anonymous check.

Load a cloud Artifacts graph by edit or view id. View links are read-only.

artifacts_open_shared input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "editId or viewId from /artifacts/?id=…"
    }
  },
  "additionalProperties": false
}
artifacts_create_shared — Create shared Artifacts graph
Advertised by the server during the last successful anonymous check.

Persist the current Artifacts workspace to the cloud. Returns editUrl and viewUrl under /artifacts/.

artifacts_create_shared input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "editId": {
      "type": "string",
      "description": "Optional edit id (default: random af-…)"
    },
    "viewId": {
      "type": "string",
      "description": "Optional view id (default: random af-…)"
    }
  },
  "additionalProperties": false
}
artifacts_export_json — Export Artifacts JSON
Advertised by the server during the last successful anonymous check.

Export the current Artifacts workspace as JSON (serializeState).

artifacts_export_json input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
artifacts_list_versions — List Artifacts version history
Advertised by the server during the last successful anonymous check.

List shared Artifacts version checkpoints (newest first). Requires a shared edit workspace.

artifacts_list_versions input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
artifacts_get_version — Get Artifacts version snapshot
Advertised by the server during the last successful anonymous check.

Load one shared Artifacts version by relative index (-1 newest). Optional load=true replaces the MCP workspace (does not save).

artifacts_get_version input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "rel"
  ],
  "properties": {
    "rel": {
      "type": "integer",
      "description": "Relative version index: -1 = newest checkpoint",
      "exclusiveMaximum": 0
    },
    "load": {
      "type": "boolean",
      "description": "If true, replace the current MCP Artifacts workspace with this version"
    }
  },
  "additionalProperties": false
}
artifacts_discard — Discard Artifacts workspace
Advertised by the server during the last successful anonymous check.

Clear the in-memory Artifacts workspace for this MCP session (does not delete cloud graphs or the Plans workspace).

artifacts_discard input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
model_new — New Model register
Advertised by the server during the last successful anonymous check.

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_new input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "axes": {
      "type": "array"
    },
    "edges": {
      "type": "array",
      "description": "Manual SOURCE/FLOW/INTERFACE only"
    },
    "title": {
      "type": "string"
    },
    "chains": {
      "type": "array"
    },
    "phases": {
      "type": "array"
    },
    "viewId": {
      "type": "string"
    },
    "streams": {
      "type": "array"
    },
    "calendar": {
      "description": "{ granularity, start, end }"
    },
    "parameters": {
      "type": "array",
      "description": "Catalog rows (parameterId, streamId, role, formula, attrs, …)"
    },
    "observations": {
      "type": "array",
      "description": "Facts: parameterId, scope, setId, value, evidence, source"
    },
    "parameterSets": {
      "type": "array"
    }
  },
  "additionalProperties": false
}
model_open — Open Model register
Advertised by the server during the last successful anonymous check.

Bind this MCP session to an existing Model project (edit or view id). View ids are read-only.

model_open input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Project edit id (mp-…) or view id"
    }
  },
  "additionalProperties": false
}
model_status — Model register status
Advertised by the server during the last successful anonymous check.

Counts, rev, and /model/?id= URLs for the bound project (or pass id).

model_status input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
model_get — Get Model register
Advertised by the server during the last successful anonymous check.

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 input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "id": {
      "type": "string"
    },
    "include": {
      "enum": [
        "summary",
        "all",
        "dictionaries",
        "parameters",
        "observations",
        "edges"
      ],
      "type": "string",
      "description": "Default summary"
    }
  },
  "additionalProperties": false
}
model_discard — Discard Model session
Advertised by the server during the last successful anonymous check.

Unbind the Model project from this MCP session. Does not delete MySQL rows.

model_discard input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
model_patch_project — Patch Model dictionaries
Advertised by the server during the last successful anonymous check.

Update title, calendar, viewId, streams, axes, phases, parameterSets, and/or chains. Send If-Match via rev. Replaces each provided dictionary in full.

model_patch_project input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "id": {
      "type": "string"
    },
    "rev": {
      "type": "integer",
      "description": "Expected project rev (If-Match)"
    },
    "axes": {
      "type": "array"
    },
    "title": {
      "type": "string"
    },
    "chains": {
      "type": "array"
    },
    "phases": {
      "type": "array"
    },
    "viewId": {
      "type": [
        "string",
        "null"
      ]
    },
    "streams": {
      "type": "array"
    },
    "calendar": {},
    "parameterSets": {
      "type": "array"
    }
  },
  "additionalProperties": false
}
model_list_parameters — List parameters
Advertised by the server during the last successful anonymous check.

List parameter catalog rows. Optional filters: streamId, role, layer, primaryOwner.

model_list_parameters input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "id": {
      "type": "string"
    },
    "role": {
      "type": "string"
    },
    "layer": {
      "type": "string"
    },
    "streamId": {
      "type": "string"
    },
    "primaryOwner": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
model_get_parameter — Get parameter
Advertised by the server during the last successful anonymous check.

One catalog row plus its observations (facts).

model_get_parameter input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "parameterId"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "parameterId": {
      "type": "string",
      "description": "Stable id, e.g. PRJ.FACILITY_MW"
    }
  },
  "additionalProperties": false
}
model_upsert_parameter — Upsert parameter catalog
Advertised by the server during the last successful anonymous check.

Create or patch one parameter definition (not observations). Pass rev for If-Match on update.

model_upsert_parameter input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "parameterId"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "rev": {
      "type": "integer"
    },
    "name": {
      "type": "string"
    },
    "role": {
      "type": "string"
    },
    "unit": {
      "type": "string"
    },
    "attrs": {
      "description": "name, definition, unit, scopeAxes, SBC fields, comments, …"
    },
    "layer": {
      "type": "string"
    },
    "comment": {
      "type": "string"
    },
    "formula": {
      "type": "string"
    },
    "domainId": {
      "type": "string"
    },
    "priority": {
      "type": "string"
    },
    "streamId": {
      "type": "string"
    },
    "scopeAxes": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "valueType": {
      "type": "string"
    },
    "assignedWs": {
      "type": "string"
    },
    "definition": {
      "type": "string"
    },
    "canonicalId": {
      "type": "string"
    },
    "parameterId": {
      "type": "string"
    },
    "primaryOwner": {
      "type": "string"
    },
    "economicClass": {
      "type": "string"
    },
    "adjustmentKind": {
      "type": "string"
    },
    "qtyParameterId": {
      "type": "string"
    },
    "rateComponents": {
      "type": "array"
    },
    "rateParameterId": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
model_upsert_parameters — Bulk upsert parameters
Advertised by the server during the last successful anonymous check.

Create or patch many catalog rows (cap 400). Same body shape as model_upsert_parameter. continueOnError returns per-row errors; otherwise one transaction.

model_upsert_parameters input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "parameters"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "parameters": {
      "type": "array",
      "description": "Catalog rows (parameterId + same fields as model_upsert_parameter)"
    },
    "continueOnError": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
model_delete_parameter — Delete parameter
Advertised by the server during the last successful anonymous check.

Delete a parameter and its observations (cascade).

model_delete_parameter input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "parameterId"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "parameterId": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
model_list_observations — List observations
Advertised by the server during the last successful anonymous check.

List facts. Filter by parameterId, setId, evidenceStatus. Sets are a column (Base/Downside/Upside), not an axis.

model_list_observations input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "id": {
      "type": "string"
    },
    "setId": {
      "type": "string"
    },
    "parameterId": {
      "type": "string"
    },
    "evidenceStatus": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
model_upsert_observation — Upsert observation
Advertised by the server during the last successful anonymous check.

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_observation input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "parameterId"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "rev": {
      "type": "integer"
    },
    "scope": {
      "type": "object",
      "description": "axisId → memberId, e.g. { \"Phase_ID\": \"P2\" }",
      "additionalProperties": {
        "type": "string"
      }
    },
    "setId": {
      "type": "string",
      "description": "Base (default), Downside, Upside, or custom"
    },
    "value": {},
    "source": {
      "description": "{ sourceId, locator, date, owner, allowedUse }"
    },
    "scopeKey": {
      "type": "string"
    },
    "parameterId": {
      "type": "string"
    },
    "valueLocked": {
      "type": "boolean"
    },
    "valueOverride": {
      "type": "boolean"
    },
    "evidenceStatus": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
model_upsert_observations — Bulk upsert observations
Advertised by the server during the last successful anonymous check.

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_observations input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "observations"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "observations": {
      "type": "array",
      "description": "Facts (parameterId, scope, setId, value, …)"
    },
    "continueOnError": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
model_delete_observation — Delete observation
Advertised by the server during the last successful anonymous check.

Delete one fact by parameterId + scope/scopeKey + setId.

model_delete_observation input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "parameterId"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "scope": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "setId": {
      "type": "string"
    },
    "scopeKey": {
      "type": "string"
    },
    "parameterId": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
model_list_edges — List edges
Advertised by the server during the last successful anonymous check.

Manual lineage edges only (SOURCE/FLOW/INTERFACE). FORMULA edges are derived from formulas on load — not stored.

model_list_edges input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "id": {
      "type": "string"
    },
    "toId": {
      "type": "string"
    },
    "fromId": {
      "type": "string"
    },
    "edgeType": {
      "enum": [
        "SOURCE",
        "FLOW",
        "INTERFACE"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}
model_upsert_edge — Upsert edge
Advertised by the server during the last successful anonymous check.

Create or patch a manual SOURCE, FLOW, or INTERFACE edge. FORMULA is rejected.

model_upsert_edge input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "edgeId"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "rev": {
      "type": "integer"
    },
    "toId": {
      "type": "string"
    },
    "label": {
      "type": "string"
    },
    "owner": {
      "type": "string"
    },
    "edgeId": {
      "type": "string"
    },
    "fromId": {
      "type": "string"
    },
    "edgeType": {
      "enum": [
        "SOURCE",
        "FLOW",
        "INTERFACE"
      ],
      "type": "string"
    },
    "condition": {
      "enum": [
        "DIRECT",
        "CONDITIONAL"
      ],
      "type": "string"
    }
  },
  "additionalProperties": false
}
model_delete_edge — Delete edge
Advertised by the server during the last successful anonymous check.

Delete a manual edge by edgeId.

model_delete_edge input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "edgeId"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "edgeId": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
model_evaluate — Evaluate Model compute
Advertised by the server during the last successful anonymous check.

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_evaluate input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "id": {
      "type": "string"
    },
    "setId": {
      "type": "string"
    },
    "slice": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      }
    },
    "periodId": {
      "type": "string"
    },
    "rangeEnd": {
      "type": "string"
    },
    "rangeStart": {
      "type": "string"
    },
    "includeEmpty": {
      "type": "boolean"
    },
    "parameterIds": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "includeInputs": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}
model_list_dictionaries — List dictionaries
Advertised by the server during the last successful anonymous check.

Streams, axes (members), phases, parameter sets, chains, and calendar. Period members may be derived from calendar.

model_list_dictionaries input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "id": {
      "type": "string"
    }
  },
  "additionalProperties": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (1 of 1 answered).

  1. 2026-11-07: 1 of 1 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
897 ms
95th percentile latency
897 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 897 ms · metadata changed · 43 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http roadflow-mcp https://roadflow.io/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add roadflow-mcp --url https://roadflow.io/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable roadflow-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "roadflow-mcp": {
      "url": "https://roadflow.io/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "roadflow-mcp": {
      "type": "streamableHttp",
      "url": "https://roadflow.io/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start roadflow-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "roadflow-mcp": {
      "type": "http",
      "url": "https://roadflow.io/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http roadflow-mcp https://roadflow.io/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://roadflow.io/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "roadflow-mcp": {
      "serverUrl": "https://roadflow.io/mcp"
    }
  }
}

Let your agent find its tools

Find servers like roadflow MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run roadflow MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing