get_server_infoLABSCO SUMMARY
Set the default guild once and every tool stops asking which server you mean.
With DISCORD_GUILD_ID configured, the guildId parameter becomes optional across the whole surface, which turns most requests into one sentence. The coverage is the other reason to pick it: forums, scheduled events and per-channel permission overwrites are all reachable, not just send-a-message.
What it is
A Discord bot exposed as an MCP server, built on JDA. It covers most of what a server admin does through the Discord UI.
What you get
- Messages — send_message, edit_message, delete_message, read_messages with cursors and a count from 1 to 100, add_reaction and remove_reaction
- Direct messages — send_private_message, edit_private_message, delete_private_message, read_private_messages, and get_user_id_by_name for pings
- Channels and categories — create_text_channel, edit_text_channel, delete_channel, move_channel, find_channel, list_channels, get_channel_info, plus create_category, edit_category, delete_category, find_category and list_channels_in_category
- Roles and moderation — list_roles, create_role, edit_role, delete_role, assign_role, remove_role, kick_member, ban_member, unban_member, get_bans, timeout_member, remove_timeout and set_nickname
- Voice and stage — create_voice_channel, create_stage_channel, edit_voice_channel, move_member, disconnect_member and modify_voice_state
- Scheduled events — create_guild_scheduled_event, edit_guild_scheduled_event, delete_guild_scheduled_event, list_guild_scheduled_events and get_guild_scheduled_event_users
- Permission overwrites — list_channel_permission_overwrites, upsert_role_channel_permissions, upsert_member_channel_permissions and delete_channel_permission_overwrite
- Invites, webhooks, forums and emojis — including create_forum_post, list_forum_posts, modify_forum_post and create_emoji
- get_server_info for the server itself
Requirements
A Discord bot token in DISCORD_TOKEN. Run the published Docker image with SPRING_PROFILES_ACTIVE set to http; the endpoint is http://localhost:8085/mcp, with a health check at /actuator/health. Setting DISCORD_GUILD_ID is optional but makes the guildId parameter optional on every tool — worth doing if you only run one server. A stdio mode exists for legacy clients but starts a container per session.
Setup effort
Follow the published steps — export DISCORD_TOKEN="YOUR_DISCORD_BOT_TOKEN"
USE CASES
Restructuring a server's channels
Create categories, move channels into them and fix positions, without dragging anything.
Handling a moderation incident
Time out a member, then remove the timeout early once it is resolved — or ban and check the ban list with reasons.
Setting up an event and seeing who is interested
Schedule it, then read the list of users who marked interest.
Catching up on a busy channel
Read message history around a cursor, attachment metadata included, in pages of up to 100.
73 tools
Listed in project docs. Your client may show a different list.
get_user_id_by_namesend_private_messageedit_private_messagedelete_private_messageread_private_messagessend_messageedit_messagedelete_messageread_messagesadd_reactionremove_reactioncreate_text_channeledit_text_channeldelete_channelfind_channellist_channelsget_channel_infomove_channelcreate_categoryedit_categorydelete_categoryfind_categorylist_channels_in_categorycreate_webhookdelete_webhooklist_webhookssend_webhook_messagelist_rolescreate_roleedit_roledelete_roleassign_roleremove_rolekick_memberban_memberunban_membertimeout_memberremove_timeoutset_nicknameget_banscreate_voice_channelcreate_stage_channeledit_voice_channelmove_memberdisconnect_membermodify_voice_statecreate_guild_scheduled_eventedit_guild_scheduled_eventdelete_guild_scheduled_eventlist_guild_scheduled_eventsget_guild_scheduled_event_userslist_channel_permission_overwritesupsert_role_channel_permissionsupsert_member_channel_permissionsdelete_channel_permission_overwritecreate_invitelist_invitesdelete_inviteget_invite_detailscreate_forum_channeledit_forum_channellist_forum_channelsget_forum_channel_infolist_forum_tagscreate_forum_postlist_forum_postsmodify_forum_postlist_emojisget_emoji_detailscreate_emojiedit_emojidelete_emojiBEFORE YOU INSTALL
What to know first
Tools you get
73 tools named in the project's documentation. Setting DISCORD_GUILD_ID makes guildId optional. Tools can ban, kick and time out members and delete channels, roles and emojis.
Requires
- Docker
- DISCORD_TOKEN in your environment
INSTALLATION
Connect your client
Server setup
export DISCORD_TOKEN="<YOUR_DISCORD_TOKEN>"
export DISCORD_GUILD_ID="OPTIONAL_DEFAULT_SERVER_ID"
export SPRING_PROFILES_ACTIVE=http
docker run -d -i --name discord-mcp --restart unless-stopped -p 8085:8085 -e SPRING_PROFILES_ACTIVE -e DISCORD_TOKEN -e DISCORD_GUILD_ID saseq/discord-mcp:latestPoint your client at http://localhost:8085/mcp
MCP Clients
Any MCP client — HTTP
{
"mcpServers": {
"discord-mcp": {
"url": "http://localhost:8085/mcp"
}
}
}Claude Desktop — Docker, Any MCP client — Docker
{
"mcpServers": {
"discord-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"DISCORD_TOKEN=<YOUR_DISCORD_BOT_TOKEN>",
"-e",
"DISCORD_GUILD_ID=<YOUR_DISCORD_GUILD_ID>",
"saseq/discord-mcp:latest"
]
}
}
}Claude Code
claude mcp add discord-mcp --transport http http://localhost:8085/mcpCodex
codex mcp add discord-mcp --url http://localhost:8085/mcpOpenClaw
{
"mcp": {
"servers": {
"discord-mcp": {
"url": "http://localhost:8085/mcp",
"transport": "streamable-http"
}
}
}
}~/.openclaw/config.json
Cursor
{
"mcpServers": {
"discord-mcp": {
"url": "http://localhost:8085/mcp"
}
}
}~/.cursor/mcp.json or .cursor/mcp.json