The MCP server — let your AI agent run your flows

bandura-mcp exposes your flows to Claude Code, Cursor, and other MCP clients — list, read, run, heal, import, create, and edit, straight from the agent.

Because flows are plain text, an AI agent can genuinely work on them: read the YAML, run the flow, see exactly which node failed and what it sent, edit the file, run again. The Bandura MCP server (started with bandura mcp) packages that loop as Model Context Protocol tools for Claude Code, Cursor, and any other MCP client.

It’s a stdio server over the same engine, parser, and importers as the app and CLI — no Electron, no network service, runs on your machine.

Connecting a client

The MCP server ships with the bandura CLI (install it first) and starts with bandura mcp — one install gives you both the CI runner and the agent surface. Register it as a stdio server in your client. For Claude Code:

claude mcp add bandura -- bandura mcp

Or in a JSON-style MCP config:

{
  "mcpServers": {
    "bandura": {
      "command": "bandura",
      "args": ["mcp"],
      "env": { "BANDURA_WORKSPACE": "/path/to/your/api-tests" }
    }
  }
}

The workspace root resolves in this order: a root argument on the tool call, the BANDURA_WORKSPACE environment variable, or the server’s working directory.

The tools

ToolWhat it does
list_flowsEnumerate the .aether files under the workspace root — path, name, node count.
read_flowReturn a flow’s raw YAML.
run_flowExecute a flow and return structured results: per-node pass/fail, captured variables, and request/response snapshots sized for a model’s context (fullBody: true for untruncated payloads). Accepts variables overrides. ai-action nodes run when ANTHROPIC_API_KEY is set in the server’s environment.
detect_driftCompare a flow against an OpenAPI spec and return findings with proposed fixes — the same deterministic check as self-healing.
importConvert curl/OpenAPI/Postman/Insomnia source text into .aether — written to a directory or returned inline.
create_flowWrite a new .aether file. The content is validated first — a flow that doesn’t parse is rejected with the error, and an existing path is never overwritten.
edit_flowReplace the full YAML of an existing flow — the same read → edit → re-run loop, for clients without their own file tools. Validated before writing; a missing path is rejected.

What that enables

Ask your agent things like:

  • “Run the checkout flow and tell me why it fails.” — the agent runs it, reads the failing node’s actual request and response, and reasons from ground truth instead of guessing.
  • “Fix it.” — the flow is a text file; the agent rewrites it with edit_flow (or its own file tools) and re-runs to verify. create_flow covers “write me a flow for X” the same way — both validate the YAML before anything touches disk.
  • “Check all flows against openapi.yaml and fix the drift.”list_flows + detect_drift per flow, apply fixes, re-run.

The results the agent sees are the same results you see in the editor’s Result tabs — one engine, one file format, three ways in (app, CLI, agent).