naftiko: 1.0.0-alpha2 info: label: PDCP API — agents description: 'PDCP API — agents. 6 operations. Lead operation: Get Agents. Self-contained Naftiko capability covering one Nuclei business surface.' tags: - Nuclei - agents created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: NUCLEI_API_KEY: NUCLEI_API_KEY capability: consumes: - type: http namespace: nuclei-agents baseUri: https://api.projectdiscovery.io description: PDCP API — agents business capability. Self-contained, no shared references. resources: - name: v1-agents path: /v1/agents operations: - name: getv1agents method: GET description: Get Agents outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: x-api-key in: header type: string description: API key - name: patchv1agents method: PATCH description: Bulk Update Agents outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: x-api-key in: header type: string description: API key - name: body in: body type: object description: Request body (JSON). required: true - name: v1-agents-in path: /v1/agents/in operations: - name: postv1agentsin method: POST description: Register Agents outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: os in: query type: string description: Operating system - name: arch in: query type: string description: Architecture - name: id in: query type: string description: Agent ID - name: name in: query type: string description: Agent name - name: tags in: query type: string description: Comma-separated tags - name: networks in: query type: string description: Comma-separated networks - name: network_subnets in: query type: string description: Comma-separated network subnets - name: type in: query type: string description: Agent type (agent or tunnel) - name: x-api-key in: header type: string description: API key - name: v1-agents-out path: /v1/agents/out operations: - name: postv1agentsout method: POST description: Deregister Agent outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: id in: query type: string description: Agent ID - name: x-api-key in: header type: string description: API key - name: v1-agents-id path: /v1/agents/{id} operations: - name: getv1agentsid method: GET description: Get Agent by ID outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: x-api-key in: header type: string description: API key - name: postv1agentsid method: POST description: Update Agent outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: x-api-key in: header type: string description: API key - name: body in: body type: object description: Request body (JSON). required: true authentication: type: apikey key: X-API-Key value: '{{env.NUCLEI_API_KEY}}' placement: header exposes: - type: rest namespace: nuclei-agents-rest port: 8080 description: REST adapter for PDCP API — agents. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/v1/agents name: v1-agents description: REST surface for v1-agents. operations: - method: GET name: getv1agents description: Get Agents call: nuclei-agents.getv1agents with: x-api-key: rest.x-api-key outputParameters: - type: object mapping: $. - method: PATCH name: patchv1agents description: Bulk Update Agents call: nuclei-agents.patchv1agents with: x-api-key: rest.x-api-key body: rest.body outputParameters: - type: object mapping: $. - path: /v1/v1/agents/in name: v1-agents-in description: REST surface for v1-agents-in. operations: - method: POST name: postv1agentsin description: Register Agents call: nuclei-agents.postv1agentsin with: os: rest.os arch: rest.arch id: rest.id name: rest.name tags: rest.tags networks: rest.networks network_subnets: rest.network_subnets type: rest.type x-api-key: rest.x-api-key outputParameters: - type: object mapping: $. - path: /v1/v1/agents/out name: v1-agents-out description: REST surface for v1-agents-out. operations: - method: POST name: postv1agentsout description: Deregister Agent call: nuclei-agents.postv1agentsout with: id: rest.id x-api-key: rest.x-api-key outputParameters: - type: object mapping: $. - path: /v1/v1/agents/{id} name: v1-agents-id description: REST surface for v1-agents-id. operations: - method: GET name: getv1agentsid description: Get Agent by ID call: nuclei-agents.getv1agentsid with: x-api-key: rest.x-api-key outputParameters: - type: object mapping: $. - method: POST name: postv1agentsid description: Update Agent call: nuclei-agents.postv1agentsid with: x-api-key: rest.x-api-key body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: nuclei-agents-mcp port: 9090 transport: http description: MCP adapter for PDCP API — agents. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: get-agents description: Get Agents hints: readOnly: true destructive: false idempotent: true call: nuclei-agents.getv1agents with: x-api-key: tools.x-api-key outputParameters: - type: object mapping: $. - name: bulk-update-agents description: Bulk Update Agents hints: readOnly: false destructive: false idempotent: true call: nuclei-agents.patchv1agents with: x-api-key: tools.x-api-key body: tools.body outputParameters: - type: object mapping: $. - name: register-agents description: Register Agents hints: readOnly: false destructive: false idempotent: false call: nuclei-agents.postv1agentsin with: os: tools.os arch: tools.arch id: tools.id name: tools.name tags: tools.tags networks: tools.networks network_subnets: tools.network_subnets type: tools.type x-api-key: tools.x-api-key outputParameters: - type: object mapping: $. - name: deregister-agent description: Deregister Agent hints: readOnly: false destructive: false idempotent: false call: nuclei-agents.postv1agentsout with: id: tools.id x-api-key: tools.x-api-key outputParameters: - type: object mapping: $. - name: get-agent-id description: Get Agent by ID hints: readOnly: true destructive: false idempotent: true call: nuclei-agents.getv1agentsid with: x-api-key: tools.x-api-key outputParameters: - type: object mapping: $. - name: update-agent description: Update Agent hints: readOnly: false destructive: false idempotent: false call: nuclei-agents.postv1agentsid with: x-api-key: tools.x-api-key body: tools.body outputParameters: - type: object mapping: $.