100+ integrations are ready to connect to your AI.Connect your first MCP

Discord MCP server for your AI

Ask what people asked in your support channel today and what nobody answered, post the release notes with the changelog attached, open a forum post with the right tags, time out a spammer with a reason in the audit log, and schedule the next community call.

PopMCPDiscord

What did people ask in #support today that nobody has answered yet?

Supported Discord tools

Every part of Discord's HTTP API a bot can use, from messages, threads and forum posts to roles, moderation, events, webhooks, emojis and slash commands, plus everyday tools that take channel and member names instead of ids.

233 tools in the full catalog: 99 read and 134 write. 33 load by default, and the rest are found with tool search.

discord_create_event

Schedule a server event in a voice or stage channel, or at a place or link outside Discord, from plain dates (ISO with a time zone offset).

discord_create_webhook

Creates a new webhook and returns a webhook object on success.

discord_list_scheduled_events

Returns a list of guild scheduled event objects for the given guild.

discord_send_webhook_message

Post through one of the server's webhooks, by its id or URL, with a custom name and avatar, an embed and files; into a thread, or as a new forum post.

discord_get_server_overview

Overview of the connected server in one read: name, member and online counts, boost level, its channels by category and type, role count, and what the bot is missing (permissions, Message Content and Server Members intents).

discord_create_forum_post

Create a post (a thread) in a forum or media channel with a title, first message, tags by name, an embed and files.

discord_create_thread

Creates a new thread that is not connected to an existing message.

discord_create_thread_from_message

Creates a new thread from an existing message.

discord_list_active_threads

Returns all active threads in the guild, including public and private threads.

discord_get_audit_log

Returns an audit log object for the guild.

discord_moderate_member

Moderate a member: timeout (with duration, at most 28 days), remove_timeout, kick, ban (optionally deleting their recent messages) or unban, by name, id or mention, with a reason in the audit log.

discord_create_invite

Create a new invite object for the channel.

discord_bulk_delete_messages

Delete multiple messages in a single request.

discord_delete_message

Delete a message.

discord_edit_member

Modify attributes of a guild member.

discord_edit_message

Edit a previously sent message.

discord_find_member

Find members of the server by name or nickname (matches the start), id or <@id> mention.

discord_get_member

Returns a guild member object for the specified user.

discord_get_message

Retrieves a specific message in the channel.

discord_read_messages

Read a channel's or thread's recent messages (by name, id, mention or link), oldest first, up to 200: who, when, text, files, reactions, replies and a link to each.

discord_search_messages

Search the server's messages by text, channel, author, mentions, attachments or links (has), dates and pinned, newest first or by relevance; 25 a page with offset for more.

discord_send_message

Send a message to a channel or thread (by name, id, mention or link), or DM a member (user).

discord_create_channel

Create a new channel object for the guild.

discord_create_role

Create a new role for the guild.

discord_edit_channel

Update a channel's settings.

discord_get_channel

Get a channel by ID.

discord_list_channels

Returns a list of guild channel objects.

discord_list_roles

Returns a list of role objects for the guild.

discord_update_member_roles

Give and take away roles for a member, by role name or id (up to 10 each), leaving their other roles alone.

discord_add_reaction

Create a reaction for the message.

discord_get_user

Returns an user object for a given user ID.

discord_list_pinned_messages

Retrieves the list of pins in a channel.

discord_pin_message

Pin a message in a channel.

discord_create_emoji

Create a new emoji for the guild.

discord_create_soundboard_sound

Create a new soundboard sound for the guild.

discord_create_sticker

Create a new sticker for the guild.

discord_delete_emoji

Delete the given emoji.

discord_delete_soundboard_sound

Delete the given soundboard sound.

discord_delete_sticker

Delete the given sticker.

discord_edit_emoji

Modify the given emoji.

discord_edit_soundboard_sound

Modify the given soundboard sound.

discord_edit_sticker

Modify the given sticker.

discord_get_emoji

Returns an emoji object for the given guild and emoji IDs.

discord_get_server_sticker

Returns a sticker object for the given guild and sticker IDs.

discord_get_soundboard_sound

Returns a soundboard sound object for the given sound id.

discord_get_sticker

Returns a sticker object for the given sticker ID.

discord_get_sticker_pack

Returns a sticker pack object for the given sticker pack ID.

discord_list_default_soundboard_sounds

Returns an array of soundboard sound objects that can be used by all users.

discord_list_emojis

Returns a list of emoji objects for the given guild.

discord_list_soundboard_sounds

Returns a list of the guild's soundboard sounds.

discord_list_sticker_packs

Returns a list of available sticker packs.

discord_list_stickers

Returns an array of sticker objects for the given guild.

discord_play_soundboard_sound

Send a soundboard sound to a voice channel the user is connected to.

discord_add_lobby_member

Adds the provided user to the specified lobby.

discord_count_scheduled_event_users

Count the users interested in a scheduled event, optionally per occurrence of a recurring event.

discord_create_lobby

Creates a new lobby, adding any of the specified members to it, if provided.

discord_create_lobby_invite_for_bot

Creates a single-use guild invite to the lobby's linked channel, targeted at the calling user.

discord_create_lobby_invite_for_user

Creates a single-use guild invite to the lobby's linked channel on behalf of an application, targeted at the specified user.

discord_create_or_join_lobby

Creates a new lobby for the application identified by a secret, or joins the calling user to the existing lobby with that secret if one already exists.

discord_create_scheduled_event

Create a guild scheduled event in the guild.

discord_create_scheduled_event_exception

Create an exception to one occurrence of a recurring scheduled event: move it (scheduled_start_time / scheduled_end_time) or cancel it.

discord_delete_lobby

Delete a lobby of the bot's app.

discord_delete_scheduled_event

Delete a guild scheduled event.

discord_delete_scheduled_event_exception

Delete an exception, so that occurrence of the recurring event goes back to its normal time.

discord_delete_webhook

Delete a webhook permanently.

discord_delete_webhook_message

Deletes a message that was created by the webhook.

discord_delete_webhook_with_token

Same as above, except this call does not require authentication.

discord_edit_lobby

Modifies the specified lobby with new values, if provided.

discord_edit_scheduled_event

Modify a guild scheduled event.

discord_edit_scheduled_event_exception

Change an exception to one occurrence of a recurring scheduled event.

discord_edit_stage

Updates fields of an existing Stage instance.

discord_edit_webhook

Modify a webhook.

discord_edit_webhook_message

Edits a previously-sent webhook message from the same token.

discord_edit_webhook_with_token

Same as above, except this call does not require authentication, does not accept a channel_id parameter in the body, and does not return an user in the webhook object.

discord_end_stage

Deletes the Stage instance.

discord_execute_github_webhook

Add a new webhook to your GitHub repo (in the repo's settings), and use this endpoint as the "Payload URL." You can choose what events your Discord channel receives by choosing the "Let me select individual events" option and selecting individual events for the new webhook you're configuring.

discord_execute_slack_webhook

We do not support Slack's channel, icon_emoji, mrkdwn, or mrkdwn_in properties.

discord_execute_webhook

Returns a message or 204 No Content depending on the wait query parameter.

discord_get_lobby

Returns a lobby object for the specified lobby id, if it exists.

discord_get_scheduled_event

Get a guild scheduled event.

discord_get_stage

Gets the stage instance associated with the Stage channel, if it exists.

discord_get_webhook

Returns the new webhook object for the given id.

discord_get_webhook_message

Returns a previously-sent webhook message from the same token.

discord_get_webhook_with_token

Same as above, except this call does not require authentication and returns no user in the webhook object.

discord_leave_lobby

Removes the current user from the specified lobby.

discord_link_lobby_channel

Links an existing text channel to a lobby.

discord_list_channel_webhooks

Returns a list of channel webhook objects.

discord_list_lobby_messages

Returns the most recent messages in the specified lobby.

discord_list_scheduled_event_exception_users

List the users interested in one occurrence of a recurring scheduled event.

discord_list_scheduled_event_users

Get a list of guild scheduled event users subscribed to a guild scheduled event.

discord_list_webhooks

Returns a list of guild webhook objects.

discord_remove_lobby_member

Removes the provided user from the specified lobby.

discord_send_lobby_message

Sends a message to the specified lobby.

discord_set_dm_message_moderation

Attach your own moderation metadata to a direct message between two users of a game using the Discord Social SDK.

discord_set_lobby_message_moderation

Attach your own moderation metadata (up to a few string keys) to a lobby message, for a game's server-side moderation.

discord_start_stage

Creates a new Stage instance associated to a Stage channel.

discord_update_lobby_members

Adds, updates, or removes up to 25 members from the specified lobby in a single request.

discord_delete_integration

Delete the attached integration object for the guild.

discord_edit_onboarding

Modifies the onboarding configuration of the guild.

discord_edit_server

Modify a guild's settings.

discord_edit_server_widget_settings

Modify a guild widget settings object for the guild.

discord_edit_welcome_screen

Modify the guild's Welcome Screen.

discord_get_new_member_welcome

Get the server's new member welcome settings (the welcome message and the actions new members are shown).

discord_get_onboarding

Returns the Onboarding object for the guild.

discord_get_server

Returns the guild object for the given id.

discord_get_server_preview

Returns the guild preview object for the given id.

discord_get_server_vanity_url

Returns a partial invite object for guilds with that feature enabled.

discord_get_server_widget

Returns the widget for the guild.

discord_get_server_widget_settings

Returns a guild widget settings object.

discord_get_welcome_screen

Returns the Welcome Screen object for the guild.

discord_list_integrations

Returns a list of integration objects for the guild.

discord_add_thread_member

Adds another member to a thread.

discord_create_global_command

Create a new global command.

discord_create_server_command

Create a new guild command.

discord_delete_global_command

Deletes a global command.

discord_delete_server_command

Delete a guild command.

discord_edit_global_command

Edit a global command.

discord_edit_server_command

Edit a guild command.

discord_get_global_command

Fetch a global command for your application.

discord_get_server_command

Fetch a guild command for your application.

discord_get_server_command_permissions

Fetches permissions for a specific command for your application in a guild.

discord_get_thread_member

Returns a thread member object for the specified user if they are a member of the thread, returns a 404 response otherwise.

discord_join_thread

Adds the current user to a thread.

discord_leave_thread

Removes the current user from a thread.

discord_list_global_commands

Fetch all of the global commands for your application.

discord_list_joined_private_archived_threads

Returns archived threads in the channel that are of type PRIVATE_THREAD, and the user has joined.

discord_list_private_archived_threads

Returns archived threads in the channel that are of type PRIVATE_THREAD.

discord_list_public_archived_threads

Returns archived threads in the channel that are public.

discord_list_server_command_permissions

Fetches permissions for all commands for your application in a guild.

discord_list_server_commands

Fetch all of the guild commands for your application for a specific guild.

discord_list_thread_members

Returns array of thread members objects that are members of the thread.

discord_remove_thread_member

Removes another member from a thread.

discord_replace_global_commands

Takes a list of application commands, overwriting the existing global command list for this application.

discord_replace_server_commands

Takes a list of application commands, overwriting the existing command list for this application for the targeted guild.

discord_search_threads

Search the threads (posts) of a forum, media or text channel by title, tag and archived state.

discord_ban_member

Create a guild ban, and optionally delete previous messages sent by the banned user.

discord_bulk_ban_users

Ban up to 200 users from a guild, and optionally delete previous messages sent by the banned users.

discord_create_automod_rule

Create a new rule.

discord_delete_automod_rule

Delete a rule.

discord_edit_automod_rule

Modify an existing rule.

discord_get_automod_rule

Get a single rule.

discord_get_ban

Returns a ban object for the given user or a 404 not found if the ban cannot be found.

discord_list_automod_rules

Get a list of all rules currently configured for the guild.

discord_list_bans

Returns a list of ban objects for the users banned from this guild.

discord_set_incident_actions

Pause invites and/or DMs in the server for up to 24 hours during a raid or spam wave: { "invites_disabled_until": ISO time | null, "dms_disabled_until": ISO time | null }.

discord_unban_user

Remove the ban for an user.

discord_add_invite_target_user

Add one user to an invite's target users.

discord_add_invite_target_users

Add several users to an invite's target users: { "user_ids": ["..."] }.

discord_delete_invite

Delete an invite.

discord_get_invite

Returns an invite object for the given code.

discord_get_invite_target_users

Get the users allowed to see and accept an invite, as a CSV with an user_id header.

discord_get_invite_target_users_job_status

Check the job that processes an invite's target users list.

discord_list_channel_invites

Returns a list of invite objects (with invite metadata) for the channel.

discord_list_invites

Returns a list of invite objects.

discord_remove_invite_target_user

Remove one user from an invite's target users.

discord_remove_invite_target_users

Remove several users from an invite's target users: { "user_ids": ["..."] }.

discord_replace_invite_target_users

Replace an invite's whole list of target users (who may accept it).

discord_create_message

Post a message to a guild text or DM channel.

discord_edit_bot_member

Modifies the current member in a guild.

discord_get_prune_count

Returns an object with one pruned key indicating the number of members that would be removed in a prune operation.

discord_kick_member

Remove a member from a guild.

discord_list_join_requests

List join requests (member applications) for a server that requires an application to join, optionally filtered by status (SUBMITTED, APPROVED, REJECTED).

discord_list_members

Returns a list of guild member objects that are members of the guild.

discord_list_messages

Retrieves the messages in a channel.

discord_prune_members

Begin a prune operation.

discord_publish_announcement_message

Crosspost a message in an Announcement Channel to following channels.

discord_review_join_request

Approve or reject a server join request (member application).

discord_search_guild_messages

Returns a list of messages without the reactions key that match a search query in the guild.

discord_search_members

Returns a list of guild member objects whose username or nickname starts with a provided string.

discord_add_member_role

Adds a role to a guild member.

discord_delete_channel

Delete a channel, or close a private message.

discord_delete_channel_permission

Delete a channel permission overwrite for an user or role in a channel.

discord_delete_role

Delete a guild role.

discord_edit_role

Modify a guild role.

discord_follow_announcement_channel

Follow an Announcement Channel to send messages to a target channel.

discord_get_role

Returns a role object for the specified role.

discord_get_role_member_counts

Returns a map of role IDs to the number of members with the role.

discord_move_channels

Modify the positions of a set of channel objects for the guild.

discord_move_roles

Modify the positions of a set of role objects for the guild.

discord_remove_member_role

Removes a role from a guild member.

discord_set_channel_permission

Edit the channel permission overwrites for an user or role in a channel.

discord_show_typing

Post a typing indicator for the specified channel, which expires after 10 seconds.

discord_consume_entitlement

For One-Time Purchase consumable SKUs, marks a given entitlement for the user as consumed.

discord_create_test_entitlement

Creates a test entitlement to a given SKU for a given guild or user.

discord_delete_test_entitlement

Deletes a currently-active test entitlement.

discord_get_entitlement

Returns an entitlement.

discord_get_sku_subscription

Get one subscription to a SKU of the bot's app.

discord_list_entitlements

Returns all entitlements for a given app, active and expired.

discord_list_sku_subscriptions

List the subscriptions to a SKU of the bot's app, filtered by user.

discord_list_skus

Returns all SKUs for a given application.

discord_edit_bot_voice_state

Updates the current user's voice state.

discord_edit_member_voice_state

Updates another user's voice state.

discord_get_bot_voice_state

Returns the current user's voice state in the guild.

discord_get_member_voice_state

Returns the specified user's voice state in the guild.

discord_list_server_voice_regions

Returns a list of voice region objects for the guild.

discord_list_voice_regions

Returns an array of voice region objects that can be used when setting a voice or stage channel's rtc_region.

discord_set_voice_channel_status

Set a voice channel's status text (up to 500 characters; null clears it).

discord_create_server_template

Creates a template for the guild.

discord_delete_server_template

Deletes the template.

discord_edit_bot_user

Modify the requester's user account settings.

discord_edit_server_template

Modifies the template's metadata.

discord_get_bot_user

Returns the user object of the requester's account.

discord_get_server_template

Returns a guild template object for the given code.

discord_leave_server

Leave a guild.

discord_list_bot_servers

Returns a list of partial guild objects the current user is a member of.

discord_list_reaction_users

Get a list of users that reacted with this emoji.

discord_list_server_templates

Returns an array of guild template objects.

discord_open_dm

Create a new DM channel with an user.

discord_remove_all_reactions

Deletes all reactions on a message.

discord_remove_all_reactions_for_emoji

Deletes all the reactions for a given emoji on a message.

discord_remove_own_reaction

Delete a reaction the current user has made for the message.

discord_remove_user_reaction

Deletes another user's reaction.

discord_sync_server_template

Syncs the template to the guild's current state.

discord_create_app_emoji

Create a new emoji for the application.

discord_delete_app_emoji

Delete the given emoji.

discord_delete_identity

Deletes one Application Identity and its associated profile data for the specified user and application.

discord_edit_app_emoji

Modify the given emoji.

discord_edit_bot_application

Edit properties of the app associated with the requesting bot user.

discord_edit_identity_profile

Updates the profile data on the user's matching Application Identity record.

discord_find_identities_by_external_id

Returns the application identities for the user/application record currently associated with the specified external ID.

discord_get_activity_instance

Returns a serialized activity instance, if it exists.

discord_get_app_emoji

Returns an emoji object for the given application and emoji IDs.

discord_get_bot_application

Returns the application object associated with the requesting bot user.

discord_get_identity_profile

Returns the Application Identity Profile object stored on the matching Application Identity for the specified user and application.

discord_get_role_connection_metadata

Returns a list of application role connection metadata objects for the given application.

discord_list_app_emojis

Returns an object containing a list of emoji objects for the given application under the items key.

discord_list_user_identities

Returns the application identities for the specified user and application.

discord_replace_role_connection_metadata

Updates and returns a list of application role connection metadata objects for the given application.

discord_unpin_message

Unpin a message in a channel.

discord_end_poll

Immediately ends the poll.

discord_get_bot_gateway

Returns an object based on the information in Get Gateway, plus additional metadata that can help during the operation of large or sharded bots.

discord_get_gateway

Returns an object with a valid WSS URL which the app can use when Connecting to the Gateway.

discord_list_poll_answer_voters

Get a list of users that voted for this specific answer.

Connect Discord to Claude, ChatGPT and Claude Code

Credentials off one Discord screen, then an endpoint your client signs into. Nothing to deploy, and nothing to install.

In the Discord Developer Portal click New Application, open Bot, click Reset Token and copy the token, and turn on Message Content Intent on the same page. Add the bot to your server with the install link on the Installation page, then paste the token into PopMCP and pick the server.

Bot token••••••••••••3f7a
ConnectionVerified

Then just ask for the work

  • “What did people ask in #support today that nobody has answered yet?”

    • read_messages
  • “Post this week's release notes to #announcements and attach the changelog file”

    • send_message
  • “Time out the member who keeps posting spam links in #general for an hour, and note why in the audit log”

    • find_member
    • moderate_member
  • “Find every message this month that mentions the refund policy”

    • search_messages
  • “Schedule our community call for Friday at 5pm in the Stage channel and announce it in #announcements”

    • create_event
    • send_message
  • “Give Alex the Moderator role and take away Newcomer”

    • update_member_roles

Use Discord from the assistant you already open

One hosted endpoint, registered once per client. The same tools and the same permissions, whichever window the request comes from.

Claude DesktopCustom connector

Add the PopMCP URL under Customize → Connectors and the tools appear in every chat.

Claude WebCustom connector

The same endpoint, registered in the browser. Nothing to install on the machine you are working from.

ChatGPTCustom connector

Register PopMCP as a custom connector, then let ChatGPT read and update the account.

CodexDesktop & CLI

Wire the endpoint into Codex or the Codex CLI when a task needs live business context, not a fixture.

OpenCodeCoding agent

Register the remote MCP server in OpenCode's config for terminal-first and scripted agent runs.

ZCodeDesktop app

Add PopMCP as an MCP server in Z.ai's desktop app and work the account from the same window.

Discord MCP server questions

What teams ask before putting Discord behind an AI client.

What does the Discord MCP server need to connect?

A bot token from a Discord app you create for free. In the Developer Portal click New Application, open Bot and click Reset Token, then copy the token Discord shows once. Turn on Message Content Intent and Server Members Intent on the same page, add the bot to your server from the Installation page's install link, and paste the token into PopMCP. You then pick which of the bot's servers to connect. Nothing needs Discord's approval.

Can the AI read the messages in my server?

Yes, in the channels the bot can see: give its role View Channels and Read Message History. Discord shows a bot the text of messages only when Message Content Intent is on for it; without it the text comes back empty, except messages that mention the bot. PopMCP checks this when you connect and tells you if the intent is off. read_messages reads a channel oldest first, from a date or a message, and search_messages searches the whole server.

Which servers does a connection reach?

One. A bot can be in many servers, so after you paste the token PopMCP lists them and each server you choose becomes its own connection, in the workspace you pick. Channels, webhooks, invites and direct messages from any other server are refused before anything is sent, so an agency's bot in several client servers never mixes them up.

What can the bot do in my server?

Exactly what its role allows: Discord checks the bot's permissions on every action. The install link PopMCP gives you asks for a sensible set (messages, threads, pins, reactions, channels, roles, webhooks, events, invites, the audit log, timeouts, kicks and bans) without Administrator. When something is refused, the AI is told which permission is missing and where a server admin turns it on.

Will the AI ping @everyone?

Not unless you ask it to. Messages the bot sends ping the users they mention and nobody else: @everyone, @here and role mentions stay plain text unless the request says they should notify people. Replies still ping the person replied to, and silent messages send with no notification at all.

Which Discord events can PopMCP watch?

New messages in a channel, moderation and settings changes from the audit log, join requests, members joining, leaving or being banned, pinned messages, new threads and forum posts, channels, roles, scheduled events starting or ending, invites, webhooks, custom emojis, AutoMod rules, and the member count passing a number you choose. PopMCP reads them from the API, so they work with no setup in Discord.

Is there a way to connect without making a bot?

When PopMCP's own Discord bot is switched on, the connect button becomes Add to Discord: you pick your server on Discord's own page, check the permissions and authorize, with nothing to copy. That connection acts as PopMCP's bot and reaches only the server you picked. Managing slash commands or a bot's own profile needs your own bot.

Do I have to run or host the Discord MCP server myself?

No. PopMCP hosts it and gives you a Streamable HTTP MCP URL. There is nothing to deploy, no callback URL to register, and no infrastructure to keep running or patch.

Which AI clients can use this MCP server?

Any client that supports a remote Streamable HTTP MCP server: Claude Desktop, Claude Web, Claude Code, ChatGPT custom connectors, Codex and the Codex CLI, OpenCode and Z.ai's ZCode, as well as editors such as Cursor, Windsurf and Zed. Your client signs in to PopMCP with OAuth; the provider credential never leaves the server.

How do I connect Discord to Claude Code?

Connect Discord in PopMCP first, then run claude mcp add --transport http popmcp https://app.popmcp.com/mcp in a terminal. Inside Claude Code, run /mcp and sign in to PopMCP in the browser window it opens, ticking Discord on the consent screen. The Discord tools are then available in that session, and no Discord credential is stored on your machine.

Why do only 33 of the 233 tools load by default?

Loading 233 tool definitions into every conversation burns context before the work starts. PopMCP loads a curated 33-tool set covering the everyday workflows and keeps the rest searchable, so your AI pulls a specialist tool only when a task needs it. Every tool stays searchable, and on Scale the owner can load the full catalog for a teammate's connection.

What is the difference between a tool and a trigger?

A tool is something your AI calls, and there are 233 here. A trigger is something PopMCP watches for you: 18 Discord events that can start work on the PopMCP side. Triggers never enter your AI client's context, and none of them ask you to paste a callback URL into Discord.

Connect Discord to your AI in minutes

Launch a hosted MCP endpoint for Discord, keep tool access under control, and start testing real workflow prompts right away.

Connect your first MCP