Nuclei · Capability

PDCP API — agents

PDCP API — agents. 6 operations. Lead operation: Get Agents. Self-contained Naftiko capability covering one Nuclei business surface.

Run with Naftiko Nucleiagents

What You Can Do

GET
Getv1agents — Get Agents
/v1/v1/agents
PATCH
Patchv1agents — Bulk Update Agents
/v1/v1/agents
POST
Postv1agentsin — Register Agents
/v1/v1/agents/in
POST
Postv1agentsout — Deregister Agent
/v1/v1/agents/out
GET
Getv1agentsid — Get Agent by ID
/v1/v1/agents/{id}
POST
Postv1agentsid — Update Agent
/v1/v1/agents/{id}

MCP Tools

get-agents

Get Agents

read-only idempotent
bulk-update-agents

Bulk Update Agents

idempotent
register-agents

Register Agents

deregister-agent

Deregister Agent

get-agent-id

Get Agent by ID

read-only idempotent
update-agent

Update Agent

Capability Spec

nuclei-agents.yaml Raw ↑
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: $.