Discord MCP
A MCP Server for Interacting with Discord Servers
Discord MCP Server
A production-grade Model Context Protocol (MCP) server for Discord built with FastMCP and discord.py. Provides a complete API surface for managing channels, roles, permissions, messages, moderation, and server settings via MCP.
Features
- Per-token bot sessions with automatic session management
- Channel management: create, edit, delete, move, and reorder via position
- Role management: create, edit (including position), delete, assign, remove
- Permission configuration for channels, categories, and roles
- "View as role/member" permission inspection across guild and channels
- Message operations: send, edit, delete, bulk delete, retrieve
- Moderation actions: timeout, kick, ban, enforce role policies
- Guild/server settings management
- Polls: create, end, and get results
- Scheduled events: create, edit, delete, list, get attendees
- Threads & forums: create, edit, delete, manage members, forum posts
- Webhooks: create, send messages, list, delete
- Invites: create, list, delete
- Emoji & stickers: create, delete, list
- Reactions: add, remove, list users, clear
- AutoMod: create, edit, delete, list rules
- Audit log: query with filters
- Member info: get details, list members, edit nicknames/mute/deafen
- Status endpoints for bot sessions
Installation
uv sync
Configuration
Copy the template .env file and modify it as needed:
cp .env.template .env
Default bind is local-only:
MCP_HOST=127.0.0.1
MCP_PORT=8000
Usage
Run the MCP server locally:
uv run python -m discord_mcp.main
Or use it without a local setup:
uv run --with git+https://github.com/ExilProductions/discord-mcp discord-mcp
MCP Client Configuration Example
Example configuration for OpenCode using a remote MCP server:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"discord-mcp": {
"type": "remote",
"url": "http://localhost:8000/mcp",
"enabled": true,
"headers": {
"Authorization": "YOUR_DISCORD_BOT_TOKEN"
}
}
}
}
This can be used by any client that supports MCP.
MCP Tools
Channel Management
create_channel- Create a text, voice, news, stage, forum, media, or category channeledit_channel- Edit a channel's settingsdelete_channel- Delete a channelmove_channel- Move channel to a categoryedit_channelwithposition- Reorder channels/categoriesget_channel- Get channel informationget_channels- List all channels in guild
Role Management
create_role- Create a new roleedit_role- Edit a role (includingpositionfor reorder)delete_role- Delete a roleassign_role- Assign role to memberremove_role- Remove role from memberget_role- Get role informationget_roles- List all roles in guild
Permission Management
set_channel_permissions- Set channel permissionsset_category_permissions- Set category permissionsset_role_permissions- Update role permissionsget_channel_permissions- Get channel permission overwritesget_category_permissions- Get category permission overwritesremove_channel_permissions- Remove permission overwritesinspect_role_permissions- Compact-by-default role permission summary (counts, previews, key capabilities)inspect_member_permissions- Compact-by-default member permission summary (counts, previews, key capabilities)inspect_target_channel_permissions- Full effective permissions for one target in one channel (detail drill-down)list_target_accessible_channels- Compact list of channels a role/member can accesslist_target_inaccessible_channels- Compact list of channels a role/member cannot access
Permission inspection is optimized for AI agent workflows: call summary tools first, then request channel detail only when needed.
Message Operations
send_message- Send a message (supports embeds, TTS, mentions, references)edit_message- Edit a messagedelete_message- Delete a messagebulk_delete_messages- Bulk delete messagesget_message- Get a messageget_channel_messages- Get channel message history
Moderation
timeout_user- Timeout a memberremove_timeout- Remove timeout from memberkick_user- Kick a memberban_user- Ban a memberunban_user- Unban a memberenforce_role_policy- Enforce role policy (kick/ban members missing required roles)get_guild_bans- List guild bansget_member_timeout_status- Check timeout status
Guild Management
get_guild_settings- Get server settings (name, description, verification level, etc.)edit_guild_settings- Edit server settings
Polls
create_poll- Create a poll in a channelend_poll- End an active pollget_poll_results- Get poll vote counts and results
Scheduled Events
create_scheduled_event- Create a scheduled event (voice, stage, or external)edit_scheduled_event- Edit a scheduled eventdelete_scheduled_event- Delete a scheduled eventlist_scheduled_events- List all scheduled events in a guildget_scheduled_event_users- Get users interested in an event
Threads & Forums
create_thread- Create a thread (optionally from a message)edit_thread- Edit thread settings (name, archive, lock, slowmode)delete_thread- Delete a threadlist_threads- List active and archived threads in a channeladd_thread_member- Add a member to a threadremove_thread_member- Remove a member from a threadcreate_forum_post- Create a forum post with tags
Webhooks
create_webhook- Create a webhook for a channelsend_webhook_message- Send a message via webhooklist_webhooks- List webhooks for a guild or channeldelete_webhook- Delete a webhook
Invites
create_invite- Create a channel invitelist_invites- List all guild invitesdelete_invite- Delete an invite
Emoji & Stickers
create_emoji- Create a custom emojidelete_emoji- Delete a custom emojilist_emojis- List all custom emojis in a guildlist_stickers- List all stickers in a guild
Reactions
add_reaction- Add a reaction to a messageremove_reaction- Remove a reaction from a messageget_reaction_users- Get users who reacted with a specific emojiclear_reactions- Clear all or specific reactions from a message
AutoMod
create_automod_rule- Create an automod rule (keyword, spam, preset, mention spam)edit_automod_rule- Edit an automod ruledelete_automod_rule- Delete an automod rulelist_automod_rules- List all automod rules in a guild
Audit Log
get_audit_log- Query audit log with filters (user, action type, limit)
Members
get_member_info- Get detailed member profile infolist_members- List guild membersedit_member- Edit member (nickname, mute, deafen)
Status
get_bot_status- Get bot status and session info
相关服务器
K8s MCP Server
A server for Kubernetes CLI tools like kubectl, istioctl, helm, and argocd, supporting multi-cluster management via dynamic kubeconfig.
Brex
Interact with the Brex API to manage financial data and resources.
PayPal MCP Server
Integrate with PayPal's APIs for payment processing, subscription management, and business operations.
Hetzner Cloud MCP Server
MCP server for the Hetzner Cloud API — manage servers, networks, volumes, firewalls, load balancers, and more. 104 tools across 13 resource domains.
Appwrite
Interact with the Appwrite API to manage your backend services.
Dokploy
An AI-powered interface for managing the Dokploy infrastructure platform.
Flespi MCP Server
Interact with the Flespi telematics platform API for fleet management, device tracking, and telemetry data processing.
NEURIA Design Intelligence MCP
Emotion-driven design intelligence for AI coding tools. Get design tokens, brand DNA, and animation params via MCP.
MCP Freshbooks Blockchain
Integrates Freshbooks with blockchain technology for immutable financial records.
CloudStack MCP Server
Integrate with Apache CloudStack to manage cloud resources directly from your desktop.