Escape · Capability

Escape Public API — Issues

Escape Public API — Issues. 9 operations. Lead operation: List issues. Self-contained Naftiko capability covering one Escape business surface.

Run with Naftiko EscapeIssues

What You Can Do

GET
Listissues — List issues
/v1/issues
POST
Bulkupdateissues — Bulk update issues
/v1/issues/bulk-update
GET
Getissuefunnel — Get issue funnel
/v1/issues/funnel
GET
Getissuetrends — Get issue severity trends
/v1/issues/trends
GET
Getissue — Get an issue
/v1/issues/{issueid}
PUT
Updateissue — Update an issue
/v1/issues/{issueid}
GET
Listissueactivities — List activities of an issue
/v1/issues/{issueid}/activities
POST
Createissuecomment — Comment on an issue
/v1/issues/{issueid}/activities
POST
Notifyissueowners — Notify issue owners
/v1/issues/{issueid}/notify

MCP Tools

list-issues

List issues

read-only idempotent
bulk-update-issues

Bulk update issues

get-issue-funnel

Get issue funnel

read-only idempotent
get-issue-severity-trends

Get issue severity trends

read-only idempotent
get-issue

Get an issue

read-only idempotent
update-issue

Update an issue

idempotent
list-activities-issue

List activities of an issue

read-only idempotent
comment-issue

Comment on an issue

notify-issue-owners

Notify issue owners

Capability Spec

escape-issues.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Escape Public API — Issues
  description: 'Escape Public API — Issues. 9 operations. Lead operation: List issues. Self-contained Naftiko capability covering
    one Escape business surface.'
  tags:
  - Escape
  - Issues
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    ESCAPE_API_KEY: ESCAPE_API_KEY
capability:
  consumes:
  - type: http
    namespace: escape-issues
    baseUri: https://public.escape.tech/v3
    description: Escape Public API — Issues business capability. Self-contained, no shared references.
    resources:
    - name: issues
      path: /issues
      operations:
      - name: listissues
        method: GET
        description: List issues
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: cursor
          in: query
          type: string
          description: The cursor to start the pagination from. Returned by the previous page response. If not provided, the
            first page will be returned.
        - name: size
          in: query
          type: integer
          description: The number of items to return per page
        - name: sortType
          in: query
          type: string
          description: The type to sort by
        - name: sortDirection
          in: query
          type: string
          description: The direction to sort by
        - name: profileIds
          in: query
          type: string
          description: Filter by application IDs
        - name: assetIds
          in: query
          type: string
          description: Filter by asset IDs
        - name: domains
          in: query
          type: string
          description: Filter by domain
        - name: ids
          in: query
          type: string
          description: Filter by specific issue IDs
        - name: names
          in: query
          type: string
          description: Filter by issue names
        - name: scanIds
          in: query
          type: string
          description: Filter by scan IDs
        - name: tagIds
          in: query
          type: string
          description: Filter by tag IDs
        - name: search
          in: query
          type: string
          description: Search term to filter issues by name or description
        - name: jiraTicket
          in: query
          type: string
          description: Filter by issues with Jira tickets
        - name: risks
          in: query
          type: array
          description: Filter by risk types
        - name: assetClasses
          in: query
          type: array
          description: Filter by asset classes
        - name: scannerKinds
          in: query
          type: array
          description: Filter by scanner kinds
        - name: severities
          in: query
          type: array
          description: Filter by issue severities
        - name: status
          in: query
          type: array
          description: Filter by issue status
    - name: issues-bulk-update
      path: /issues/bulk-update
      operations:
      - name: bulkupdateissues
        method: POST
        description: Bulk update issues
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: issues-funnel
      path: /issues/funnel
      operations:
      - name: getissuefunnel
        method: GET
        description: Get issue funnel
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: projectIds
          in: query
          type: string
          description: Filter by project IDs
    - name: issues-trends
      path: /issues/trends
      operations:
      - name: getissuetrends
        method: GET
        description: Get issue severity trends
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: after
          in: query
          type: string
          description: Start date (ISO 8601)
          required: true
        - name: before
          in: query
          type: string
          description: End date (ISO 8601)
          required: true
        - name: interval
          in: query
          type: string
          description: Time bucket interval (e.g. "1 day", "1 week")
        - name: applicationIds
          in: query
          type: string
          description: Filter by application IDs
        - name: projectIds
          in: query
          type: string
          description: Filter by project IDs
    - name: issues-issueId
      path: /issues/{issueId}
      operations:
      - name: getissue
        method: GET
        description: Get an issue
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: issueId
          in: path
          type: string
          description: The issue ID
          required: true
      - name: updateissue
        method: PUT
        description: Update an issue
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: issueId
          in: path
          type: string
          description: The issue ID
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: issues-issueId-activities
      path: /issues/{issueId}/activities
      operations:
      - name: listissueactivities
        method: GET
        description: List activities of an issue
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: issueId
          in: path
          type: string
          description: The issue ID
          required: true
      - name: createissuecomment
        method: POST
        description: Comment on an issue
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: issueId
          in: path
          type: string
          description: The issue ID
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: issues-issueId-notify
      path: /issues/{issueId}/notify
      operations:
      - name: notifyissueowners
        method: POST
        description: Notify issue owners
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: issueId
          in: path
          type: string
          description: The issue ID
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    authentication:
      type: apikey
      key: X-ESCAPE-API-KEY
      value: '{{env.ESCAPE_API_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: escape-issues-rest
    port: 8080
    description: REST adapter for Escape Public API — Issues. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/issues
      name: issues
      description: REST surface for issues.
      operations:
      - method: GET
        name: listissues
        description: List issues
        call: escape-issues.listissues
        with:
          cursor: rest.cursor
          size: rest.size
          sortType: rest.sortType
          sortDirection: rest.sortDirection
          profileIds: rest.profileIds
          assetIds: rest.assetIds
          domains: rest.domains
          ids: rest.ids
          names: rest.names
          scanIds: rest.scanIds
          tagIds: rest.tagIds
          search: rest.search
          jiraTicket: rest.jiraTicket
          risks: rest.risks
          assetClasses: rest.assetClasses
          scannerKinds: rest.scannerKinds
          severities: rest.severities
          status: rest.status
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/issues/bulk-update
      name: issues-bulk-update
      description: REST surface for issues-bulk-update.
      operations:
      - method: POST
        name: bulkupdateissues
        description: Bulk update issues
        call: escape-issues.bulkupdateissues
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/issues/funnel
      name: issues-funnel
      description: REST surface for issues-funnel.
      operations:
      - method: GET
        name: getissuefunnel
        description: Get issue funnel
        call: escape-issues.getissuefunnel
        with:
          projectIds: rest.projectIds
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/issues/trends
      name: issues-trends
      description: REST surface for issues-trends.
      operations:
      - method: GET
        name: getissuetrends
        description: Get issue severity trends
        call: escape-issues.getissuetrends
        with:
          after: rest.after
          before: rest.before
          interval: rest.interval
          applicationIds: rest.applicationIds
          projectIds: rest.projectIds
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/issues/{issueid}
      name: issues-issueid
      description: REST surface for issues-issueId.
      operations:
      - method: GET
        name: getissue
        description: Get an issue
        call: escape-issues.getissue
        with:
          issueId: rest.issueId
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updateissue
        description: Update an issue
        call: escape-issues.updateissue
        with:
          issueId: rest.issueId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/issues/{issueid}/activities
      name: issues-issueid-activities
      description: REST surface for issues-issueId-activities.
      operations:
      - method: GET
        name: listissueactivities
        description: List activities of an issue
        call: escape-issues.listissueactivities
        with:
          issueId: rest.issueId
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createissuecomment
        description: Comment on an issue
        call: escape-issues.createissuecomment
        with:
          issueId: rest.issueId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/issues/{issueid}/notify
      name: issues-issueid-notify
      description: REST surface for issues-issueId-notify.
      operations:
      - method: POST
        name: notifyissueowners
        description: Notify issue owners
        call: escape-issues.notifyissueowners
        with:
          issueId: rest.issueId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: escape-issues-mcp
    port: 9090
    transport: http
    description: MCP adapter for Escape Public API — Issues. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: list-issues
      description: List issues
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: escape-issues.listissues
      with:
        cursor: tools.cursor
        size: tools.size
        sortType: tools.sortType
        sortDirection: tools.sortDirection
        profileIds: tools.profileIds
        assetIds: tools.assetIds
        domains: tools.domains
        ids: tools.ids
        names: tools.names
        scanIds: tools.scanIds
        tagIds: tools.tagIds
        search: tools.search
        jiraTicket: tools.jiraTicket
        risks: tools.risks
        assetClasses: tools.assetClasses
        scannerKinds: tools.scannerKinds
        severities: tools.severities
        status: tools.status
      outputParameters:
      - type: object
        mapping: $.
    - name: bulk-update-issues
      description: Bulk update issues
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: escape-issues.bulkupdateissues
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-issue-funnel
      description: Get issue funnel
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: escape-issues.getissuefunnel
      with:
        projectIds: tools.projectIds
      outputParameters:
      - type: object
        mapping: $.
    - name: get-issue-severity-trends
      description: Get issue severity trends
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: escape-issues.getissuetrends
      with:
        after: tools.after
        before: tools.before
        interval: tools.interval
        applicationIds: tools.applicationIds
        projectIds: tools.projectIds
      outputParameters:
      - type: object
        mapping: $.
    - name: get-issue
      description: Get an issue
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: escape-issues.getissue
      with:
        issueId: tools.issueId
      outputParameters:
      - type: object
        mapping: $.
    - name: update-issue
      description: Update an issue
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: escape-issues.updateissue
      with:
        issueId: tools.issueId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: list-activities-issue
      description: List activities of an issue
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: escape-issues.listissueactivities
      with:
        issueId: tools.issueId
      outputParameters:
      - type: object
        mapping: $.
    - name: comment-issue
      description: Comment on an issue
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: escape-issues.createissuecomment
      with:
        issueId: tools.issueId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: notify-issue-owners
      description: Notify issue owners
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: escape-issues.notifyissueowners
      with:
        issueId: tools.issueId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.