Model Context Protocol

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.

Endpoint
https://vulnix0.com/mcp
Transport

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

1

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.

2

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.

3

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.

4

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.
  1. Agent calls vulnix0_start_scan with target: aquilax.ai.
  2. Vulnix0 returns a reqid.
  3. Agent calls vulnix0_get_scan_result until the scan is completed.
  4. 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?
  1. Agent calls vulnix0_get_asset_latest_change.
  2. Vulnix0 compares newest completed scan vs previous completed scan.
  3. 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_scan requires permission to start scans in the selected organization.
  • vulnix0_get_scan_result requires permission to view scan details.
  • vulnix0_get_asset_latest_change requires 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: true only 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.