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"]}}}toclaude_desktop_config.json - Anything else: the OpenAPI document is at
http://127.0.0.1:47823/openapi.json(or your port); sendAuthorization: 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:
sendAdHocwithcollection(andfolder) runs the request inside that collection, so its auth and automatic login apply: leaveauthout and it inherits them. Withsave, 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 tagai. 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 acollectionit goes into one called "AI requests". Saving needs the Edit permission, and the answer says what was saved.Terminal:
httpdash sendworks 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(@filereads a file),-efor the environment,-c/--folder/--save/--save-always/--name/-tto keep it,-ifor the status and headers,-vfor timing, instance, health and network details, and-fto exit with 22 on a status of 400 or more (-fmeans--folderonly forhttpdash run).-dsends form data unless it looks like JSON;--max-bodycaps how much of the body is printed (1 MB by default). The body goes to stdout, so it pipes intojq. Exit codes:0an answer came back (any status, as curl),1the request itself failed (connection, DNS, timeout),2bad arguments,3HttpDash wasn't reachable or refused (not running, AI access off, a permission off, locked),22with-f.
Scripts and data files for agents
- Scripts:
createRequestandupdateRequesttake a request'spreRequestScriptandtestScript.createCollection,createFolder,updateCollectionandupdateFolderset the scripts that run around every request inside them, andgetCollection/getFolderread them back. This needs the Edit permission. - Data files:
startRuntakesdata, an array of objects with one per iteration, just like a data file. Through MCP,dataFiletakes the path to a CSV or JSON file on your computer instead:httpdash mcpreads 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". Withoutdata, a data file you chose in the Runner stays in use andstartRun'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.