naftiko: 1.0.0-alpha2 info: label: PDCP API — configurations description: 'PDCP API — configurations. 14 operations. Lead operation: Get Configs List. Self-contained Naftiko capability covering one Nuclei business surface.' tags: - Nuclei - configurations created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: NUCLEI_API_KEY: NUCLEI_API_KEY capability: consumes: - type: http namespace: nuclei-configurations baseUri: https://api.projectdiscovery.io description: PDCP API — configurations business capability. Self-contained, no shared references. resources: - name: v1-scans-config path: /v1/scans/config operations: - name: getv1scansconfig method: GET description: Get Configs List outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: type in: query type: string description: filter by the type of config - name: search in: query type: string description: search by config name - name: limit in: query type: integer description: The numbers of items to return - name: offset in: query type: integer description: The number of items to skip before starting to collect the result set - name: X-Team-Id in: header type: string description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: postv1scansconfig method: POST description: Add Config outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Team-Id in: header type: string description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: body in: body type: object description: Request body (JSON). required: false - name: v1-scans-config-exclude path: /v1/scans/config/exclude operations: - name: getscansconfigexclude method: GET description: Get excluded templates outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Team-Id in: header type: string description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: postscansconfigexclude method: POST description: Add excluded templates and targets outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Team-Id in: header type: string description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: body in: body type: object description: Request body (JSON). required: false - name: deletescansconfigexclude method: DELETE description: Delete excluded templates or targets by ids outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Team-Id in: header type: string description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: body in: body type: object description: Request body (JSON). required: false - name: v1-scans-config-severity path: /v1/scans/config/severity operations: - name: getv1scansconfigseverity method: GET description: Get custom severity mappings outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Team-Id in: header type: string description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: postv1scansconfigseverity method: POST description: Add custom severity mapping outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Team-Id in: header type: string description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: body in: body type: object description: Request body (JSON). required: false - name: deletev1scansconfigseverity method: DELETE description: Delete custom severity mapping outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Team-Id in: header type: string description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: body in: body type: object description: Request body (JSON). required: false - name: v1-scans-config-verify path: /v1/scans/config/verify operations: - name: postv1scansconfigverify method: POST description: Verify Config outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Team-Id in: header type: string description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: body in: body type: object description: Request body (JSON). required: false - name: v1-scans-config-verify-contents path: /v1/scans/config/verify/contents operations: - name: postv1scansconfigverifycontents method: POST description: Get Verify Config Contents outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Team-Id in: header type: string description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: project_id in: query type: string description: Jira Project ID to fetch details for - name: team_id in: query type: string description: Linear Team ID to fetch details for - name: cloud_id in: query type: string description: Specific Jira cloud ID when multiple clouds are available - name: body in: body type: object description: Request body (JSON). required: false - name: v1-scans-config-config_id path: /v1/scans/config/{config_id} operations: - name: getv1scansconfigconfigid method: GET description: Get Config outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Team-Id in: header type: string description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: config_json in: query type: boolean description: config is in json format - name: patchv1scansconfigconfigid method: PATCH description: Update Config outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Team-Id in: header type: string description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: config_json in: query type: boolean description: Specify payload is in json - name: body in: body type: object description: Request body (JSON). required: false - name: deletev1scansconfigconfigid method: DELETE description: Delete Config outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Team-Id in: header type: string description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: v1-scans-config-config_id-severity path: /v1/scans/config/{config_id}/severity operations: - name: patchv1scansconfigconfigidseverity method: PATCH description: Modify custom severity mapping outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: X-Team-Id in: header type: string description: 'Retrieve the Team ID from: https://cloud.projectdiscovery.io/settings/team' - name: body in: body type: object description: Request body (JSON). required: false authentication: type: apikey key: X-API-Key value: '{{env.NUCLEI_API_KEY}}' placement: header exposes: - type: rest namespace: nuclei-configurations-rest port: 8080 description: REST adapter for PDCP API — configurations. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/scans/config name: v1-scans-config description: REST surface for v1-scans-config. operations: - method: GET name: getv1scansconfig description: Get Configs List call: nuclei-configurations.getv1scansconfig with: type: rest.type search: rest.search limit: rest.limit offset: rest.offset X-Team-Id: rest.X-Team-Id outputParameters: - type: object mapping: $. - method: POST name: postv1scansconfig description: Add Config call: nuclei-configurations.postv1scansconfig with: X-Team-Id: rest.X-Team-Id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/scans/config/exclude name: v1-scans-config-exclude description: REST surface for v1-scans-config-exclude. operations: - method: GET name: getscansconfigexclude description: Get excluded templates call: nuclei-configurations.getscansconfigexclude with: X-Team-Id: rest.X-Team-Id outputParameters: - type: object mapping: $. - method: POST name: postscansconfigexclude description: Add excluded templates and targets call: nuclei-configurations.postscansconfigexclude with: X-Team-Id: rest.X-Team-Id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletescansconfigexclude description: Delete excluded templates or targets by ids call: nuclei-configurations.deletescansconfigexclude with: X-Team-Id: rest.X-Team-Id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/scans/config/severity name: v1-scans-config-severity description: REST surface for v1-scans-config-severity. operations: - method: GET name: getv1scansconfigseverity description: Get custom severity mappings call: nuclei-configurations.getv1scansconfigseverity with: X-Team-Id: rest.X-Team-Id outputParameters: - type: object mapping: $. - method: POST name: postv1scansconfigseverity description: Add custom severity mapping call: nuclei-configurations.postv1scansconfigseverity with: X-Team-Id: rest.X-Team-Id body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletev1scansconfigseverity description: Delete custom severity mapping call: nuclei-configurations.deletev1scansconfigseverity with: X-Team-Id: rest.X-Team-Id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/scans/config/verify name: v1-scans-config-verify description: REST surface for v1-scans-config-verify. operations: - method: POST name: postv1scansconfigverify description: Verify Config call: nuclei-configurations.postv1scansconfigverify with: X-Team-Id: rest.X-Team-Id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/scans/config/verify/contents name: v1-scans-config-verify-contents description: REST surface for v1-scans-config-verify-contents. operations: - method: POST name: postv1scansconfigverifycontents description: Get Verify Config Contents call: nuclei-configurations.postv1scansconfigverifycontents with: X-Team-Id: rest.X-Team-Id project_id: rest.project_id team_id: rest.team_id cloud_id: rest.cloud_id body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/scans/config/{config-id} name: v1-scans-config-config-id description: REST surface for v1-scans-config-config_id. operations: - method: GET name: getv1scansconfigconfigid description: Get Config call: nuclei-configurations.getv1scansconfigconfigid with: X-Team-Id: rest.X-Team-Id config_json: rest.config_json outputParameters: - type: object mapping: $. - method: PATCH name: patchv1scansconfigconfigid description: Update Config call: nuclei-configurations.patchv1scansconfigconfigid with: X-Team-Id: rest.X-Team-Id config_json: rest.config_json body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deletev1scansconfigconfigid description: Delete Config call: nuclei-configurations.deletev1scansconfigconfigid with: X-Team-Id: rest.X-Team-Id outputParameters: - type: object mapping: $. - path: /v1/v1/scans/config/{config-id}/severity name: v1-scans-config-config-id-severity description: REST surface for v1-scans-config-config_id-severity. operations: - method: PATCH name: patchv1scansconfigconfigidseverity description: Modify custom severity mapping call: nuclei-configurations.patchv1scansconfigconfigidseverity with: X-Team-Id: rest.X-Team-Id body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: nuclei-configurations-mcp port: 9090 transport: http description: MCP adapter for PDCP API — configurations. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-configs-list description: Get Configs List hints: readOnly: true destructive: false idempotent: true call: nuclei-configurations.getv1scansconfig with: type: tools.type search: tools.search limit: tools.limit offset: tools.offset X-Team-Id: tools.X-Team-Id outputParameters: - type: object mapping: $. - name: add-config description: Add Config hints: readOnly: false destructive: false idempotent: false call: nuclei-configurations.postv1scansconfig with: X-Team-Id: tools.X-Team-Id body: tools.body outputParameters: - type: object mapping: $. - name: get-excluded-templates description: Get excluded templates hints: readOnly: true destructive: false idempotent: true call: nuclei-configurations.getscansconfigexclude with: X-Team-Id: tools.X-Team-Id outputParameters: - type: object mapping: $. - name: add-excluded-templates-and-targets description: Add excluded templates and targets hints: readOnly: false destructive: false idempotent: false call: nuclei-configurations.postscansconfigexclude with: X-Team-Id: tools.X-Team-Id body: tools.body outputParameters: - type: object mapping: $. - name: delete-excluded-templates-targets-ids description: Delete excluded templates or targets by ids hints: readOnly: false destructive: true idempotent: true call: nuclei-configurations.deletescansconfigexclude with: X-Team-Id: tools.X-Team-Id body: tools.body outputParameters: - type: object mapping: $. - name: get-custom-severity-mappings description: Get custom severity mappings hints: readOnly: true destructive: false idempotent: true call: nuclei-configurations.getv1scansconfigseverity with: X-Team-Id: tools.X-Team-Id outputParameters: - type: object mapping: $. - name: add-custom-severity-mapping description: Add custom severity mapping hints: readOnly: false destructive: false idempotent: false call: nuclei-configurations.postv1scansconfigseverity with: X-Team-Id: tools.X-Team-Id body: tools.body outputParameters: - type: object mapping: $. - name: delete-custom-severity-mapping description: Delete custom severity mapping hints: readOnly: false destructive: true idempotent: true call: nuclei-configurations.deletev1scansconfigseverity with: X-Team-Id: tools.X-Team-Id body: tools.body outputParameters: - type: object mapping: $. - name: verify-config description: Verify Config hints: readOnly: false destructive: false idempotent: false call: nuclei-configurations.postv1scansconfigverify with: X-Team-Id: tools.X-Team-Id body: tools.body outputParameters: - type: object mapping: $. - name: get-verify-config-contents description: Get Verify Config Contents hints: readOnly: true destructive: false idempotent: false call: nuclei-configurations.postv1scansconfigverifycontents with: X-Team-Id: tools.X-Team-Id project_id: tools.project_id team_id: tools.team_id cloud_id: tools.cloud_id body: tools.body outputParameters: - type: object mapping: $. - name: get-config description: Get Config hints: readOnly: true destructive: false idempotent: true call: nuclei-configurations.getv1scansconfigconfigid with: X-Team-Id: tools.X-Team-Id config_json: tools.config_json outputParameters: - type: object mapping: $. - name: update-config description: Update Config hints: readOnly: false destructive: false idempotent: true call: nuclei-configurations.patchv1scansconfigconfigid with: X-Team-Id: tools.X-Team-Id config_json: tools.config_json body: tools.body outputParameters: - type: object mapping: $. - name: delete-config description: Delete Config hints: readOnly: false destructive: true idempotent: true call: nuclei-configurations.deletev1scansconfigconfigid with: X-Team-Id: tools.X-Team-Id outputParameters: - type: object mapping: $. - name: modify-custom-severity-mapping description: Modify custom severity mapping hints: readOnly: false destructive: false idempotent: true call: nuclei-configurations.patchv1scansconfigconfigidseverity with: X-Team-Id: tools.X-Team-Id body: tools.body outputParameters: - type: object mapping: $.