naftiko: 1.0.0-alpha2 info: label: InsightVM API — Asset description: 'InsightVM API — Asset. 25 operations. Lead operation: Assets. Self-contained Naftiko capability covering one business surface.' tags: - Rapid7 - Asset created: '2026-05-20' modified: '2026-05-20' binds: - namespace: env keys: RAPID7_API_KEY: RAPID7_API_KEY capability: consumes: - type: http namespace: insightvm-console-swagger-asset baseUri: https://localhost:3780 description: InsightVM API — Asset business capability. Self-contained, no shared references. resources: - name: api-3-assets path: /api/3/assets operations: - name: getassets method: GET description: Assets outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page in: query type: integer description: The index of the page (zero-based) to retrieve. - name: size in: query type: integer description: The number of records per page to retrieve. - name: sort in: query type: array description: 'The criteria to sort the records by, in the format: `property[,ASC|DESC]`. The default sort order is ascending. Multiple sort criteria can be specified using multiple sort query parameters.' - name: api-3-sites-id-assets path: /api/3/sites/{id}/assets operations: - name: createasset method: POST description: Assets outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the site. required: true - name: asset in: body type: string description: "The details of the asset being added or updated. \nThe operating system can be specified in one of three ways, with the order of precedence: `\"osFingerprint\"`, `\"os\"`, `\"cpe\"`" - name: body in: body type: object description: Request body (JSON). required: true - name: api-3-assets-search path: /api/3/assets/search operations: - name: findassets method: POST description: Asset Search outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: param1 in: body type: string description: param1 required: true - name: page in: query type: integer description: The index of the page (zero-based) to retrieve. - name: size in: query type: integer description: The number of records per page to retrieve. - name: sort in: query type: array description: 'The criteria to sort the records by, in the format: `property[,ASC|DESC]`. The default sort order is ascending. Multiple sort criteria can be specified using multiple sort query parameters.' - name: body in: body type: object description: Request body (JSON). required: true - name: api-3-assets-id path: /api/3/assets/{id} operations: - name: getasset method: GET description: Asset outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the asset. required: true - name: deleteasset method: DELETE description: Asset outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the asset. required: true - name: api-3-assets-id-databases path: /api/3/assets/{id}/databases operations: - name: getassetdatabases method: GET description: Asset Databases outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the asset. required: true - name: api-3-assets-id-files path: /api/3/assets/{id}/files operations: - name: getassetfiles method: GET description: Asset Files outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the asset. required: true - name: api-3-assets-id-services path: /api/3/assets/{id}/services operations: - name: getassetservices method: GET description: Asset Services outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the asset. required: true - name: api-3-assets-id-services-protocol-port path: /api/3/assets/{id}/services/{protocol}/{port} operations: - name: getassetservice method: GET description: Asset Service outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the asset. required: true - name: protocol in: path type: string description: The protocol of the service. required: true - name: port in: path type: integer description: The port of the service. required: true - name: api-3-assets-id-services-protocol-port-configurations path: /api/3/assets/{id}/services/{protocol}/{port}/configurations operations: - name: getassetserviceconfigurations method: GET description: Asset Service Configurations outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the asset. required: true - name: protocol in: path type: string description: The protocol of the service. required: true - name: port in: path type: integer description: The port of the service. required: true - name: api-3-assets-id-services-protocol-port-databases path: /api/3/assets/{id}/services/{protocol}/{port}/databases operations: - name: getassetservicedatabases method: GET description: Asset Service Databases outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the asset. required: true - name: protocol in: path type: string description: The protocol of the service. required: true - name: port in: path type: integer description: The port of the service. required: true - name: api-3-assets-id-services-protocol-port-user-groups path: /api/3/assets/{id}/services/{protocol}/{port}/user_groups operations: - name: getassetserviceusergroups method: GET description: Asset Service User Groups outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the asset. required: true - name: protocol in: path type: string description: The protocol of the service. required: true - name: port in: path type: integer description: The port of the service. required: true - name: api-3-assets-id-services-protocol-port-users path: /api/3/assets/{id}/services/{protocol}/{port}/users operations: - name: getassetserviceusers method: GET description: Asset Service Users outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the asset. required: true - name: protocol in: path type: string description: The protocol of the service. required: true - name: port in: path type: integer description: The port of the service. required: true - name: api-3-assets-id-services-protocol-port-web-applications path: /api/3/assets/{id}/services/{protocol}/{port}/web_applications operations: - name: getassetservicewebapplications method: GET description: Asset Service Web Applications outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the asset. required: true - name: protocol in: path type: string description: The protocol of the service. required: true - name: port in: path type: integer description: The port of the service. required: true - name: api-3-assets-id-services-protocol-port-web-applications-weba path: /api/3/assets/{id}/services/{protocol}/{port}/web_applications/{webApplicationId} operations: - name: getassetservicewebapplication method: GET description: Asset Service Web Application outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the asset. required: true - name: protocol in: path type: string description: The protocol of the service. required: true - name: port in: path type: integer description: The port of the service. required: true - name: webApplicationId in: path type: integer description: The identifier of the web application. required: true - name: api-3-assets-id-software path: /api/3/assets/{id}/software operations: - name: getassetsoftware method: GET description: Asset Software outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the asset. required: true - name: api-3-assets-id-tags path: /api/3/assets/{id}/tags operations: - name: getassettags method: GET description: Asset Tags outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the asset. required: true - name: api-3-assets-id-tags-tagid path: /api/3/assets/{id}/tags/{tagId} operations: - name: addassettag method: PUT description: Asset Tag outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the asset. required: true - name: tagId in: path type: integer description: The identifier of the tag. required: true - name: body in: body type: object description: Request body (JSON). required: false - name: removeassettag method: DELETE description: Asset Tag outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the asset. required: true - name: tagId in: path type: integer description: The identifier of the tag. required: true - name: api-3-assets-id-user-groups path: /api/3/assets/{id}/user_groups operations: - name: getassetusergroups method: GET description: Asset User Groups outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the asset. required: true - name: api-3-assets-id-users path: /api/3/assets/{id}/users operations: - name: getassetusers method: GET description: Asset Users outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the asset. required: true - name: api-3-operating-systems path: /api/3/operating_systems operations: - name: getoperatingsystems method: GET description: Operating Systems outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page in: query type: integer description: The index of the page (zero-based) to retrieve. - name: size in: query type: integer description: The number of records per page to retrieve. - name: sort in: query type: array description: 'The criteria to sort the records by, in the format: `property[,ASC|DESC]`. The default sort order is ascending. Multiple sort criteria can be specified using multiple sort query parameters.' - name: api-3-operating-systems-id path: /api/3/operating_systems/{id} operations: - name: getoperatingsystem method: GET description: Operating System outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the operating system. required: true - name: api-3-software path: /api/3/software operations: - name: getsoftwares method: GET description: Software outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: page in: query type: integer description: The index of the page (zero-based) to retrieve. - name: size in: query type: integer description: The number of records per page to retrieve. - name: sort in: query type: array description: 'The criteria to sort the records by, in the format: `property[,ASC|DESC]`. The default sort order is ascending. Multiple sort criteria can be specified using multiple sort query parameters.' - name: api-3-software-id path: /api/3/software/{id} operations: - name: getsoftware method: GET description: Software outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: path type: integer description: The identifier of the software. required: true exposes: - type: rest namespace: insightvm-console-swagger-asset-rest port: 8080 description: REST adapter for InsightVM API — Asset. One resource per consumed operation, prefixed with /v1. resources: - path: /v1/api/3/assets name: api-3-assets description: REST surface for api-3-assets. operations: - method: GET name: getassets description: Assets call: insightvm-console-swagger-asset.getassets with: page: rest.page size: rest.size sort: rest.sort outputParameters: - type: object mapping: $. - path: /v1/api/3/sites/{id}/assets name: api-3-sites-id-assets description: REST surface for api-3-sites-id-assets. operations: - method: POST name: createasset description: Assets call: insightvm-console-swagger-asset.createasset with: id: rest.id asset: rest.asset body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/3/assets/search name: api-3-assets-search description: REST surface for api-3-assets-search. operations: - method: POST name: findassets description: Asset Search call: insightvm-console-swagger-asset.findassets with: param1: rest.param1 page: rest.page size: rest.size sort: rest.sort body: rest.body outputParameters: - type: object mapping: $. - path: /v1/api/3/assets/{id} name: api-3-assets-id description: REST surface for api-3-assets-id. operations: - method: GET name: getasset description: Asset call: insightvm-console-swagger-asset.getasset with: id: rest.id outputParameters: - type: object mapping: $. - method: DELETE name: deleteasset description: Asset call: insightvm-console-swagger-asset.deleteasset with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/api/3/assets/{id}/databases name: api-3-assets-id-databases description: REST surface for api-3-assets-id-databases. operations: - method: GET name: getassetdatabases description: Asset Databases call: insightvm-console-swagger-asset.getassetdatabases with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/api/3/assets/{id}/files name: api-3-assets-id-files description: REST surface for api-3-assets-id-files. operations: - method: GET name: getassetfiles description: Asset Files call: insightvm-console-swagger-asset.getassetfiles with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/api/3/assets/{id}/services name: api-3-assets-id-services description: REST surface for api-3-assets-id-services. operations: - method: GET name: getassetservices description: Asset Services call: insightvm-console-swagger-asset.getassetservices with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/api/3/assets/{id}/services/{protocol}/{port} name: api-3-assets-id-services-protocol-port description: REST surface for api-3-assets-id-services-protocol-port. operations: - method: GET name: getassetservice description: Asset Service call: insightvm-console-swagger-asset.getassetservice with: id: rest.id protocol: rest.protocol port: rest.port outputParameters: - type: object mapping: $. - path: /v1/api/3/assets/{id}/services/{protocol}/{port}/configurations name: api-3-assets-id-services-protocol-port-configurations description: REST surface for api-3-assets-id-services-protocol-port-configurations. operations: - method: GET name: getassetserviceconfigurations description: Asset Service Configurations call: insightvm-console-swagger-asset.getassetserviceconfigurations with: id: rest.id protocol: rest.protocol port: rest.port outputParameters: - type: object mapping: $. - path: /v1/api/3/assets/{id}/services/{protocol}/{port}/databases name: api-3-assets-id-services-protocol-port-databases description: REST surface for api-3-assets-id-services-protocol-port-databases. operations: - method: GET name: getassetservicedatabases description: Asset Service Databases call: insightvm-console-swagger-asset.getassetservicedatabases with: id: rest.id protocol: rest.protocol port: rest.port outputParameters: - type: object mapping: $. - path: /v1/api/3/assets/{id}/services/{protocol}/{port}/user_groups name: api-3-assets-id-services-protocol-port-user-groups description: REST surface for api-3-assets-id-services-protocol-port-user-groups. operations: - method: GET name: getassetserviceusergroups description: Asset Service User Groups call: insightvm-console-swagger-asset.getassetserviceusergroups with: id: rest.id protocol: rest.protocol port: rest.port outputParameters: - type: object mapping: $. - path: /v1/api/3/assets/{id}/services/{protocol}/{port}/users name: api-3-assets-id-services-protocol-port-users description: REST surface for api-3-assets-id-services-protocol-port-users. operations: - method: GET name: getassetserviceusers description: Asset Service Users call: insightvm-console-swagger-asset.getassetserviceusers with: id: rest.id protocol: rest.protocol port: rest.port outputParameters: - type: object mapping: $. - path: /v1/api/3/assets/{id}/services/{protocol}/{port}/web_applications name: api-3-assets-id-services-protocol-port-web-applications description: REST surface for api-3-assets-id-services-protocol-port-web-applications. operations: - method: GET name: getassetservicewebapplications description: Asset Service Web Applications call: insightvm-console-swagger-asset.getassetservicewebapplications with: id: rest.id protocol: rest.protocol port: rest.port outputParameters: - type: object mapping: $. - path: /v1/api/3/assets/{id}/services/{protocol}/{port}/web_applications/{webApplicationId} name: api-3-assets-id-services-protocol-port-web-applications-weba description: REST surface for api-3-assets-id-services-protocol-port-web-applications-weba. operations: - method: GET name: getassetservicewebapplication description: Asset Service Web Application call: insightvm-console-swagger-asset.getassetservicewebapplication with: id: rest.id protocol: rest.protocol port: rest.port webApplicationId: rest.webApplicationId outputParameters: - type: object mapping: $. - path: /v1/api/3/assets/{id}/software name: api-3-assets-id-software description: REST surface for api-3-assets-id-software. operations: - method: GET name: getassetsoftware description: Asset Software call: insightvm-console-swagger-asset.getassetsoftware with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/api/3/assets/{id}/tags name: api-3-assets-id-tags description: REST surface for api-3-assets-id-tags. operations: - method: GET name: getassettags description: Asset Tags call: insightvm-console-swagger-asset.getassettags with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/api/3/assets/{id}/tags/{tagId} name: api-3-assets-id-tags-tagid description: REST surface for api-3-assets-id-tags-tagid. operations: - method: PUT name: addassettag description: Asset Tag call: insightvm-console-swagger-asset.addassettag with: id: rest.id tagId: rest.tagId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: removeassettag description: Asset Tag call: insightvm-console-swagger-asset.removeassettag with: id: rest.id tagId: rest.tagId outputParameters: - type: object mapping: $. - path: /v1/api/3/assets/{id}/user_groups name: api-3-assets-id-user-groups description: REST surface for api-3-assets-id-user-groups. operations: - method: GET name: getassetusergroups description: Asset User Groups call: insightvm-console-swagger-asset.getassetusergroups with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/api/3/assets/{id}/users name: api-3-assets-id-users description: REST surface for api-3-assets-id-users. operations: - method: GET name: getassetusers description: Asset Users call: insightvm-console-swagger-asset.getassetusers with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/api/3/operating_systems name: api-3-operating-systems description: REST surface for api-3-operating-systems. operations: - method: GET name: getoperatingsystems description: Operating Systems call: insightvm-console-swagger-asset.getoperatingsystems with: page: rest.page size: rest.size sort: rest.sort outputParameters: - type: object mapping: $. - path: /v1/api/3/operating_systems/{id} name: api-3-operating-systems-id description: REST surface for api-3-operating-systems-id. operations: - method: GET name: getoperatingsystem description: Operating System call: insightvm-console-swagger-asset.getoperatingsystem with: id: rest.id outputParameters: - type: object mapping: $. - path: /v1/api/3/software name: api-3-software description: REST surface for api-3-software. operations: - method: GET name: getsoftwares description: Software call: insightvm-console-swagger-asset.getsoftwares with: page: rest.page size: rest.size sort: rest.sort outputParameters: - type: object mapping: $. - path: /v1/api/3/software/{id} name: api-3-software-id description: REST surface for api-3-software-id. operations: - method: GET name: getsoftware description: Software call: insightvm-console-swagger-asset.getsoftware with: id: rest.id outputParameters: - type: object mapping: $. - type: mcp namespace: insightvm-console-swagger-asset-mcp port: 9090 transport: http description: MCP adapter for InsightVM API — Asset. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: rapid7-getassets description: Assets hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getassets with: page: tools.page size: tools.size sort: tools.sort outputParameters: - type: object mapping: $. - name: rapid7-createasset description: Assets hints: readOnly: false destructive: false idempotent: false call: insightvm-console-swagger-asset.createasset with: id: tools.id asset: tools.asset body: tools.body outputParameters: - type: object mapping: $. - name: rapid7-findassets description: Asset Search hints: readOnly: false destructive: false idempotent: false call: insightvm-console-swagger-asset.findassets with: param1: tools.param1 page: tools.page size: tools.size sort: tools.sort body: tools.body outputParameters: - type: object mapping: $. - name: rapid7-getasset description: Asset hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getasset with: id: tools.id outputParameters: - type: object mapping: $. - name: rapid7-deleteasset description: Asset hints: readOnly: false destructive: true idempotent: true call: insightvm-console-swagger-asset.deleteasset with: id: tools.id outputParameters: - type: object mapping: $. - name: rapid7-getassetdatabases description: Asset Databases hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getassetdatabases with: id: tools.id outputParameters: - type: object mapping: $. - name: rapid7-getassetfiles description: Asset Files hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getassetfiles with: id: tools.id outputParameters: - type: object mapping: $. - name: rapid7-getassetservices description: Asset Services hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getassetservices with: id: tools.id outputParameters: - type: object mapping: $. - name: rapid7-getassetservice description: Asset Service hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getassetservice with: id: tools.id protocol: tools.protocol port: tools.port outputParameters: - type: object mapping: $. - name: rapid7-getassetserviceconfigurations description: Asset Service Configurations hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getassetserviceconfigurations with: id: tools.id protocol: tools.protocol port: tools.port outputParameters: - type: object mapping: $. - name: rapid7-getassetservicedatabases description: Asset Service Databases hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getassetservicedatabases with: id: tools.id protocol: tools.protocol port: tools.port outputParameters: - type: object mapping: $. - name: rapid7-getassetserviceusergroups description: Asset Service User Groups hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getassetserviceusergroups with: id: tools.id protocol: tools.protocol port: tools.port outputParameters: - type: object mapping: $. - name: rapid7-getassetserviceusers description: Asset Service Users hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getassetserviceusers with: id: tools.id protocol: tools.protocol port: tools.port outputParameters: - type: object mapping: $. - name: rapid7-getassetservicewebapplications description: Asset Service Web Applications hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getassetservicewebapplications with: id: tools.id protocol: tools.protocol port: tools.port outputParameters: - type: object mapping: $. - name: rapid7-getassetservicewebapplication description: Asset Service Web Application hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getassetservicewebapplication with: id: tools.id protocol: tools.protocol port: tools.port webApplicationId: tools.webApplicationId outputParameters: - type: object mapping: $. - name: rapid7-getassetsoftware description: Asset Software hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getassetsoftware with: id: tools.id outputParameters: - type: object mapping: $. - name: rapid7-getassettags description: Asset Tags hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getassettags with: id: tools.id outputParameters: - type: object mapping: $. - name: rapid7-addassettag description: Asset Tag hints: readOnly: false destructive: false idempotent: true call: insightvm-console-swagger-asset.addassettag with: id: tools.id tagId: tools.tagId body: tools.body outputParameters: - type: object mapping: $. - name: rapid7-removeassettag description: Asset Tag hints: readOnly: false destructive: true idempotent: true call: insightvm-console-swagger-asset.removeassettag with: id: tools.id tagId: tools.tagId outputParameters: - type: object mapping: $. - name: rapid7-getassetusergroups description: Asset User Groups hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getassetusergroups with: id: tools.id outputParameters: - type: object mapping: $. - name: rapid7-getassetusers description: Asset Users hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getassetusers with: id: tools.id outputParameters: - type: object mapping: $. - name: rapid7-getoperatingsystems description: Operating Systems hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getoperatingsystems with: page: tools.page size: tools.size sort: tools.sort outputParameters: - type: object mapping: $. - name: rapid7-getoperatingsystem description: Operating System hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getoperatingsystem with: id: tools.id outputParameters: - type: object mapping: $. - name: rapid7-getsoftwares description: Software hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getsoftwares with: page: tools.page size: tools.size sort: tools.sort outputParameters: - type: object mapping: $. - name: rapid7-getsoftware description: Software hints: readOnly: true destructive: false idempotent: true call: insightvm-console-swagger-asset.getsoftware with: id: tools.id outputParameters: - type: object mapping: $.