You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Session reuse - single replay session per server lifetime, no sprawl
Session cookie jar
The caido_send_request tool maintains an in-memory http.CookieJar per replay session. Cookies set via Set-Cookie in any response are stored and auto-injected into subsequent requests targeting the same RFC 6265 domain/path. Pass useCookieJar: false to a single call to disable injection (useful for session-fixation testing or to verify auth gates). Use caido_clear_session_cookies to wipe a session jar between test runs and caido_get_session_cookies to introspect what is stored (cookie values are not returned, only metadata).
The output of caido_send_request includes a cookieJar block with injectedCookies (names sent on this call) and storedCookies (names captured from Set-Cookie), so the LLM can verify the chain stayed authenticated.
"List all POST requests to /api"
"Send this request with a modified user ID"
"Create a finding for this IDOR"
"Show fuzzing results from Automate session 1"
"What's in scope?"
MCP Tools (64)
Tool
Description
caido_list_requests
List requests with HTTPQL filter and pagination
caido_get_request
Get request details (metadata, headers, body). 2KB body limit default
caido_send_request
Send HTTP request via Replay, returns response inline. Polls up to 10s. Auto-injects session cookies and persists Set-Cookie (toggle with useCookieJar)
caido_batch_send
Send multiple requests in parallel (BAC sweeps, parameter fuzzing, endpoint sweeps). Max 50 per batch
caido_edit_request
Modify and resend an existing request. Preserves auth/cookies while changing method, path, headers, or body
caido_export_curl
Convert a request to an executable curl command for PoC reports
caido_create_replay_session
Create a named replay session, optionally seed with a request
caido_list_replay_sessions
List replay sessions
caido_delete_replay_sessions
Bulk delete replay sessions by ID
caido_move_replay_session
Move a session to a different collection
caido_get_replay_entry
Get replay entry with response. 2KB body limit default
caido_clear_session_cookies
Wipe the in-memory cookie jar for a replay session
caido_get_session_cookies
List metadata for cookies stored in a session jar matching a URL (values not returned)
caido_list_replay_collections
List replay session collections
caido_create_replay_collection
Create a named replay collection
caido_rename_replay_collection
Rename a replay collection
caido_delete_replay_collection
Delete a replay collection
caido_list_automate_sessions
List fuzzing sessions
caido_get_automate_session
Get session details with entry list
caido_get_automate_entry
Get fuzz results and payloads
caido_automate_task_control
Start/pause/resume/cancel fuzzing tasks
caido_list_findings
List security findings
caido_create_finding
Create finding linked to a request
caido_delete_findings
Delete findings by IDs or reporter name
caido_export_findings
Export findings for reporting
caido_get_sitemap
Browse sitemap hierarchy
caido_list_scopes
List target scopes
caido_create_scope
Create new scope with allow/deny lists
caido_rename_scope
Rename a scope
caido_delete_scope
Delete a scope
caido_list_projects
List projects, marks current
caido_select_project
Switch active project
caido_create_project
Create a new project
caido_rename_project
Rename a project
caido_delete_project
Delete a project
caido_list_workflows
List automation workflows
caido_run_workflow
Execute an active or convert workflow
caido_toggle_workflow
Enable or disable a workflow
caido_list_tamper_rules
List Match & Replace rule collections
caido_create_tamper_rule
Create a tamper rule in a collection
caido_update_tamper_rule
Update an existing tamper rule
caido_toggle_tamper_rule
Enable or disable a tamper rule
caido_delete_tamper_rule
Delete a tamper rule
caido_get_instance
Get Caido version and platform info
caido_intercept_status
Get intercept status (PAUSED/RUNNING)
caido_intercept_control
Pause or resume intercept
caido_list_intercept_entries
List queued intercept entries with HTTPQL filtering
caido_forward_intercept
Forward intercepted request, optionally with modifications
caido_drop_intercept
Drop intercepted request
caido_list_environments
List environments and their variables
caido_select_environment
Switch active environment
caido_create_environment
Create a new environment
caido_delete_environment
Delete an environment
caido_list_filters
List saved HTTPQL filter presets
caido_create_filter
Save an HTTPQL query as a named filter preset
caido_delete_filter
Delete a filter preset
caido_list_hosted_files
List hosted payload files
caido_list_tasks
List running background tasks
caido_cancel_task
Cancel a running task by ID
caido_list_plugins
List installed plugin packages
caido_list_ws_streams
List WebSocket streams (connections) from the WebSocket tab
caido_list_ws_messages
List WebSocket frames for a stream (direction/format/decoded body)
caido_convert_body
Convert a request body between JSON, form-urlencoded, XML, and multipart
caido_race_window_send
Fire raw HTTP/1.1 requests with synchronized last-byte send for race-condition testing (bypasses Caido proxy)
MCP Resources (4)
Read-only data exposed via the MCP resources protocol. Agents can read these without consuming tool calls.
URI
Description
caido://requests/{id}
Full HTTP request and response for a given request ID
Both cmd/mcp and cmd/cli share internal/ packages. The project uses caido-community/sdk-go for all GraphQL communication with Caido.
Troubleshooting
Error
Fix
Invalid token
Check CAIDO_PAT value or run caido-mcp-server login again
token expired, no refresh token
Use PAT auth instead, or re-login
poll failed: timed out
Target server slow; use get_replay_entry with the returned entryId
no authentication token found
Set CAIDO_PAT env var or run caido-mcp-server login before serve
MCP server logs: ~/.cache/claude-cli-nodejs/*/mcp-logs-caido/
Security
Sensitive HTTP headers (Authorization, Cookie, Set-Cookie, API keys) are automatically redacted in all tool output to prevent credential leakage to LLM context. All string inputs are length-validated server-side. Request batch sizes are capped.
PAT tokens and OAuth tokens are stored with 0600 permissions and never appear in process arguments or log output.
To report a security issue, open a GitHub issue or contact the maintainer directly.