| setup_node | Set up Node.js environment | no | false |
| node_version | Node.js version (default: 22) | no | 22 |
| setup_python | Set up Python environment | no | false |
| python_version | Python version (default: 3.11) | no | 3.11 |
| setup_go | Set up Go environment | no | false |
| go_version | Go version (default: read from go.mod) | no | "" |
| setup_rust | Set up Rust environment | no | false |
| rust_toolchain | Rust toolchain (default: stable) | no | stable |
| setup_dotnet | Set up .NET environment | no | false |
| dotnet_version | .NET version (default: 8.0.x) | no | 8.0.x |
| install_command | Command to install dependencies (optional if no install step needed) | no | "" |
| build_command | Command to build the MCP server (optional for interpreted languages) | no | "" |
| start_command | Command to start the MCP server (for stdio transport, or to start HTTP server) | no | "" |
| transport | Transport type: stdio or streamable-http | no | stdio |
| server_url | Server URL for HTTP transport (e.g., http://localhost:3000/mcp) | no | "" |
| configurations | JSON array of test configurations for multiple transports/scenarios.
Each object supports: name, transport, start_command, args, server_url, headers, env_vars, custom_messages.
For HTTP transport, use start_command to have the action manage server lifecycle:
- start_command: Command to start the server (action spawns, probes, then kills it)
- startup_wait_ms: Milliseconds to wait for server startup (default: 2000)
Or use pre/post commands for manual control:
- pre_test_command: Command to run before probing (e.g., start server in background)
- pre_test_wait_ms: Milliseconds to wait after pre_test_command
- post_test_command: Command to run after probing (e.g., kill server process)
| no | "" |
| custom_messages | JSON array of custom JSON-RPC messages to send. Each object: id (number), name (string), message (JSON-RPC object). Applied to all configurations unless overridden per-config. | no | "" |
| headers | HTTP headers to send with streamable-http requests. JSON object or newline-separated "Header: value" pairs. Applied to all HTTP configurations unless overridden per-config. | no | "" |
| compare_ref | Git ref to compare against (auto-detects merge-base or previous tag if not set) | no | "" |
| fail_on_error | Fail the action if probe errors occur (not just API differences) | no | true |
| fail_on_diff | Fail the action if API differences are detected (useful for release validation) | no | false |
| env_vars | Environment variables (newline-separated KEY=VALUE pairs) | no | "" |
| server_timeout | Timeout in seconds to wait for server response | no | 10 |
| http_start_command | Command to start a shared HTTP server for all HTTP transport configurations.
When set, the server starts once before all HTTP tests and stops after they complete.
This is more efficient than starting/stopping per-configuration.
Per-config start_command is ignored when this is set.
| no | "" |
| http_startup_wait_ms | Milliseconds to wait for shared HTTP server to start (default: 2000) | no | 2000 |