BlitFlow
MCP server

Tools

The BlitFlow MCP tools and their parameters.

All tools mirror the API contract exactly — parameters are validated against the same schemas.

Tool naming: both servers (hosted and blitflow mcp stdio) expose underscore names (nodes_list) — contract op names use dots (nodes.list), which some MCP clients can't call as tool names. In a client like Claude Code the tools surface as mcp__blitflow__nodes_list etc.

nodes_list

List or search the node palette. Returns NodeSpec[].

ParameterTypeRequiredDescription
qstringnoFree-text search (id, title, description)
categorystringnoFilter by category
limitintegernoMax results

nodes_get

Fetch one node spec by id — its exact input/output ports, defaults, enum optionValues, and numeric bounds.

ParameterTypeRequiredDescription
idstringyesNode id, e.g. rd-fast

Call this before running a node and build inputs from the returned spec. Guessed enum values fail validation — they are not in the model's memory.

workflows_get

Fetch a published workflow version's canonical definition.

ParameterTypeRequiredDescription
idstringyesPublished <org-slug>/<workflow-slug> address (e.g. acme/sprite-pack) or the workflow's UUID
versionstringnolatest (default), a full semver (2.1.0), or a major (2)

Returns { id, address, version, sequence, workflow } (address is null until the workflow's slug is claimed) — see Versioning.

runs_create

Run a workflow. Provide exactly one of workflow or workflowRef. The tool consumes the run's event stream internally and returns the terminal outputs.

ParameterTypeRequiredDescription
workflowobjectone ofInline workflow definition
workflowRefstringone of<id>@<version> reference — a published address like acme/sprite-pack@2.1.0 (preferred) or a workflow UUID like 8f61e451-…@2.1.0
inputsobjectnoArtifacts keyed by workflow input name — kind is optional, the input node declares it

Result: { outputs: Record<string, Artifact> }. If the run fails, the tool returns the run.failed error — read the message; don't loop.

runs_node

Run a single node by id — no workflow needed. Supports model/llm nodes.

ParameterTypeRequiredDescription
nodestringyesNode id
inputsobjectyesKeyed by input port name — scalars for value ports, Artifacts for data ports (kind optional, the port declares it)

Returns { outputs: Record<string, Artifact> }.

artifacts_import

Import a publicly fetchable http(s) URL as an organization-owned Artifact — the way to feed remote media into runs_node / runs_create. Pass the returned artifact object unchanged as a run input.

ParameterTypeRequiredDescription
urlstringyesPublic http(s) URL. Private/internal destinations are rejected
orgstringnoOrganization slug; omit for the personal organization
kindstringnoOverride the kind derived from the content type: image, audio, video, or file
retentionstringnotemporary (default, 30 days) or durable

Returns { id, artifact, contentType, sizeBytes, expiresAt } — see the HTTP flow for limits.

artifacts_uploads_prepare / artifacts_uploads_complete

The signed-upload control plane for bytes a programmatic client holds locally: prepare returns a short-lived direct-upload URL and token constrained to one pathname, declared content type, and maximum size; after PUTting the bytes there, complete (with the returned id) verifies the blob and records the Artifact, idempotently. See the signed-upload flow for the full steps.

No BlitFlow tool accepts base64, byte arrays, data: URIs, or local file paths. Never serialize file bytes into tool arguments — import a URL, or drive the signed-upload flow from your own runtime.

Agent playbook

  1. Discover — nodes_list with q/category, then nodes_get the candidate. Build inputs strictly from the spec.
  2. Mind spend — runs are charged to the organization's balance with no per-run cap; prefer the cheapest node that clears the quality bar, and read usage.costUsd before scaling up.
  3. Fetch refs — binary outputs are ref artifacts; download the ref URL for bytes, and reuse persisted refs instead of regenerating.
  4. Media in, by reference — to use an image/audio/video input, first artifacts_import its URL (or run the signed-upload flow), then pass the returned artifact unchanged. Never inline bytes or data: URIs.
  5. Stop on failure — a run.failed / error result is terminal. Read the message, fix the inputs, then retry deliberately.

feedback_create

Submit minimized text feedback through the same contract as HTTP and the CLI. Required fields: submissionKey (UUID), source (mcp), category (bug or feedback) and comment (1–8,000 characters). Optional fields: org (organization slug), reproduction, expected and actual (up to 2,000 characters each). No attachment, transcript or raw-log fields are accepted.

The manage scope controls stdio tool exposure and invocation. All member roles may submit feedback; the server derives identity and organization access. The result contains only { id, createdAt }. Reuse the submission UUID for a retry. Ten new reports per rolling minute are allowed per principal, and stored reports become eligible for daily deletion after ninety days.

Never reveal sensitive data in feedback. Anonymize the report before submitting: replace names, emails, organization/customer identifiers and private paths with neutral placeholders. Remove API keys, tokens, passwords, cookies, authorization headers, environment variables, private prompts/assets and customer data. Include only the minimum reproduction steps and sanitized error details. Do not attach transcripts, files, screenshots or raw logs automatically. If a report cannot be made safe, omit the sensitive detail and describe the failure generally.

Known-pattern redaction cannot recognize every private fact; review the minimized text.

On this page