Your Data · Attack Surface

list_my_assets

List your organisation's EdgeProtect attack-surface scans with their target and roll-up counts (hosts, services, vulnerabilities). Costs 1 credit.

POST
tools/call

Cost: 1 credit per successful call  ·  Scope: mcp:org  ·  Response shape: jsonb

Returns data scoped to your own organisation only — the organisation is resolved from your API key and injected server-side, never read from the request.

Parameters

limitintegeroptionaldefault: 50

Maximum number of scans to return. Accepted range: 1–200.

Example invocation

Ask your agent: "List our attack-surface scans and their headline counts."

curl -s https://api.precursorintelligence.com/functions/v1/mcp \
  -H "Authorization: Bearer $PRECURSOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_my_assets","arguments":{"limit":50}}}'

Response

result.content[0].text (parsed)
{
  "count": 2,
  "items": [
    {
      "target_name": "Primary Web Estate",
      "target_value": "precursorsecurity.com",
      "target_type": "domain",
      "scan_id": "a3f1c7e0-9b42-4d8a-bf21-6c0d5e7f1a2b",
      "scan_name": "External Surface — Weekly",
      "status": "completed",
      "created_at": "2026-06-14T02:00:00.000Z",
      "host_count": 18,
      "service_count": 64,
      "vulnerability_count": 12,
      "vulnerability_instance_count": 37
    },
    {
      "target_name": "Edge Gateways",
      "target_value": "203.0.113.0/24",
      "target_type": "cidr",
      "scan_id": "c8b2d4f6-1a30-4e9c-9d77-2f5a8b1c6e30",
      "scan_name": "Perimeter Range Sweep",
      "status": "completed",
      "created_at": "2026-06-11T02:00:00.000Z",
      "host_count": 7,
      "service_count": 21,
      "vulnerability_count": 5,
      "vulnerability_instance_count": 9
    }
  ],
  "generated_at": "2026-06-18T08:15:00.000Z"
}

The full MCP envelope, including _meta.precursor with request_id, credits, and response_truncated, is documented in Response Format.

Response fields

countintegeroptional

Number of scans returned (equals items.length).

itemsarrayoptional

Attack-surface scans for your organisation. Each object contains the fields below.

items[].target_namestringoptional

Human-readable name given to the scan target.

items[].target_valuestringoptional

The target identifier that was scanned, e.g. a domain, IP, or CIDR range.

items[].target_typestringoptional

The kind of target, e.g. domain, ip, or cidr.

items[].scan_idstringoptional

Unique identifier for the EdgeProtect scan.

items[].scan_namestringoptional

Human-readable name of the scan.

items[].statusstringoptional

Current scan status, e.g. completed, running, queued, or failed.

items[].created_atstringoptional

ISO 8601 timestamp of when the scan was created (UTC).

items[].host_countintegeroptional

Number of distinct hosts discovered by the scan.

items[].service_countintegeroptional

Number of distinct services discovered across those hosts.

items[].vulnerability_countintegeroptional

Number of distinct vulnerability findings for the scan.

items[].vulnerability_instance_countintegeroptional

Total number of vulnerability instances (a finding may recur across multiple hosts or services).

generated_atstringoptional

ISO 8601 timestamp indicating when this response was generated.

Errors

CodeMessageWhen
-32602invalid_params: limit: min:1limit is less than 1
-32602invalid_params: limit: max:200limit exceeds 200
-32001unauthorizedThe API key is invalid/revoked, the IP is not allowed, or the key lacks the mcp:org scope.
-32002insufficient_creditsYour credit balance is zero; top up from the dashboard
-32603internalUnexpected server error; the credit is automatically refunded