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: Install | Step 2: Pair Account | Step 3: Connect Discord |
|---|---|---|
| :---: | :---: | :---: |
| !Install | !Pair | App-specific connection GIF coming soon |
| Run the install command in OpenClaw | Sign in and approve the device | Open the dashboard and connect Discord |
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:
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:
// 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" })
┌─────────────────────────────────────────────────────────┐
│ OpenClaw (you) │
├─────────────────────────────────────────────────────────┤
│ ClawLink Plugin → clawlink_* tools │
├─────────────────────────────────────────────────────────┤
│ ClawLink Cloud │
│ (credentials, connection state, routing) │
├─────────────────────────────────────────────────────────┤
│ Discord API (user's account) │
└─────────────────────────────────────────────────────────┘
| Tool | Description | Risk |
|---|---|---|
| ------ | ------------- | ------ |
discord_get_my_user | Get current user's profile (email if email scope granted) | safe |
discord_get_user | Get any Discord user by ID (use '@me' for authenticated user) | safe |
discord_get_openid_connect_userinfo | Get OIDC-compliant user claims (sub, email, picture, locale) | safe |
discord_get_my_oauth2_authorization | Get OAuth2 authorization details, scopes, token expiration | safe |
discord_list_my_connections | List user's connected third-party accounts on Discord | safe |
discord_list_my_guilds | List current user's guilds (partial data for display) | safe |
discord_get_my_guild_member | Get guild member info for current user (roles, nickname, join date) | safe |
| Tool | Description | Risk |
|---|---|---|
| ------ | ------------- | ------ |
discord_get_guild_template | Get Discord guild template details by template code | safe |
discord_get_guild_widget | Get guild widget JSON (guild widget must be enabled) | safe |
discord_get_guild_widget_png | Get PNG image widget for a guild | safe |
discord_leave_guild | Leave a guild on behalf of the authenticated user | high_impact |
| Tool | Description | Risk |
|---|---|---|
| ------ | ------------- | ------ |
discord_get_application_command_permissions | Get permissions for a specific command in a guild | safe |
discord_get_batch_application_command_permissions | Get permissions for all commands in a guild | safe |
discord_edit_application_command_permissions | Edit permissions for a specific command (requires MANAGE_GUILD) | confirm |
| Tool | Description | Risk |
|---|---|---|
| ------ | ------------- | ------ |
discord_get_current_user_application_entitlements | Get user's premium entitlements for an application | safe |
discord_get_sku_subscription | Get a specific subscription by ID for a SKU | safe |
discord_list_sku_subscriptions | List all subscriptions for a SKU | safe |
discord_consume_entitlement | Mark a consumable entitlement as consumed | confirm |
discord_delete_test_entitlement | Delete a test entitlement (cleanup) | high_impact |
| Tool | Description | Risk |
|---|---|---|
| ------ | ------------- | ------ |
discord_get_user_application_role_connection | Get user's role connection metadata for an app | safe |
discord_update_user_application_role_connection | Update user's role connection (requires role_connections.write scope) | confirm |
discord_delete_user_application_role_connection | Delete user's role connection metadata | high_impact |
| Tool | Description | Risk |
|---|---|---|
| ------ | ------------- | ------ |
discord_get_gateway | Get valid WebSocket URL for Gateway connection | safe |
discord_get_public_keys | Get OAuth2 public keys for token verification | safe |
discord_invite_resolve | Resolve and get details about an invite code | safe |
discord_list_sticker_packs | List all available Discord Nitro sticker packs | safe |
| Tool | Description | Risk |
|---|---|---|
| ------ | ------------- | ------ |
discord_modify_current_user | Modify current user's username (max 2 changes/hour) and avatar | confirm |
// 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" }
});
// 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" }
});
// 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" }
]
}
}
});
// 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 pattern | Likely cause | Resolution |
|---|---|---|
| --------------- | -------------- | ------------ |
401 Unauthorized | Bot token used where Bearer required | Use OAuth2 Bearer token authentication |
Missing MANAGE_GUILD permission | Not authorized to edit command permissions | User needs to grant proper Discord permissions |
Guild widget disabled | Widget not enabled in server settings | Server admin must enable widget in Discord settings |
Username change limit reached | Already changed username 2+ times this hour | Wait before retrying |
Role connection write scope missing | OAuth2 lacks role_connections.write scope | User 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.
共 2 个版本