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.
Step 1: InstallStep 2: Pair AccountStep 3: Connect Discord
_App-specific connection GIF coming soon_Run the install command in OpenClawSign in and approve the deviceOpen the dashboard and connect Discord
text
User → ClawLink OAuth → Discord account
↓
OpenClaw tools
(via ClawLink)
Step 1 — Install the ClawLink plugin:
text
openclaw plugins install clawhub:clawlink-plugin
Start a fresh chat after installing.
Step 2 — Pair ClawLink:
clawlink_begin_pairingStep 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:
javascript
// 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" })
text
┌─────────────────────────────────────────────────────────┐
│ OpenClaw (you) │
├─────────────────────────────────────────────────────────┤
│ ClawLink Plugin → clawlink_* tools │
├─────────────────────────────────────────────────────────┤
│ ClawLink Cloud │
│ (credentials, connection state, routing) │
├─────────────────────────────────────────────────────────┤
│ Discord API (user's account) │
└─────────────────────────────────────────────────────────┘
ToolDescriptionRiskdiscord_get_my_userGet current user's profile (email if email scope granted)safediscord_get_userGet any Discord user by ID (use '@me' for authenticated user)safediscord_get_openid_connect_userinfoGet OIDC-compliant user claims (sub, email, picture, locale)safediscord_get_my_oauth2_authorizationGet OAuth2 authorization details, scopes, token expirationsafediscord_list_my_connectionsList user's connected third-party accounts on Discordsafediscord_list_my_guildsList current user's guilds (partial data for display)safediscord_get_my_guild_memberGet guild member info for current user (roles, nickname, join date)safe
ToolDescriptionRiskdiscord_get_guild_templateGet Discord guild template details by template codesafediscord_get_guild_widgetGet guild widget JSON (guild widget must be enabled)safediscord_get_guild_widget_pngGet PNG image widget for a guildsafediscord_leave_guildLeave a guild on behalf of the authenticated userhigh_impact
ToolDescriptionRiskdiscord_get_application_command_permissionsGet permissions for a specific command in a guildsafediscord_get_batch_application_command_permissionsGet permissions for all commands in a guildsafediscord_edit_application_command_permissionsEdit permissions for a specific command (requires MANAGE_GUILD)confirm
ToolDescriptionRiskdiscord_get_current_user_application_entitlementsGet user's premium entitlements for an applicationsafediscord_get_sku_subscriptionGet a specific subscription by ID for a SKUsafediscord_list_sku_subscriptionsList all subscriptions for a SKUsafediscord_consume_entitlementMark a consumable entitlement as consumedconfirmdiscord_delete_test_entitlementDelete a test entitlement (cleanup)high_impact
ToolDescriptionRiskdiscord_get_user_application_role_connectionGet user's role connection metadata for an appsafediscord_update_user_application_role_connectionUpdate user's role connection (requires role_connections.write scope)confirmdiscord_delete_user_application_role_connectionDelete user's role connection metadatahigh_impact
ToolDescriptionRiskdiscord_get_gatewayGet valid WebSocket URL for Gateway connectionsafediscord_get_public_keysGet OAuth2 public keys for token verificationsafediscord_invite_resolveResolve and get details about an invite codesafediscord_list_sticker_packsList all available Discord Nitro sticker packssafe
ToolDescriptionRiskdiscord_modify_current_userModify current user's username (max 2 changes/hour) and avatarconfirm
javascript
// 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" }
});
javascript
// 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" }
});
javascript
// 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" }
]
}
}
});
javascript
// 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 patternLikely causeResolution401 UnauthorizedBot token used where Bearer requiredUse OAuth2 Bearer token authenticationMissing MANAGE_GUILD permissionNot authorized to edit command permissionsUser needs to grant proper Discord permissionsGuild widget disabledWidget not enabled in server settingsServer admin must enable widget in Discord settingsUsername change limit reachedAlready changed username 2+ times this hourWait before retryingRole connection write scope missingOAuth2 lacks role_connections.write scopeUser may need to reconnect Discord with full scopes
discord_get_public_keys is for verifying external JWTs, not for storing keysTools not showing up after install:
clawlink_list_integrations to confirm ClawLink is paired"Permission denied" when editing command permissions:
Cannot get guild widget:
Powered by ClawLink — your OpenClaw integration hub for Discord.