Docs Automation

AI agents (OpenAPI and MCP)

AI agents such as Claude can use HttpDash the way you do: read your collections and environments, send requests and read the responses, set up the Runner and get the results, compare instances, check service discovery traffic, add and change requests, and see and use the screen (a snapshot of the visible controls they can click, type into, expand and scroll, plus screenshots).

Turn it on in Settings → AI access and choose what agents may do: Read (always on), Run, Edit, Control the screen, and Reveal secrets (off unless you choose it; secret values and credentials are masked otherwise). It listens on 127.0.0.1 only (port 47823 unless you change it there), every call needs the token shown there (only the OpenAPI document itself is open), and calls from web pages are refused. The status bar shows when an agent is working, and AI access lists the last 500 calls (refused ones also go to the audit log); Pause stops them, and a new token locks out the old one.

  • Claude Code: claude mcp add httpdash -- httpdash mcp (with the CLI installed: npm install -g github:gethttpdash/httpdash)
  • Claude Desktop: add {"mcpServers": {"httpdash": {"command": "httpdash", "args": ["mcp"]}}} to claude_desktop_config.json
  • Anything else: the OpenAPI document is at http://127.0.0.1:47823/openapi.json (or your port); send Authorization: Bearer <token>.

Instead of curl: test an endpoint and keep it

An agent (or you) can send through HttpDash rather than with curl, and keep what works:

  • MCP / OpenAPI: sendAdHoc with collection (and folder) runs the request inside that collection, so its auth and automatic login apply: leave auth out and it inherits them. With save, a request that succeeded (a status below 400, no failed tests; saveIf: "always" keeps any) is kept there, with its response as an example (one per status, the newest kept) and the tag ai. A request with the same method and URL in that folder is updated instead of duplicated; missing folders and the collection are created, and without a collection it goes into one called "AI requests". Saving needs the Edit permission, and the answer says what was saved.

  • Terminal: httpdash send works like curl, through the running app:

    httpdash send '{{orders_url}}/orders/ORD-1001' -c "Orders API" --folder Orders --save -t smoke
    httpdash send POST https://api.example.com/orders --json '{"qty":3}' -e Staging -i
    

    -X, -H, -d / --json (@file reads a file), -e for the environment, -c / --folder / --save / --save-always / --name / -t to keep it, -i for the status and headers, -v for timing, instance, health and network details, and -f to exit with 22 on a status of 400 or more (-f means --folder only for httpdash run). -d sends form data unless it looks like JSON; --max-body caps how much of the body is printed (1 MB by default). The body goes to stdout, so it pipes into jq. Exit codes: 0 an answer came back (any status, as curl), 1 the request itself failed (connection, DNS, timeout), 2 bad arguments, 3 HttpDash wasn't reachable or refused (not running, AI access off, a permission off, locked), 22 with -f.

Scripts and data files for agents

  • Scripts: createRequest and updateRequest take a request's preRequestScript and testScript. createCollection, createFolder, updateCollection and updateFolder set the scripts that run around every request inside them, and getCollection / getFolder read them back. This needs the Edit permission.
  • Data files: startRun takes data, an array of objects with one per iteration, just like a data file. Through MCP, dataFile takes the path to a CSV or JSON file on your computer instead: httpdash mcp reads it on the agent's side and sends the rows, so the app itself never opens a path an agent names. Iterations default to the number of rows, and the Runner shows "Data from AI agent". Without data, a data file you chose in the Runner stays in use and startRun's answer names it; data: [] removes it. The rows travel in the call, which is capped at 1 MB.

For example, an agent can create a folder whose pre-request script turns the nested user of each row into {{userJson}} (as in Nested JSON in a data file), add a request that uses it, then call startRun with dataFile: "technos.json" and read the results with getRun.

httpdash mcp finds the port and token by itself while the app runs (--port / --token, or HTTPDASH_AI_PORT / HTTPDASH_AI_TOKEN, set them explicitly; --data-dir or HTTPDASH_DATA_DIR points it at another data folder). Start with getStatus; sendRequest sends a saved request; startRun then getRun runs the Runner; getUiSnapshot, uiAction and takeScreenshot work the screen.

Edit this page on GitHub