Integrations

Discord

Manage Discord guilds, channels, messages, members, roles, and application commands - powered by ClawLink.

What it does

Work with Discord from chat — manage guilds, channels, messages, members, roles, and application commands.

The skill document

Discord

Discord

Work with Discord from chat — manage guilds, channels, messages, members, roles, and application commands.

Powered by ClawLink, an integration hub for OpenClaw that handles hosted connection flows and credentials so you don't need to configure Discord API access yourself.

Setup in 3 Steps

Step 1: InstallStep 2: Pair AccountStep 3: Connect Discord
InstallPairApp-specific connection GIF coming soon
Run the install command in OpenClawSign in and approve the deviceOpen the dashboard and connect Discord

Connection flow

User → ClawLink OAuth → Discord account
         ↓
    OpenClaw tools
    (via ClawLink)

Step 1 — Install the ClawLink plugin:

openclaw plugins install clawhub:clawlink-plugin

Start a fresh chat after installing.

Step 2 — Pair ClawLink:

  1. Call clawlink_begin_pairing
  2. Open the returned URL in your browser
  3. Sign in to ClawLink and approve the device

Step 3 — Connect Discord: Open claw-link.dev/dashboard?add=discord, complete the OAuth flow, then confirm.

App-specific connection GIF coming soon

Step 4 — Verify and discover:

// 1. Verify Discord is connected
clawlink_list_integrations()

// 2. List available tools
clawlink_list_tools({ integration: "discord" })

// 3. Search tools if needed
clawlink_search_tools({ query: "guild", integration: "discord" })

Architecture

┌─────────────────────────────────────────────────────────┐
│                    OpenClaw (you)                       │
├─────────────────────────────────────────────────────────┤
│  ClawLink Plugin  →  clawlink_* tools                   │
├─────────────────────────────────────────────────────────┤
│                    ClawLink Cloud                       │
│         (credentials, connection state, routing)        │
├─────────────────────────────────────────────────────────┤
│              Discord API (user's account)              │
└─────────────────────────────────────────────────────────┘

Tool reference

User & identity

ToolDescriptionRisk
discord_get_my_userGet current user's profile (email if email scope granted)safe
discord_get_userGet any Discord user by ID (use '@me' for authenticated user)safe
discord_get_openid_connect_userinfoGet OIDC-compliant user claims (sub, email, picture, locale)safe
discord_get_my_oauth2_authorizationGet OAuth2 authorization details, scopes, token expirationsafe
discord_list_my_connectionsList user's connected third-party accounts on Discordsafe
discord_list_my_guildsList current user's guilds (partial data for display)safe
discord_get_my_guild_memberGet guild member info for current user (roles, nickname, join date)safe

Guilds & widgets

ToolDescriptionRisk
discord_get_guild_templateGet Discord guild template details by template codesafe
discord_get_guild_widgetGet guild widget JSON (guild widget must be enabled)safe
discord_get_guild_widget_pngGet PNG image widget for a guildsafe
discord_leave_guildLeave a guild on behalf of the authenticated userhigh_impact

Application commands & permissions

ToolDescriptionRisk
discord_get_application_command_permissionsGet permissions for a specific command in a guildsafe
discord_get_batch_application_command_permissionsGet permissions for all commands in a guildsafe
discord_edit_application_command_permissionsEdit permissions for a specific command (requires MANAGE_GUILD)confirm

Entitlements & commerce

ToolDescriptionRisk
discord_get_current_user_application_entitlementsGet user's premium entitlements for an applicationsafe
discord_get_sku_subscriptionGet a specific subscription by ID for a SKUsafe
discord_list_sku_subscriptionsList all subscriptions for a SKUsafe
discord_consume_entitlementMark a consumable entitlement as consumedconfirm
discord_delete_test_entitlementDelete a test entitlement (cleanup)high_impact

Role connections

ToolDescriptionRisk
discord_get_user_application_role_connectionGet user's role connection metadata for an appsafe
discord_update_user_application_role_connectionUpdate user's role connection (requires role_connections.write scope)confirm
discord_delete_user_application_role_connectionDelete user's role connection metadatahigh_impact

Gateway & utilities

ToolDescriptionRisk
discord_get_gatewayGet valid WebSocket URL for Gateway connectionsafe
discord_get_public_keysGet OAuth2 public keys for token verificationsafe
discord_invite_resolveResolve and get details about an invite codesafe
discord_list_sticker_packsList all available Discord Nitro sticker packssafe

User modification

ToolDescriptionRisk
discord_modify_current_userModify current user's username (max 2 changes/hour) and avatarconfirm

Code examples

Example 1: Get user info and guilds

// Get current user's profile
const me = await clawlink_call_tool({
  tool: "discord_get_my_user",
  parameters: {}
});

// List the user's guilds
const guilds = await clawlink_call_tool({
  tool: "discord_list_my_guilds",
  parameters: {}
});

// Get guild member info for yourself
const member = await clawlink_call_tool({
  tool: "discord_get_my_guild_member",
  parameters: { guild_id: "123456789" }
});

Example 2: Check application entitlements

// Get user's entitlements for an application
const entitlements = await clawlink_call_tool({
  tool: "discord_get_current_user_application_entitlements",
  parameters: { application_id: "987654321" }
});

// List subscriptions for a SKU
const subs = await clawlink_call_tool({
  tool: "discord_list_sku_subscriptions",
  parameters: { sku_id: "123456789" }
});

Example 3: Manage role connections

// Get current user's role connection
const roleConn = await clawlink_call_tool({
  tool: "discord_get_user_application_role_connection",
  parameters: { application_id: "987654321" }
});

// Update role connection metadata
await clawlink_call_tool({
  tool: "discord_update_user_application_role_connection",
  parameters: {
    application_id: "987654321",
    metadata: {
      custom_fields: [
        { name: "Xbox Gamertag", value: "PlayerOne" }
      ]
    }
  }
});

Example 4: Resolve invites and check widget

// Resolve an invite code
const invite = await clawlink_call_tool({
  tool: "discord_invite_resolve",
  parameters: { invite_code: "abc123xyz" }
});

// Get guild widget PNG for embedding
const widget = await clawlink_call_tool({
  tool: "discord_get_guild_widget_png",
  parameters: { guild_id: "123456789" }
});

Error handling

Error patternLikely causeResolution
401 UnauthorizedBot token used where Bearer requiredUse OAuth2 Bearer token authentication
Missing MANAGE_GUILD permissionNot authorized to edit command permissionsUser needs to grant proper Discord permissions
Guild widget disabledWidget not enabled in server settingsServer admin must enable widget in Discord settings
Username change limit reachedAlready changed username 2+ times this hourWait before retrying
Role connection write scope missingOAuth2 lacks role_connections.write scopeUser may need to reconnect Discord with full scopes

Security & Permissions

  • ClawLink stores only the OAuth token, never the raw bot token
  • Device credentials are stored locally in OpenClaw plugin config
  • Bot tokens vs OAuth2 Bearer tokens have different capabilities — some tools error with bot tokens
  • discord_get_public_keys is for verifying external JWTs, not for storing keys

Troubleshooting

Tools not showing up after install:

  • Start a fresh OpenClaw chat to reload the plugin catalog
  • Call clawlink_list_integrations to confirm ClawLink is paired

"Permission denied" when editing command permissions:

  • Requires OAuth2 Bearer token (bot tokens will error)
  • User must have both MANAGE_GUILD and MANAGE_ROLES permissions in the target guild

Cannot get guild widget:

  • Widget must be enabled in Discord server settings
  • Server admin must toggle "Enable Server Widget" in Server Settings > Widget

Powered by ClawLink — your OpenClaw integration hub for Discord.

Related skills

Access and manage GitHub resources through the REST API with managed OAuth connections.

595 installs47 stars

Query and manage Linear work items through GraphQL with managed OAuth authentication.

517 installs18 stars

Install, switch, validate, export, restore, and publish Soul Spec personas from the CLI.

50 installs

Monitor signed advisories, match affected installed skills, and gate risky installs or removals on approval.

357 installs8 stars

Search YouTube data and manage account resources through Data API v3 with managed OAuth.

873 installs144 stars

Create, read, and edit Google Docs through managed OAuth and proxied Docs API endpoints.

278 installs8 stars

More from Jay

Browse all skills

Check calendars, find open times, and manage Google Calendar events with confirmation before every change.

by Jay81 installs33 stars

Work with GitHub repositories, issues, pull requests, commits, branches, releases, and workflows via the GitHub REST and GraphQL APIs. Use this skill when us...

by Jay87 installs32 stars

Inspect Google Ads accounts and campaigns, run GAQL reports, and coordinate campaign or audience changes with confirmation via the Google Ads API. Use this s...

by Jay78 installs33 stars

Read, search, draft, reply to, and organize Gmail from chat via the Gmail API. Use this skill when users want an inbox copilot — search and fetch messages, r...

by Jay