SigNoz · Capability

SigNoz — rules

SigNoz — rules. 13 operations. Lead operation: List alert rules. Self-contained Naftiko capability covering one Signoz business surface.

Run with Naftiko Signozrules

What You Can Do

GET
Listrules — List alert rules
/v1/api/v2/rules
POST
Createrule — Create alert rule
/v1/api/v2/rules
POST
Testrule — Test alert rule
/v1/api/v2/rules/test
DELETE
Deleterulebyid — Delete alert rule
/v1/api/v2/rules/{id}
GET
Getrulebyid — Get alert rule by ID
/v1/api/v2/rules/{id}
PATCH
Patchrulebyid — Patch alert rule
/v1/api/v2/rules/{id}
PUT
Updaterulebyid — Update alert rule
/v1/api/v2/rules/{id}
GET
Getrulehistoryfilterkeys — Get rule history filter keys
/v1/api/v2/rules/{id}/history/filter-keys
GET
Getrulehistoryfiltervalues — Get rule history filter values
/v1/api/v2/rules/{id}/history/filter-values
GET
Getrulehistoryoverallstatus — Get rule overall status timeline
/v1/api/v2/rules/{id}/history/overall-status
GET
Getrulehistorystats — Get rule history stats
/v1/api/v2/rules/{id}/history/stats
GET
Getrulehistorytimeline — Get rule history timeline
/v1/api/v2/rules/{id}/history/timeline
GET
Getrulehistorytopcontributors — Get top contributors to rule firing
/v1/api/v2/rules/{id}/history/top-contributors

MCP Tools

list-alert-rules

List alert rules

read-only idempotent
create-alert-rule

Create alert rule

test-alert-rule

Test alert rule

read-only
delete-alert-rule

Delete alert rule

idempotent
get-alert-rule-id

Get alert rule by ID

read-only idempotent
patch-alert-rule

Patch alert rule

idempotent
update-alert-rule

Update alert rule

idempotent
get-rule-history-filter-keys

Get rule history filter keys

read-only idempotent
get-rule-history-filter-values

Get rule history filter values

read-only idempotent
get-rule-overall-status-timeline

Get rule overall status timeline

read-only idempotent
get-rule-history-stats

Get rule history stats

read-only idempotent
get-rule-history-timeline

Get rule history timeline

read-only idempotent
get-top-contributors-rule-firing

Get top contributors to rule firing

read-only idempotent

Capability Spec

signoz-rules.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: SigNoz — rules
  description: 'SigNoz — rules. 13 operations. Lead operation: List alert rules. Self-contained Naftiko capability covering
    one Signoz business surface.'
  tags:
  - Signoz
  - rules
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    SIGNOZ_API_KEY: SIGNOZ_API_KEY
capability:
  consumes:
  - type: http
    namespace: signoz-rules
    baseUri: https://{host}:{port}{base_path}
    description: SigNoz — rules business capability. Self-contained, no shared references.
    resources:
    - name: api-v2-rules
      path: /api/v2/rules
      operations:
      - name: listrules
        method: GET
        description: List alert rules
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createrule
        method: POST
        description: Create alert rule
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: api-v2-rules-test
      path: /api/v2/rules/test
      operations:
      - name: testrule
        method: POST
        description: Test alert rule
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: api-v2-rules-id
      path: /api/v2/rules/{id}
      operations:
      - name: deleterulebyid
        method: DELETE
        description: Delete alert rule
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
      - name: getrulebyid
        method: GET
        description: Get alert rule by ID
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
      - name: patchrulebyid
        method: PATCH
        description: Patch alert rule
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: updaterulebyid
        method: PUT
        description: Update alert rule
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: api-v2-rules-id-history-filter_keys
      path: /api/v2/rules/{id}/history/filter_keys
      operations:
      - name: getrulehistoryfilterkeys
        method: GET
        description: Get rule history filter keys
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: signal
          in: query
          type: string
        - name: source
          in: query
          type: string
        - name: limit
          in: query
          type: integer
        - name: startUnixMilli
          in: query
          type: integer
        - name: endUnixMilli
          in: query
          type: integer
        - name: fieldContext
          in: query
          type: string
        - name: fieldDataType
          in: query
          type: string
        - name: metricName
          in: query
          type: string
        - name: metricNamespace
          in: query
          type: string
        - name: searchText
          in: query
          type: string
        - name: id
          in: path
          type: string
          required: true
    - name: api-v2-rules-id-history-filter_values
      path: /api/v2/rules/{id}/history/filter_values
      operations:
      - name: getrulehistoryfiltervalues
        method: GET
        description: Get rule history filter values
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: signal
          in: query
          type: string
        - name: source
          in: query
          type: string
        - name: limit
          in: query
          type: integer
        - name: startUnixMilli
          in: query
          type: integer
        - name: endUnixMilli
          in: query
          type: integer
        - name: fieldContext
          in: query
          type: string
        - name: fieldDataType
          in: query
          type: string
        - name: metricName
          in: query
          type: string
        - name: metricNamespace
          in: query
          type: string
        - name: searchText
          in: query
          type: string
        - name: name
          in: query
          type: string
        - name: existingQuery
          in: query
          type: string
        - name: id
          in: path
          type: string
          required: true
    - name: api-v2-rules-id-history-overall_status
      path: /api/v2/rules/{id}/history/overall_status
      operations:
      - name: getrulehistoryoverallstatus
        method: GET
        description: Get rule overall status timeline
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: start
          in: query
          type: integer
          required: true
        - name: end
          in: query
          type: integer
          required: true
        - name: id
          in: path
          type: string
          required: true
    - name: api-v2-rules-id-history-stats
      path: /api/v2/rules/{id}/history/stats
      operations:
      - name: getrulehistorystats
        method: GET
        description: Get rule history stats
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: start
          in: query
          type: integer
          required: true
        - name: end
          in: query
          type: integer
          required: true
        - name: id
          in: path
          type: string
          required: true
    - name: api-v2-rules-id-history-timeline
      path: /api/v2/rules/{id}/history/timeline
      operations:
      - name: getrulehistorytimeline
        method: GET
        description: Get rule history timeline
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: start
          in: query
          type: integer
          required: true
        - name: end
          in: query
          type: integer
          required: true
        - name: state
          in: query
          type: string
        - name: filterExpression
          in: query
          type: string
        - name: limit
          in: query
          type: integer
        - name: order
          in: query
          type: string
        - name: cursor
          in: query
          type: string
        - name: id
          in: path
          type: string
          required: true
    - name: api-v2-rules-id-history-top_contributors
      path: /api/v2/rules/{id}/history/top_contributors
      operations:
      - name: getrulehistorytopcontributors
        method: GET
        description: Get top contributors to rule firing
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: start
          in: query
          type: integer
          required: true
        - name: end
          in: query
          type: integer
          required: true
        - name: id
          in: path
          type: string
          required: true
    authentication:
      type: bearer
      token: '{{env.SIGNOZ_API_KEY}}'
  exposes:
  - type: rest
    namespace: signoz-rules-rest
    port: 8080
    description: REST adapter for SigNoz — rules. One Spectral-compliant resource per consumed operation, prefixed with /v1.
    resources:
    - path: /v1/api/v2/rules
      name: api-v2-rules
      description: REST surface for api-v2-rules.
      operations:
      - method: GET
        name: listrules
        description: List alert rules
        call: signoz-rules.listrules
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createrule
        description: Create alert rule
        call: signoz-rules.createrule
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/rules/test
      name: api-v2-rules-test
      description: REST surface for api-v2-rules-test.
      operations:
      - method: POST
        name: testrule
        description: Test alert rule
        call: signoz-rules.testrule
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/rules/{id}
      name: api-v2-rules-id
      description: REST surface for api-v2-rules-id.
      operations:
      - method: DELETE
        name: deleterulebyid
        description: Delete alert rule
        call: signoz-rules.deleterulebyid
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
      - method: GET
        name: getrulebyid
        description: Get alert rule by ID
        call: signoz-rules.getrulebyid
        with:
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: patchrulebyid
        description: Patch alert rule
        call: signoz-rules.patchrulebyid
        with:
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: updaterulebyid
        description: Update alert rule
        call: signoz-rules.updaterulebyid
        with:
          id: rest.id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/rules/{id}/history/filter-keys
      name: api-v2-rules-id-history-filter-keys
      description: REST surface for api-v2-rules-id-history-filter_keys.
      operations:
      - method: GET
        name: getrulehistoryfilterkeys
        description: Get rule history filter keys
        call: signoz-rules.getrulehistoryfilterkeys
        with:
          signal: rest.signal
          source: rest.source
          limit: rest.limit
          startUnixMilli: rest.startUnixMilli
          endUnixMilli: rest.endUnixMilli
          fieldContext: rest.fieldContext
          fieldDataType: rest.fieldDataType
          metricName: rest.metricName
          metricNamespace: rest.metricNamespace
          searchText: rest.searchText
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/rules/{id}/history/filter-values
      name: api-v2-rules-id-history-filter-values
      description: REST surface for api-v2-rules-id-history-filter_values.
      operations:
      - method: GET
        name: getrulehistoryfiltervalues
        description: Get rule history filter values
        call: signoz-rules.getrulehistoryfiltervalues
        with:
          signal: rest.signal
          source: rest.source
          limit: rest.limit
          startUnixMilli: rest.startUnixMilli
          endUnixMilli: rest.endUnixMilli
          fieldContext: rest.fieldContext
          fieldDataType: rest.fieldDataType
          metricName: rest.metricName
          metricNamespace: rest.metricNamespace
          searchText: rest.searchText
          name: rest.name
          existingQuery: rest.existingQuery
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/rules/{id}/history/overall-status
      name: api-v2-rules-id-history-overall-status
      description: REST surface for api-v2-rules-id-history-overall_status.
      operations:
      - method: GET
        name: getrulehistoryoverallstatus
        description: Get rule overall status timeline
        call: signoz-rules.getrulehistoryoverallstatus
        with:
          start: rest.start
          end: rest.end
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/rules/{id}/history/stats
      name: api-v2-rules-id-history-stats
      description: REST surface for api-v2-rules-id-history-stats.
      operations:
      - method: GET
        name: getrulehistorystats
        description: Get rule history stats
        call: signoz-rules.getrulehistorystats
        with:
          start: rest.start
          end: rest.end
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/rules/{id}/history/timeline
      name: api-v2-rules-id-history-timeline
      description: REST surface for api-v2-rules-id-history-timeline.
      operations:
      - method: GET
        name: getrulehistorytimeline
        description: Get rule history timeline
        call: signoz-rules.getrulehistorytimeline
        with:
          start: rest.start
          end: rest.end
          state: rest.state
          filterExpression: rest.filterExpression
          limit: rest.limit
          order: rest.order
          cursor: rest.cursor
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v2/rules/{id}/history/top-contributors
      name: api-v2-rules-id-history-top-contributors
      description: REST surface for api-v2-rules-id-history-top_contributors.
      operations:
      - method: GET
        name: getrulehistorytopcontributors
        description: Get top contributors to rule firing
        call: signoz-rules.getrulehistorytopcontributors
        with:
          start: rest.start
          end: rest.end
          id: rest.id
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: signoz-rules-mcp
    port: 9090
    transport: http
    description: MCP adapter for SigNoz — rules. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: list-alert-rules
      description: List alert rules
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: signoz-rules.listrules
      outputParameters:
      - type: object
        mapping: $.
    - name: create-alert-rule
      description: Create alert rule
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: signoz-rules.createrule
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: test-alert-rule
      description: Test alert rule
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: signoz-rules.testrule
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: delete-alert-rule
      description: Delete alert rule
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: signoz-rules.deleterulebyid
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: get-alert-rule-id
      description: Get alert rule by ID
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: signoz-rules.getrulebyid
      with:
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: patch-alert-rule
      description: Patch alert rule
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: signoz-rules.patchrulebyid
      with:
        id: tools.id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: update-alert-rule
      description: Update alert rule
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: signoz-rules.updaterulebyid
      with:
        id: tools.id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: get-rule-history-filter-keys
      description: Get rule history filter keys
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: signoz-rules.getrulehistoryfilterkeys
      with:
        signal: tools.signal
        source: tools.source
        limit: tools.limit
        startUnixMilli: tools.startUnixMilli
        endUnixMilli: tools.endUnixMilli
        fieldContext: tools.fieldContext
        fieldDataType: tools.fieldDataType
        metricName: tools.metricName
        metricNamespace: tools.metricNamespace
        searchText: tools.searchText
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: get-rule-history-filter-values
      description: Get rule history filter values
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: signoz-rules.getrulehistoryfiltervalues
      with:
        signal: tools.signal
        source: tools.source
        limit: tools.limit
        startUnixMilli: tools.startUnixMilli
        endUnixMilli: tools.endUnixMilli
        fieldContext: tools.fieldContext
        fieldDataType: tools.fieldDataType
        metricName: tools.metricName
        metricNamespace: tools.metricNamespace
        searchText: tools.searchText
        name: tools.name
        existingQuery: tools.existingQuery
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: get-rule-overall-status-timeline
      description: Get rule overall status timeline
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: signoz-rules.getrulehistoryoverallstatus
      with:
        start: tools.start
        end: tools.end
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: get-rule-history-stats
      description: Get rule history stats
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: signoz-rules.getrulehistorystats
      with:
        start: tools.start
        end: tools.end
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: get-rule-history-timeline
      description: Get rule history timeline
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: signoz-rules.getrulehistorytimeline
      with:
        start: tools.start
        end: tools.end
        state: tools.state
        filterExpression: tools.filterExpression
        limit: tools.limit
        order: tools.order
        cursor: tools.cursor
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.
    - name: get-top-contributors-rule-firing
      description: Get top contributors to rule firing
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: signoz-rules.getrulehistorytopcontributors
      with:
        start: tools.start
        end: tools.end
        id: tools.id
      outputParameters:
      - type: object
        mapping: $.