Discord · Capability

Discord HTTP API (Preview) — Channels

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

Run with Naftiko DiscordChannels

What You Can Do

GET
Getchannel — getchannel
/v1/channels/{channel-id}
DELETE
Deletechannel — deletechannel
/v1/channels/{channel-id}
PATCH
Updatechannel — updatechannel
/v1/channels/{channel-id}
POST
Followchannel — followchannel
/v1/channels/{channel-id}/followers
GET
Listchannelinvites — listchannelinvites
/v1/channels/{channel-id}/invites
POST
Createchannelinvite — createchannelinvite
/v1/channels/{channel-id}/invites
GET
Listmessages — listmessages
/v1/channels/{channel-id}/messages
POST
Createmessage — createmessage
/v1/channels/{channel-id}/messages
POST
Bulkdeletemessages — bulkdeletemessages
/v1/channels/{channel-id}/messages/bulk-delete
GET
Getmessage — getmessage
/v1/channels/{channel-id}/messages/{message-id}
DELETE
Deletemessage — deletemessage
/v1/channels/{channel-id}/messages/{message-id}
PATCH
Updatemessage — updatemessage
/v1/channels/{channel-id}/messages/{message-id}
POST
Crosspostmessage — crosspostmessage
/v1/channels/{channel-id}/messages/{message-id}/crosspost
DELETE
Deleteallmessagereactions — deleteallmessagereactions
/v1/channels/{channel-id}/messages/{message-id}/reactions
GET
Listmessagereactionsbyemoji — listmessagereactionsbyemoji
/v1/channels/{channel-id}/messages/{message-id}/reactions/{emoji-name}
DELETE
Deleteallmessagereactionsbyemoji — deleteallmessagereactionsbyemoji
/v1/channels/{channel-id}/messages/{message-id}/reactions/{emoji-name}
PUT
Addmymessagereaction — addmymessagereaction
/v1/channels/{channel-id}/messages/{message-id}/reactions/{emoji-name}/me
DELETE
Deletemymessagereaction — deletemymessagereaction
/v1/channels/{channel-id}/messages/{message-id}/reactions/{emoji-name}/me
DELETE
Deleteusermessagereaction — deleteusermessagereaction
/v1/channels/{channel-id}/messages/{message-id}/reactions/{emoji-name}/{user-id}
POST
Createthreadfrommessage — createthreadfrommessage
/v1/channels/{channel-id}/messages/{message-id}/threads
PUT
Setchannelpermissionoverwrite — setchannelpermissionoverwrite
/v1/channels/{channel-id}/permissions/{overwrite-id}
DELETE
Deletechannelpermissionoverwrite — deletechannelpermissionoverwrite
/v1/channels/{channel-id}/permissions/{overwrite-id}
GET
Listpinnedmessages — listpinnedmessages
/v1/channels/{channel-id}/pins
PUT
Pinmessage — pinmessage
/v1/channels/{channel-id}/pins/{message-id}
DELETE
Unpinmessage — unpinmessage
/v1/channels/{channel-id}/pins/{message-id}
PUT
Addgroupdmuser — addgroupdmuser
/v1/channels/{channel-id}/recipients/{user-id}
DELETE
Deletegroupdmuser — deletegroupdmuser
/v1/channels/{channel-id}/recipients/{user-id}
GET
Listthreadmembers — listthreadmembers
/v1/channels/{channel-id}/thread-members
PUT
Jointhread — jointhread
/v1/channels/{channel-id}/thread-members/me
DELETE
Leavethread — leavethread
/v1/channels/{channel-id}/thread-members/me
GET
Getthreadmember — getthreadmember
/v1/channels/{channel-id}/thread-members/{user-id}
PUT
Addthreadmember — addthreadmember
/v1/channels/{channel-id}/thread-members/{user-id}
DELETE
Deletethreadmember — deletethreadmember
/v1/channels/{channel-id}/thread-members/{user-id}
POST
Createthread — createthread
/v1/channels/{channel-id}/threads
GET
Listprivatearchivedthreads — listprivatearchivedthreads
/v1/channels/{channel-id}/threads/archived/private
GET
Listpublicarchivedthreads — listpublicarchivedthreads
/v1/channels/{channel-id}/threads/archived/public
POST
Triggertypingindicator — triggertypingindicator
/v1/channels/{channel-id}/typing
GET
Listmyprivatearchivedthreads — listmyprivatearchivedthreads
/v1/channels/{channel-id}/users/me/threads/archived/private
GET
Listchannelwebhooks — listchannelwebhooks
/v1/channels/{channel-id}/webhooks
POST
Createwebhook — createwebhook
/v1/channels/{channel-id}/webhooks

MCP Tools

getchannel

getchannel

read-only idempotent
deletechannel

deletechannel

idempotent
updatechannel

updatechannel

idempotent
followchannel

followchannel

listchannelinvites

listchannelinvites

read-only idempotent
createchannelinvite

createchannelinvite

listmessages

listmessages

read-only idempotent
createmessage

createmessage

bulkdeletemessages

bulkdeletemessages

getmessage

getmessage

read-only idempotent
deletemessage

deletemessage

idempotent
updatemessage

updatemessage

idempotent
crosspostmessage

crosspostmessage

deleteallmessagereactions

deleteallmessagereactions

idempotent
listmessagereactionsbyemoji

listmessagereactionsbyemoji

read-only idempotent
deleteallmessagereactionsbyemoji

deleteallmessagereactionsbyemoji

idempotent
addmymessagereaction

addmymessagereaction

idempotent
deletemymessagereaction

deletemymessagereaction

idempotent
deleteusermessagereaction

deleteusermessagereaction

idempotent
createthreadfrommessage

createthreadfrommessage

setchannelpermissionoverwrite

setchannelpermissionoverwrite

idempotent
deletechannelpermissionoverwrite

deletechannelpermissionoverwrite

idempotent
listpinnedmessages

listpinnedmessages

read-only idempotent
pinmessage

pinmessage

idempotent
unpinmessage

unpinmessage

idempotent
addgroupdmuser

addgroupdmuser

idempotent
deletegroupdmuser

deletegroupdmuser

idempotent
listthreadmembers

listthreadmembers

read-only idempotent
jointhread

jointhread

idempotent
leavethread

leavethread

idempotent
getthreadmember

getthreadmember

read-only idempotent
addthreadmember

addthreadmember

idempotent
deletethreadmember

deletethreadmember

idempotent
createthread

createthread

listprivatearchivedthreads

listprivatearchivedthreads

read-only idempotent
listpublicarchivedthreads

listpublicarchivedthreads

read-only idempotent
triggertypingindicator

triggertypingindicator

listmyprivatearchivedthreads

listmyprivatearchivedthreads

read-only idempotent
listchannelwebhooks

listchannelwebhooks

read-only idempotent
createwebhook

createwebhook

Capability Spec

discord-channels.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Discord HTTP API (Preview) — Channels
  description: 'Discord HTTP API (Preview) — Channels. 40 operations. Lead operation: Channels. Self-contained Naftiko capability
    covering one Discord business surface.'
  tags:
  - Discord
  - Channels
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    DISCORD_API_KEY: DISCORD_API_KEY
capability:
  consumes:
  - type: http
    namespace: discord-channels
    baseUri: https://discord.com/api/v10
    description: Discord HTTP API (Preview) — Channels business capability. Self-contained, no shared references.
    resources:
    - name: channels-channel_id
      path: /channels/{channel_id}
      operations:
      - name: getchannel
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletechannel
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatechannel
        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: channels-channel_id-followers
      path: /channels/{channel_id}/followers
      operations:
      - name: followchannel
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: channels-channel_id-invites
      path: /channels/{channel_id}/invites
      operations:
      - name: listchannelinvites
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createchannelinvite
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: channels-channel_id-messages
      path: /channels/{channel_id}/messages
      operations:
      - name: listmessages
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: around
          in: query
          type: string
        - name: before
          in: query
          type: string
        - name: after
          in: query
          type: string
        - name: limit
          in: query
          type: integer
      - name: createmessage
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: channels-channel_id-messages-bulk-delete
      path: /channels/{channel_id}/messages/bulk-delete
      operations:
      - name: bulkdeletemessages
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: channels-channel_id-messages-message_id
      path: /channels/{channel_id}/messages/{message_id}
      operations:
      - name: getmessage
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletemessage
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: updatemessage
        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: channels-channel_id-messages-message_id-crosspost
      path: /channels/{channel_id}/messages/{message_id}/crosspost
      operations:
      - name: crosspostmessage
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: channels-channel_id-messages-message_id-reactions
      path: /channels/{channel_id}/messages/{message_id}/reactions
      operations:
      - name: deleteallmessagereactions
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: channels-channel_id-messages-message_id-reactions-emoji_name
      path: /channels/{channel_id}/messages/{message_id}/reactions/{emoji_name}
      operations:
      - name: listmessagereactionsbyemoji
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: after
          in: query
          type: string
        - name: limit
          in: query
          type: integer
      - name: deleteallmessagereactionsbyemoji
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: channels-channel_id-messages-message_id-reactions-emoji_name-@me
      path: /channels/{channel_id}/messages/{message_id}/reactions/{emoji_name}/@me
      operations:
      - name: addmymessagereaction
        method: PUT
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletemymessagereaction
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: channels-channel_id-messages-message_id-reactions-emoji_name-user_id
      path: /channels/{channel_id}/messages/{message_id}/reactions/{emoji_name}/{user_id}
      operations:
      - name: deleteusermessagereaction
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: channels-channel_id-messages-message_id-threads
      path: /channels/{channel_id}/messages/{message_id}/threads
      operations:
      - name: createthreadfrommessage
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: channels-channel_id-permissions-overwrite_id
      path: /channels/{channel_id}/permissions/{overwrite_id}
      operations:
      - name: setchannelpermissionoverwrite
        method: PUT
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletechannelpermissionoverwrite
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: channels-channel_id-pins
      path: /channels/{channel_id}/pins
      operations:
      - name: listpinnedmessages
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: channels-channel_id-pins-message_id
      path: /channels/{channel_id}/pins/{message_id}
      operations:
      - name: pinmessage
        method: PUT
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: unpinmessage
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: channels-channel_id-recipients-user_id
      path: /channels/{channel_id}/recipients/{user_id}
      operations:
      - name: addgroupdmuser
        method: PUT
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
      - name: deletegroupdmuser
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: channels-channel_id-thread-members
      path: /channels/{channel_id}/thread-members
      operations:
      - name: listthreadmembers
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: with_member
          in: query
          type: boolean
        - name: limit
          in: query
          type: integer
        - name: after
          in: query
          type: string
    - name: channels-channel_id-thread-members-@me
      path: /channels/{channel_id}/thread-members/@me
      operations:
      - name: jointhread
        method: PUT
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: leavethread
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: channels-channel_id-thread-members-user_id
      path: /channels/{channel_id}/thread-members/{user_id}
      operations:
      - name: getthreadmember
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: with_member
          in: query
          type: boolean
      - name: addthreadmember
        method: PUT
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: deletethreadmember
        method: DELETE
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: channels-channel_id-threads
      path: /channels/{channel_id}/threads
      operations:
      - name: createthread
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: channels-channel_id-threads-archived-private
      path: /channels/{channel_id}/threads/archived/private
      operations:
      - name: listprivatearchivedthreads
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: before
          in: query
          type: string
        - name: limit
          in: query
          type: integer
    - name: channels-channel_id-threads-archived-public
      path: /channels/{channel_id}/threads/archived/public
      operations:
      - name: listpublicarchivedthreads
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: before
          in: query
          type: string
        - name: limit
          in: query
          type: integer
    - name: channels-channel_id-typing
      path: /channels/{channel_id}/typing
      operations:
      - name: triggertypingindicator
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: channels-channel_id-users-@me-threads-archived-private
      path: /channels/{channel_id}/users/@me/threads/archived/private
      operations:
      - name: listmyprivatearchivedthreads
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: before
          in: query
          type: string
        - name: limit
          in: query
          type: integer
    - name: channels-channel_id-webhooks
      path: /channels/{channel_id}/webhooks
      operations:
      - name: listchannelwebhooks
        method: GET
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: createwebhook
        method: POST
        description: ''
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - 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-channels-rest
    port: 8080
    description: REST adapter for Discord HTTP API (Preview) — Channels. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/channels/{channel-id}
      name: channels-channel-id
      description: REST surface for channels-channel_id.
      operations:
      - method: GET
        name: getchannel
        description: getchannel
        call: discord-channels.getchannel
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletechannel
        description: deletechannel
        call: discord-channels.deletechannel
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updatechannel
        description: updatechannel
        call: discord-channels.updatechannel
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/followers
      name: channels-channel-id-followers
      description: REST surface for channels-channel_id-followers.
      operations:
      - method: POST
        name: followchannel
        description: followchannel
        call: discord-channels.followchannel
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/invites
      name: channels-channel-id-invites
      description: REST surface for channels-channel_id-invites.
      operations:
      - method: GET
        name: listchannelinvites
        description: listchannelinvites
        call: discord-channels.listchannelinvites
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createchannelinvite
        description: createchannelinvite
        call: discord-channels.createchannelinvite
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/messages
      name: channels-channel-id-messages
      description: REST surface for channels-channel_id-messages.
      operations:
      - method: GET
        name: listmessages
        description: listmessages
        call: discord-channels.listmessages
        with:
          around: rest.around
          before: rest.before
          after: rest.after
          limit: rest.limit
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createmessage
        description: createmessage
        call: discord-channels.createmessage
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/messages/bulk-delete
      name: channels-channel-id-messages-bulk-delete
      description: REST surface for channels-channel_id-messages-bulk-delete.
      operations:
      - method: POST
        name: bulkdeletemessages
        description: bulkdeletemessages
        call: discord-channels.bulkdeletemessages
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/messages/{message-id}
      name: channels-channel-id-messages-message-id
      description: REST surface for channels-channel_id-messages-message_id.
      operations:
      - method: GET
        name: getmessage
        description: getmessage
        call: discord-channels.getmessage
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletemessage
        description: deletemessage
        call: discord-channels.deletemessage
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updatemessage
        description: updatemessage
        call: discord-channels.updatemessage
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/messages/{message-id}/crosspost
      name: channels-channel-id-messages-message-id-crosspost
      description: REST surface for channels-channel_id-messages-message_id-crosspost.
      operations:
      - method: POST
        name: crosspostmessage
        description: crosspostmessage
        call: discord-channels.crosspostmessage
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/messages/{message-id}/reactions
      name: channels-channel-id-messages-message-id-reactions
      description: REST surface for channels-channel_id-messages-message_id-reactions.
      operations:
      - method: DELETE
        name: deleteallmessagereactions
        description: deleteallmessagereactions
        call: discord-channels.deleteallmessagereactions
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/messages/{message-id}/reactions/{emoji-name}
      name: channels-channel-id-messages-message-id-reactions-emoji-name
      description: REST surface for channels-channel_id-messages-message_id-reactions-emoji_name.
      operations:
      - method: GET
        name: listmessagereactionsbyemoji
        description: listmessagereactionsbyemoji
        call: discord-channels.listmessagereactionsbyemoji
        with:
          after: rest.after
          limit: rest.limit
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleteallmessagereactionsbyemoji
        description: deleteallmessagereactionsbyemoji
        call: discord-channels.deleteallmessagereactionsbyemoji
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/messages/{message-id}/reactions/{emoji-name}/me
      name: channels-channel-id-messages-message-id-reactions-emoji-name-me
      description: REST surface for channels-channel_id-messages-message_id-reactions-emoji_name-@me.
      operations:
      - method: PUT
        name: addmymessagereaction
        description: addmymessagereaction
        call: discord-channels.addmymessagereaction
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletemymessagereaction
        description: deletemymessagereaction
        call: discord-channels.deletemymessagereaction
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/messages/{message-id}/reactions/{emoji-name}/{user-id}
      name: channels-channel-id-messages-message-id-reactions-emoji-name-user-id
      description: REST surface for channels-channel_id-messages-message_id-reactions-emoji_name-user_id.
      operations:
      - method: DELETE
        name: deleteusermessagereaction
        description: deleteusermessagereaction
        call: discord-channels.deleteusermessagereaction
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/messages/{message-id}/threads
      name: channels-channel-id-messages-message-id-threads
      description: REST surface for channels-channel_id-messages-message_id-threads.
      operations:
      - method: POST
        name: createthreadfrommessage
        description: createthreadfrommessage
        call: discord-channels.createthreadfrommessage
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/permissions/{overwrite-id}
      name: channels-channel-id-permissions-overwrite-id
      description: REST surface for channels-channel_id-permissions-overwrite_id.
      operations:
      - method: PUT
        name: setchannelpermissionoverwrite
        description: setchannelpermissionoverwrite
        call: discord-channels.setchannelpermissionoverwrite
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletechannelpermissionoverwrite
        description: deletechannelpermissionoverwrite
        call: discord-channels.deletechannelpermissionoverwrite
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/pins
      name: channels-channel-id-pins
      description: REST surface for channels-channel_id-pins.
      operations:
      - method: GET
        name: listpinnedmessages
        description: listpinnedmessages
        call: discord-channels.listpinnedmessages
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/pins/{message-id}
      name: channels-channel-id-pins-message-id
      description: REST surface for channels-channel_id-pins-message_id.
      operations:
      - method: PUT
        name: pinmessage
        description: pinmessage
        call: discord-channels.pinmessage
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: unpinmessage
        description: unpinmessage
        call: discord-channels.unpinmessage
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/recipients/{user-id}
      name: channels-channel-id-recipients-user-id
      description: REST surface for channels-channel_id-recipients-user_id.
      operations:
      - method: PUT
        name: addgroupdmuser
        description: addgroupdmuser
        call: discord-channels.addgroupdmuser
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletegroupdmuser
        description: deletegroupdmuser
        call: discord-channels.deletegroupdmuser
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/thread-members
      name: channels-channel-id-thread-members
      description: REST surface for channels-channel_id-thread-members.
      operations:
      - method: GET
        name: listthreadmembers
        description: listthreadmembers
        call: discord-channels.listthreadmembers
        with:
          with_member: rest.with_member
          limit: rest.limit
          after: rest.after
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/thread-members/me
      name: channels-channel-id-thread-members-me
      description: REST surface for channels-channel_id-thread-members-@me.
      operations:
      - method: PUT
        name: jointhread
        description: jointhread
        call: discord-channels.jointhread
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: leavethread
        description: leavethread
        call: discord-channels.leavethread
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/thread-members/{user-id}
      name: channels-channel-id-thread-members-user-id
      description: REST surface for channels-channel_id-thread-members-user_id.
      operations:
      - method: GET
        name: getthreadmember
        description: getthreadmember
        call: discord-channels.getthreadmember
        with:
          with_member: rest.with_member
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: addthreadmember
        description: addthreadmember
        call: discord-channels.addthreadmember
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deletethreadmember
        description: deletethreadmember
        call: discord-channels.deletethreadmember
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/threads
      name: channels-channel-id-threads
      description: REST surface for channels-channel_id-threads.
      operations:
      - method: POST
        name: createthread
        description: createthread
        call: discord-channels.createthread
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/threads/archived/private
      name: channels-channel-id-threads-archived-private
      description: REST surface for channels-channel_id-threads-archived-private.
      operations:
      - method: GET
        name: listprivatearchivedthreads
        description: listprivatearchivedthreads
        call: discord-channels.listprivatearchivedthreads
        with:
          before: rest.before
          limit: rest.limit
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/threads/archived/public
      name: channels-channel-id-threads-archived-public
      description: REST surface for channels-channel_id-threads-archived-public.
      operations:
      - method: GET
        name: listpublicarchivedthreads
        description: listpublicarchivedthreads
        call: discord-channels.listpublicarchivedthreads
        with:
          before: rest.before
          limit: rest.limit
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/typing
      name: channels-channel-id-typing
      description: REST surface for channels-channel_id-typing.
      operations:
      - method: POST
        name: triggertypingindicator
        description: triggertypingindicator
        call: discord-channels.triggertypingindicator
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/users/me/threads/archived/private
      name: channels-channel-id-users-me-threads-archived-private
      description: REST surface for channels-channel_id-users-@me-threads-archived-private.
      operations:
      - method: GET
        name: listmyprivatearchivedthreads
        description: listmyprivatearchivedthreads
        call: discord-channels.listmyprivatearchivedthreads
        with:
          before: rest.before
          limit: rest.limit
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/channels/{channel-id}/webhooks
      name: channels-channel-id-webhooks
      description: REST surface for channels-channel_id-webhooks.
      operations:
      - method: GET
        name: listchannelwebhooks
        description: listchannelwebhooks
        call: discord-channels.listchannelwebhooks
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createwebhook
        description: createwebhook
        call: discord-channels.createwebhook
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: discord-channels-mcp
    port: 9090
    transport: http
    description: MCP adapter for Discord HTTP API (Preview) — Channels. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: getchannel
      description: getchannel
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: discord-channels.getchannel
      outputParameters:
      - type: object
        mapping: $.
    - name: deletechannel
      description: deletechannel
      hints:
        readOnly: false
        destructive: true
        idempotent: true
      call: discord-channels.deletechannel
      outputParameters:
      - type: object
        mapping: $.
    - name: updatechannel
      description: updatechannel
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: discord-channels.updatechannel
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: followchannel
      description: followchannel
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: discord-channels.followchannel
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: listchannelinvites
      description: listchannelinvites
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: discord-channels.listchannelinvites
      outputParameters:
      - type: object
        mapping: $.
    - name: createchannelinvite
      description: createchannelinvite
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: discord-channels.createchannelinvite
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: listmessages
      description: listmessages
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: discord-channels.listmessages
      with:
        around: tools.around
        before: tools.before
        after: tools.after
        limit: tools.limit
      outputParameters:
      - type: object
        mapping: $.
    - name: createmessage
      description: createmessage
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: discord-channels.createmessage
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: bulkdeletemessages
      description: bulkdeletemessages
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: discord-channe

# --- truncated at 32 KB (41 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/discord/refs/heads/main/capabilities/discord-channels.yaml