qai supports three MCP transport types for connecting to target servers. The transport determines how messages are exchanged between qai and the server under test.Documentation Index
Fetch the complete documentation index at: https://docs.q-uestionable.ai/llms.txt
Use this file to discover all available pages before exploring further.
Transport Types
| Transport | Flag Value | Connection | Use Case |
|---|---|---|---|
| stdio | stdio | Spawns server as child process, communicates via stdin/stdout | Local servers, npm packages, Python servers |
| SSE | sse | HTTP connection with Server-Sent Events | Remote servers using the legacy SSE transport |
| Streamable HTTP | streamable-http | Bidirectional HTTP streaming | Remote servers using the current MCP spec |
stdio
The most common transport. qai spawns the server as a child process and communicates over standard input/output. It is the default for web UI workflow launches, but CLI commands require an explicit--transport stdio flag.
CLI usage:
--command flag specifies the shell command to start the server. qai handles process lifecycle (spawn, communicate, terminate).
When to use: Local development, testing npm or Python MCP servers, CI pipelines where the server runs on the same machine.
SSE
Server-Sent Events over HTTP. Connect to a remote MCP server that implements the legacy SSE transport. CLI usage:--url flag specifies the server’s SSE endpoint.
When to use: Remote servers using the older MCP SSE protocol, servers behind firewalls that allow HTTP.
Streamable HTTP
Bidirectional HTTP streaming. Connect to a remote MCP server implementing the current Streamable HTTP transport specification. CLI usage:Default Transport
The default transport isstdio. You can set a different default in the web UI under Settings > Defaults > Audit Transport, which applies to workflow launches from the web UI.
CLI commands always require an explicit --transport flag — there is no global CLI default.
Module-Specific Notes
Audit: Uses--transport, --command (stdio), and --url (SSE/HTTP) flags on qai audit scan and qai audit enumerate.
Proxy: Uses --transport, --target-command (stdio), and --target-url (SSE/HTTP) flags on qai proxy start and qai proxy replay.
Inject: The inject server (qai inject serve) uses --transport to control how the malicious MCP server is exposed. Campaigns use the litellm backend (not MCP transport) to communicate with LLM providers.
Chain: Transport for chain execution is configured in chain-targets.yaml (per-target transport and connection details).