Use Vulnix0 from AI agents
The Vulnix0 MCP server lets AI agents start authorized scans, fetch scan results, and compare the latest historical change for a specific asset through a standard tool interface.
https://vulnix0.com/mcp
Streamable HTTP with JSON-RPC tool calls.
What this is
MCP is a standard way for AI agents to discover and call tools. Instead of every AI application manually building Vulnix0 API wrappers, the agent can connect to the Vulnix0 MCP endpoint, list the available tools, and call the right tool for the user's request.
Start scans
Ask an AI agent to scan an authorized target, and the agent can call vulnix0_start_scan.
Fetch results
The agent can poll scan status and receive a clean summary with findings, ports, TLS, subdomains, and scorecard data.
Compare history
The agent can compare the newest completed scan with the previous completed scan for the same asset.
Quick start
Create a Vulnix0 API key
Use a Vulnix0 account that belongs to the organization you want the agent to operate in. Store the API key in the agent runtime as a secret.
Add the MCP endpoint to your agent
Configure the agent MCP server URL as https://vulnix0.com/mcp. Send the API key in the Authorization header.
Select organization context
Pass org_id in the tool arguments or send X-Org-Id. If neither is provided, Vulnix0 uses the user's current organization.
Let the agent discover tools
The agent calls tools/list, sees the Vulnix0 tools, then calls the right one based on the user prompt.
Authentication
Every MCP request must use a Vulnix0 API key. Browser login cookies and JWT sessions are not accepted by MCP.
Authorization: Bearer YOUR_VULNIX0_API_KEY
The legacy API-key header is also supported:
api-key: YOUR_VULNIX0_API_KEY
To select an organization, use one of these:
X-Org-Id: YOUR_ORG_ID
{
"org_id": "YOUR_ORG_ID"
}
Tool reference
vulnix0_start_scan
Starts a scan for an authorized target. Requires PermStartScan.
{
"target": "aquilax.ai",
"org_id": "optional",
"project_id": "optional",
"scan_policy_id": "optional",
"web": true,
"openapi_spec": "optional raw OpenAPI spec",
"api_base_path": "/api"
}
Returns a reqid, normalized target, status, project, selected policy, and a polling hint.
vulnix0_get_scan_result
Fetches an AI-friendly scan result summary. Requires PermViewScanDetails.
{
"reqid": "scan-request-id",
"org_id": "optional",
"include_evidence": false
}
Returns status, target, timestamps, severity counts, findings, ports, TLS, subdomains, scorecard, project, policy, and AI metadata when available.
vulnix0_get_asset_latest_change
Compares the newest completed scan with the previous completed scan for the same asset.
{
"target": "aquilax.ai",
"org_id": "optional",
"project_id": "optional"
}
Returns added and resolved findings, opened and closed ports, TLS changes, subdomain changes, score delta, and a machine-readable summary.
Example agent workflows
Scan and summarize
User: Scan aquilax.ai and summarize the important risks.
- Agent calls
vulnix0_start_scanwithtarget: aquilax.ai. - Vulnix0 returns a
reqid. - Agent calls
vulnix0_get_scan_resultuntil the scan is completed. - Agent explains high severity findings, weak TLS, open ports, and scorecard impact.
Find what changed
User: What changed for aquilax.ai since the last completed scan?
- Agent calls
vulnix0_get_asset_latest_change. - Vulnix0 compares newest completed scan vs previous completed scan.
- Agent reports added findings, resolved findings, port changes, TLS changes, subdomain changes, and score delta.
JSON-RPC examples
List the available Vulnix0 MCP tools:
curl -s https://vulnix0.com/mcp \
-H "Authorization: Bearer YOUR_VULNIX0_API_KEY" \
-H "X-Org-Id: YOUR_ORG_ID" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Mcp-Protocol-Version: 2025-06-18" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}'
Start a scan for aquilax.ai:
curl -s https://vulnix0.com/mcp \
-H "Authorization: Bearer YOUR_VULNIX0_API_KEY" \
-H "X-Org-Id: YOUR_ORG_ID" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Mcp-Protocol-Version: 2025-06-18" \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "vulnix0_start_scan",
"arguments": {
"target": "aquilax.ai",
"web": true
}
}
}'
Fetch scan results with the returned request id:
curl -s https://vulnix0.com/mcp \
-H "Authorization: Bearer YOUR_VULNIX0_API_KEY" \
-H "X-Org-Id: YOUR_ORG_ID" \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "Mcp-Protocol-Version: 2025-06-18" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "vulnix0_get_scan_result",
"arguments": {
"reqid": "SCAN_REQUEST_ID",
"include_evidence": false
}
}
}'
Python smoke test
For local or private testing, call the MCP endpoint from Python using JSON-RPC:
import json
import urllib.request
url = "https://vulnix0.com/mcp"
api_key = "YOUR_VULNIX0_API_KEY"
org_id = "YOUR_ORG_ID"
headers = {
"Authorization": f"Bearer {api_key}",
"X-Org-Id": org_id,
"Content-Type": "application/json",
"Accept": "application/json, text/event-stream",
"Mcp-Protocol-Version": "2025-06-18",
}
payload = {
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {},
}
request = urllib.request.Request(
url,
data=json.dumps(payload).encode("utf-8"),
headers=headers,
method="POST",
)
with urllib.request.urlopen(request) as response:
print(response.read().decode("utf-8"))
Permissions and safety
vulnix0_start_scanrequires permission to start scans in the selected organization.vulnix0_get_scan_resultrequires permission to view scan details.vulnix0_get_asset_latest_changerequires scan visibility for the selected organization.- Only scan assets you are authorized to assess.
- Store API keys as secrets in your agent runtime. Never place API keys in prompts, frontend code, or public repositories.
- Use saved scan policies to control scan depth, rates, and optional checks.
- Set
include_evidence: trueonly when the agent needs raw HTTP request and response evidence.
Troubleshooting
401 unauthorized
Check that the request includes Authorization: Bearer YOUR_VULNIX0_API_KEY or api-key. Browser login cookies are not accepted.
403 permission error
The API key belongs to a user that does not have the required Vulnix0 role permission in the selected organization.
No organization selected
Pass X-Org-Id or an org_id argument. If omitted, Vulnix0 uses the user's current organization.
No historical comparison
The asset change tool needs at least two completed scans for the same normalized target and optional project scope.