Discord · Capability

Discord HTTP API (Preview) — Webhooks

Discord HTTP API (Preview) — Webhooks. 15 operations. Lead operation: Webhooks. Self-contained Naftiko capability covering one Discord business surface.

Run with Naftiko DiscordWebhooks

What You Can Do

GET
Getwebhook — getwebhook
/v1/webhooks/{webhook-id}
DELETE
Deletewebhook — deletewebhook
/v1/webhooks/{webhook-id}
PATCH
Updatewebhook — updatewebhook
/v1/webhooks/{webhook-id}
GET
Getwebhookbytoken — getwebhookbytoken
/v1/webhooks/{webhook-id}/{webhook-token}
POST
Executewebhook — executewebhook
/v1/webhooks/{webhook-id}/{webhook-token}
DELETE
Deletewebhookbytoken — deletewebhookbytoken
/v1/webhooks/{webhook-id}/{webhook-token}
PATCH
Updatewebhookbytoken — updatewebhookbytoken
/v1/webhooks/{webhook-id}/{webhook-token}
POST
Executegithubcompatiblewebhook — executegithubcompatiblewebhook
/v1/webhooks/{webhook-id}/{webhook-token}/github
GET
Getoriginalwebhookmessage — getoriginalwebhookmessage
/v1/webhooks/{webhook-id}/{webhook-token}/messages/original
DELETE
Deleteoriginalwebhookmessage — deleteoriginalwebhookmessage
/v1/webhooks/{webhook-id}/{webhook-token}/messages/original
PATCH
Updateoriginalwebhookmessage — updateoriginalwebhookmessage
/v1/webhooks/{webhook-id}/{webhook-token}/messages/original
GET
Getwebhookmessage — getwebhookmessage
/v1/webhooks/{webhook-id}/{webhook-token}/messages/{message-id}
DELETE
Deletewebhookmessage — deletewebhookmessage
/v1/webhooks/{webhook-id}/{webhook-token}/messages/{message-id}
PATCH
Updatewebhookmessage — updatewebhookmessage
/v1/webhooks/{webhook-id}/{webhook-token}/messages/{message-id}
POST
Executeslackcompatiblewebhook — executeslackcompatiblewebhook
/v1/webhooks/{webhook-id}/{webhook-token}/slack

MCP Tools

getwebhook

getwebhook

read-only idempotent
deletewebhook

deletewebhook

idempotent
updatewebhook

updatewebhook

idempotent
getwebhookbytoken

getwebhookbytoken

read-only idempotent
executewebhook

executewebhook

deletewebhookbytoken

deletewebhookbytoken

idempotent
updatewebhookbytoken

updatewebhookbytoken

idempotent
executegithubcompatiblewebhook

executegithubcompatiblewebhook

getoriginalwebhookmessage

getoriginalwebhookmessage

read-only idempotent
deleteoriginalwebhookmessage

deleteoriginalwebhookmessage

idempotent
updateoriginalwebhookmessage

updateoriginalwebhookmessage

idempotent
getwebhookmessage

getwebhookmessage

read-only idempotent
deletewebhookmessage

deletewebhookmessage

idempotent
updatewebhookmessage

updatewebhookmessage

idempotent
executeslackcompatiblewebhook

executeslackcompatiblewebhook

Capability Spec

discord-webhooks.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Discord HTTP API (Preview) — Webhooks
  description: 'Discord HTTP API (Preview) — Webhooks. 15 operations. Lead operation: Webhooks. Self-contained Naftiko capability
    covering one Discord business surface.'
  tags:
  - Discord
  - Webhooks
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    DISCORD_API_KEY: DISCORD_API_KEY
capability:
  consumes:
  - type: http
    namespace: discord-webhooks
    baseUri: https://discord.com/api/v10
    description: Discord HTTP API (Preview) — Webhooks business capability. Self-contained, no shared references.
    resources:
    - name: webhooks-webhook_id
      path: /webhooks/{webhook_id}
      operations:
      - name: getwebhook
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletewebhook
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatewebhook
        method: PATCH
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: webhooks-webhook_id-webhook_token
      path: /webhooks/{webhook_id}/{webhook_token}
      operations:
      - name: getwebhookbytoken
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: executewebhook
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: wait
          in: query
          type: boolean
        - name: thread_id
          in: query
          type: string
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletewebhookbytoken
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatewebhookbytoken
        method: PATCH
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: webhooks-webhook_id-webhook_token-github
      path: /webhooks/{webhook_id}/{webhook_token}/github
      operations:
      - name: executegithubcompatiblewebhook
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: wait
          in: query
          type: boolean
        - name: thread_id
          in: query
          type: string
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: webhooks-webhook_id-webhook_token-messages-@original
      path: /webhooks/{webhook_id}/{webhook_token}/messages/@original
      operations:
      - name: getoriginalwebhookmessage
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: thread_id
          in: query
          type: string
      - name: deleteoriginalwebhookmessage
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: thread_id
          in: query
          type: string
      - name: updateoriginalwebhookmessage
        method: PATCH
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: thread_id
          in: query
          type: string
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: webhooks-webhook_id-webhook_token-messages-message_id
      path: /webhooks/{webhook_id}/{webhook_token}/messages/{message_id}
      operations:
      - name: getwebhookmessage
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: thread_id
          in: query
          type: string
      - name: deletewebhookmessage
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: thread_id
          in: query
          type: string
      - name: updatewebhookmessage
        method: PATCH
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: thread_id
          in: query
          type: string
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: webhooks-webhook_id-webhook_token-slack
      path: /webhooks/{webhook_id}/{webhook_token}/slack
      operations:
      - name: executeslackcompatiblewebhook
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: wait
          in: query
          type: boolean
        - name: thread_id
          in: query
          type: string
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.DISCORD_API_KEY}}'
  exposes:
  - type: rest
    namespace: discord-webhooks-rest
    port: 8080
    description: REST adapter for Discord HTTP API (Preview) — Webhooks. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/webhooks/{webhook-id}
      name: webhooks-webhook-id
      description: REST surface for webhooks-webhook_id.
      operations:
      - method: GET
        name: getwebhook
        description: getwebhook
        call: discord-webhooks.getwebhook
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletewebhook
        description: deletewebhook
        call: discord-webhooks.deletewebhook
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updatewebhook
        description: updatewebhook
        call: discord-webhooks.updatewebhook
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/webhooks/{webhook-id}/{webhook-token}
      name: webhooks-webhook-id-webhook-token
      description: REST surface for webhooks-webhook_id-webhook_token.
      operations:
      - method: GET
        name: getwebhookbytoken
        description: getwebhookbytoken
        call: discord-webhooks.getwebhookbytoken
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: executewebhook
        description: executewebhook
        call: discord-webhooks.executewebhook
        with:
          wait: rest.wait
          thread_id: rest.thread_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletewebhookbytoken
        description: deletewebhookbytoken
        call: discord-webhooks.deletewebhookbytoken
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updatewebhookbytoken
        description: updatewebhookbytoken
        call: discord-webhooks.updatewebhookbytoken
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/webhooks/{webhook-id}/{webhook-token}/github
      name: webhooks-webhook-id-webhook-token-github
      description: REST surface for webhooks-webhook_id-webhook_token-github.
      operations:
      - method: POST
        name: executegithubcompatiblewebhook
        description: executegithubcompatiblewebhook
        call: discord-webhooks.executegithubcompatiblewebhook
        with:
          wait: rest.wait
          thread_id: rest.thread_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/webhooks/{webhook-id}/{webhook-token}/messages/original
      name: webhooks-webhook-id-webhook-token-messages-original
      description: REST surface for webhooks-webhook_id-webhook_token-messages-@original.
      operations:
      - method: GET
        name: getoriginalwebhookmessage
        description: getoriginalwebhookmessage
        call: discord-webhooks.getoriginalwebhookmessage
        with:
          thread_id: rest.thread_id
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleteoriginalwebhookmessage
        description: deleteoriginalwebhookmessage
        call: discord-webhooks.deleteoriginalwebhookmessage
        with:
          thread_id: rest.thread_id
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updateoriginalwebhookmessage
        description: updateoriginalwebhookmessage
        call: discord-webhooks.updateoriginalwebhookmessage
        with:
          thread_id: rest.thread_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/webhooks/{webhook-id}/{webhook-token}/messages/{message-id}
      name: webhooks-webhook-id-webhook-token-messages-message-id
      description: REST surface for webhooks-webhook_id-webhook_token-messages-message_id.
      operations:
      - method: GET
        name: getwebhookmessage
        description: getwebhookmessage
        call: discord-webhooks.getwebhookmessage
        with:
          thread_id: rest.thread_id
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletewebhookmessage
        description: deletewebhookmessage
        call: discord-webhooks.deletewebhookmessage
        with:
          thread_id: rest.thread_id
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updatewebhookmessage
        description: updatewebhookmessage
        call: discord-webhooks.updatewebhookmessage
        with:
          thread_id: rest.thread_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/webhooks/{webhook-id}/{webhook-token}/slack
      name: webhooks-webhook-id-webhook-token-slack
      description: REST surface for webhooks-webhook_id-webhook_token-slack.
      operations:
      - method: POST
        name: executeslackcompatiblewebhook
        description: executeslackcompatiblewebhook
        call: discord-webhooks.executeslackcompatiblewebhook
        with:
          wait: rest.wait
          thread_id: rest.thread_id
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: discord-webhooks-mcp
    port: 9090
    transport: http
    description: MCP adapter for Discord HTTP API (Preview) — Webhooks. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: getwebhook
      description: getwebhook
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: discord-webhooks.getwebhook
      outputParameters:
      - type: object
        mapping: $.
    - name: deletewebhook
      description: deletewebhook
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: discord-webhooks.deletewebhook
      outputParameters:
      - type: object
        mapping: $.
    - name: updatewebhook
      description: updatewebhook
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: discord-webhooks.updatewebhook
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: getwebhookbytoken
      description: getwebhookbytoken
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: discord-webhooks.getwebhookbytoken
      outputParameters:
      - type: object
        mapping: $.
    - name: executewebhook
      description: executewebhook
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: discord-webhooks.executewebhook
      with:
        wait: tools.wait
        thread_id: tools.thread_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: deletewebhookbytoken
      description: deletewebhookbytoken
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: discord-webhooks.deletewebhookbytoken
      outputParameters:
      - type: object
        mapping: $.
    - name: updatewebhookbytoken
      description: updatewebhookbytoken
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: discord-webhooks.updatewebhookbytoken
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: executegithubcompatiblewebhook
      description: executegithubcompatiblewebhook
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: discord-webhooks.executegithubcompatiblewebhook
      with:
        wait: tools.wait
        thread_id: tools.thread_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: getoriginalwebhookmessage
      description: getoriginalwebhookmessage
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: discord-webhooks.getoriginalwebhookmessage
      with:
        thread_id: tools.thread_id
      outputParameters:
      - type: object
        mapping: $.
    - name: deleteoriginalwebhookmessage
      description: deleteoriginalwebhookmessage
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: discord-webhooks.deleteoriginalwebhookmessage
      with:
        thread_id: tools.thread_id
      outputParameters:
      - type: object
        mapping: $.
    - name: updateoriginalwebhookmessage
      description: updateoriginalwebhookmessage
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: discord-webhooks.updateoriginalwebhookmessage
      with:
        thread_id: tools.thread_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: getwebhookmessage
      description: getwebhookmessage
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: discord-webhooks.getwebhookmessage
      with:
        thread_id: tools.thread_id
      outputParameters:
      - type: object
        mapping: $.
    - name: deletewebhookmessage
      description: deletewebhookmessage
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: discord-webhooks.deletewebhookmessage
      with:
        thread_id: tools.thread_id
      outputParameters:
      - type: object
        mapping: $.
    - name: updatewebhookmessage
      description: updatewebhookmessage
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: discord-webhooks.updatewebhookmessage
      with:
        thread_id: tools.thread_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: executeslackcompatiblewebhook
      description: executeslackcompatiblewebhook
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: discord-webhooks.executeslackcompatiblewebhook
      with:
        wait: tools.wait
        thread_id: tools.thread_id
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.