{"openapi":"3.1.0","info":{"title":"Rapid7 Insight VM Cloud (BYOK) API","version":"0.1.0","description":"Rapid7 Insight VM Cloud (BYOK) lets an AI assistant read your own Rapid7 Insight VM Cloud data through the Rapid7 Insight VM Cloud API with a key you supply (Rapid7 Insight platform API key (user or organization key)). Read-only: 8 tools (search_assets, get_asset, search_vulnerabilities, list_scans, get_scan, list_scan_engines, get_scan_engine, list_sites). The BYOK key travels with each request,...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-rapid7-insightvm-cloud.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-rapid7-insightvm-cloud/docs"},"termsOfService":"https://connectorbay.com/byok-rapid7-insightvm-cloud/terms"},"servers":[{"url":"https://byok-rapid7-insightvm-cloud.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-rapid7-insightvm-cloud/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/search_assets":{"post":{"operationId":"search_assets","summary":"Search InsightVM assets and return host name, IP, OS, risk score, vulnerability counts by severity, last scan time and t","description":"Search InsightVM assets and return host name, IP, OS, risk score, vulnerability counts by severity, last scan time and tags. Optional filter expressions narrow the result. Use for \"Which assets have critical vulnerabilities in InsightVM\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Rapid7 region code of your data: us, us2, us3, eu, ca, au, ap, aps2 or me1 (the first part of your Insight platform URL).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Region","type":"string"},"asset_filter":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Filter expression on asset fields, for example \"cvss_score >= 9\" or \"last_scan_end >= '2026-09-01T00:00:00Z'\". Leave empty for all assets.","title":"Asset Filter"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from metadata.cursor of the previous response, to read the next page consistently.","title":"Cursor"},"page":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page index, starting at 0 (paging works up to 10,000 results; use the cursor beyond that).","title":"Page"},"size":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Records per page (1 to 500).","title":"Size"},"sort":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Sort as property,ASC or property,DESC.","title":"Sort"}},"required":["region"],"title":"search_assetsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_asset":{"post":{"operationId":"get_asset","summary":"Get one asset by id: host name, IP, OS, risk score, vulnerability counts, last scan time and tags. Use for \"What is the ","description":"Get one asset by id: host name, IP, OS, risk score, vulnerability counts, last scan time and tags. Use for \"What is the InsightVM assessment of asset a1b2c3\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Rapid7 region code of your data: us, us2, us3, eu, ca, au, ap, aps2 or me1 (the first part of your Insight platform URL).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Region","type":"string"},"asset_id":{"description":"Asset id (id.id from search_assets).","maxLength":200,"title":"Asset Id","type":"string"}},"required":["region","asset_id"],"title":"get_assetArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/search_vulnerabilities":{"post":{"operationId":"search_vulnerabilities","summary":"Search the vulnerabilities InsightVM can assess: title, severity, CVSS scores, CVE ids and dates. An optional filter exp","description":"Search the vulnerabilities InsightVM can assess: title, severity, CVSS scores, CVE ids and dates. An optional filter expression narrows the result. Use for \"Which severe InsightVM vulnerabilities mention OpenSSL\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Rapid7 region code of your data: us, us2, us3, eu, ca, au, ap, aps2 or me1 (the first part of your Insight platform URL).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Region","type":"string"},"vulnerability_filter":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Filter expression on vulnerability fields, for example \"severity = 'critical'\" or \"cvss_v3_score >= 9\". Leave empty for all.","title":"Vulnerability Filter"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from metadata.cursor of the previous response, to read the next page consistently.","title":"Cursor"},"page":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page index, starting at 0 (paging works up to 10,000 results; use the cursor beyond that).","title":"Page"},"size":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Records per page (1 to 500).","title":"Size"},"sort":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Sort as property,ASC or property,DESC.","title":"Sort"}},"required":["region"],"title":"search_vulnerabilitiesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_scans":{"post":{"operationId":"list_scans","summary":"List scans with name, status, start and finish times and the engine used. Use for \"What InsightVM scans ran recently\".","description":"List scans with name, status, start and finish times and the engine used. Use for \"What InsightVM scans ran recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Rapid7 region code of your data: us, us2, us3, eu, ca, au, ap, aps2 or me1 (the first part of your Insight platform URL).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Region","type":"string"},"page":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page index, starting at 0 (paging works up to 10,000 results; use the cursor beyond that).","title":"Page"},"size":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Records per page (1 to 500).","title":"Size"}},"required":["region"],"title":"list_scansArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_scan":{"post":{"operationId":"get_scan","summary":"Get one scan: name, status, start and finish times and the engine used. Use for \"Did InsightVM scan s1 finish\".","description":"Get one scan: name, status, start and finish times and the engine used. Use for \"Did InsightVM scan s1 finish\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Rapid7 region code of your data: us, us2, us3, eu, ca, au, ap, aps2 or me1 (the first part of your Insight platform URL).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Region","type":"string"},"scan_id":{"description":"Scan id (id.id from list_scans).","maxLength":200,"title":"Scan Id","type":"string"}},"required":["region","scan_id"],"title":"get_scanArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_scan_engines":{"post":{"operationId":"list_scan_engines","summary":"List scan engines with name, host name, status and last seen time. Use for \"Are my InsightVM scan engines online\".","description":"List scan engines with name, host name, status and last seen time. Use for \"Are my InsightVM scan engines online\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Rapid7 region code of your data: us, us2, us3, eu, ca, au, ap, aps2 or me1 (the first part of your Insight platform URL).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Region","type":"string"},"page":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page index, starting at 0 (paging works up to 10,000 results; use the cursor beyond that).","title":"Page"},"size":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Records per page (1 to 500).","title":"Size"}},"required":["region"],"title":"list_scan_enginesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_scan_engine":{"post":{"operationId":"get_scan_engine","summary":"Get one scan engine: name, host name, status, last seen and registration time. Use for \"What is the status of InsightVM ","description":"Get one scan engine: name, host name, status, last seen and registration time. Use for \"What is the status of InsightVM scan engine e1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Rapid7 region code of your data: us, us2, us3, eu, ca, au, ap, aps2 or me1 (the first part of your Insight platform URL).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Region","type":"string"},"engine_id":{"description":"Scan engine id (id.id from list_scan_engines).","maxLength":200,"title":"Engine Id","type":"string"}},"required":["region","engine_id"],"title":"get_scan_engineArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_sites":{"post":{"operationId":"list_sites","summary":"List InsightVM sites (named groups of assets) as name and type pairs. Use for \"Which sites exist in InsightVM\".","description":"List InsightVM sites (named groups of assets) as name and type pairs. Use for \"Which sites exist in InsightVM\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"region":{"description":"Rapid7 region code of your data: us, us2, us3, eu, ca, au, ap, aps2 or me1 (the first part of your Insight platform URL).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Region","type":"string"},"cursor":{"anyOf":[{"maxLength":500,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from metadata.cursor of the previous response, to read the next page consistently.","title":"Cursor"},"page":{"anyOf":[{"maximum":10000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Page index, starting at 0 (paging works up to 10,000 results; use the cursor beyond that).","title":"Page"},"size":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"Records per page (1 to 500).","title":"Size"},"sort":{"anyOf":[{"maxLength":100,"type":"string"},{"type":"null"}],"default":null,"description":"Sort as property,ASC or property,DESC.","title":"Sort"}},"required":["region"],"title":"list_sitesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}