discord-admin-mcp
Provides comprehensive administrative tools for Discord servers, allowing interaction with Discord's API to manage members (kick, ban, timeout), roles, channels, messages, and audit logs.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@discord-admin-mcpcreate a #announcements channel in the Comercial category"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
discord-admin-mcp
Servidor MCP em Python para administrar servidores Discord a partir do Claude Code (ou qualquer cliente MCP). Usa a API REST v10 do Discord através do seu próprio bot.
Ferramentas
Área | Ferramentas |
Leitura |
|
Canais |
|
Cargos |
|
Membros |
|
Mensagens e convites |
|
As ações aceitam reason, que é registrado no audit log do servidor. Ferramentas destrutivas indicam na descrição que o assistente deve confirmar com você antes de executar.
Related MCP server: Discord MCP
Requisitos
Python 3.11+
1. Criar o bot
Acesse o Discord Developer Portal e clique em New Application.
Na aba Bot:
ative Server Members Intent;
clique em Reset Token e copie o token (formato
xxxx.yyyy.zzzz, ~70 caracteres — não confunda com o Client Secret da aba OAuth2).
(Opcional, recomendado) Para que só você possa instalar o bot: em Installation, defina Install Link como None; depois, em Bot, desmarque Public Bot.
2. Configurar o token
Nunca coloque o token no código nem faça commit dele.
Windows:
setx DISCORD_BOT_TOKEN "seu-token"Linux/macOS:
export DISCORD_BOT_TOKEN="seu-token"Ou copie .env.example para .env e carregue-o no seu shell (o .env está no .gitignore).
3. Instalar
git clone <url-deste-repositorio>
cd discord-cli
uv syncTeste a conexão:
uv run python -c "import discord_admin_mcp as d; print(d.whoami())"4. Convidar o bot para o servidor
Troque SEU_CLIENT_ID pelo Application ID do seu app:
https://discord.com/oauth2/authorize?client_id=SEU_CLIENT_ID&scope=bot&permissions=1099914357943Esse valor concede apenas permissões de gestão (sem Administrador): ver audit log, gerenciar servidor, cargos, canais, apelidos e mensagens, expulsar, banir, moderar (castigo), criar convites, ver canais, enviar mensagens e ler histórico.
Depois de autorizar, em Configurações do servidor → Cargos, arraste o cargo do bot para acima dos cargos que ele deve gerenciar — o Discord só permite que o bot altere cargos e membros abaixo dele.
5. Registrar no Claude Code
claude mcp add discord-admin --scope user -- uv --directory /caminho/para/discord-cli run discord-admin-mcpAbra uma nova sessão e peça, por exemplo: "liste os membros sem cargo" ou "crie o canal #avisos na categoria Comercial".
Outros clientes MCP
{
"mcpServers": {
"discord-admin": {
"command": "uv",
"args": ["--directory", "/caminho/para/discord-cli", "run", "discord-admin-mcp"],
"env": { "DISCORD_BOT_TOKEN": "seu-token" }
}
}
}Segurança
O token só é lido da variável de ambiente
DISCORD_BOT_TOKEN.Quem tem o token controla o bot com todas as permissões dele. Se vazar, use Reset Token no portal imediatamente.
Conceda ao bot só as permissões necessárias e posicione o cargo dele com cuidado.
Contribuindo
Issues e pull requests são bem-vindos.
Licença
Available Tools
28 toolsadd_roleC
Atribui um cargo a um membro.
Inputs: role_id (required), user_id (required), guild_id (required), reason.
audit_logC
Últimas entradas do registro de auditoria.
Inputs: guild_id (required), limit, user_id, action_type. Returns: result
ban_memberC
BANE um membro. Confirme com o usuário antes.
Inputs: user_id (required), guild_id (required), reason, delete_message_seconds.
create_channelC
Cria canal. type: 0=texto, 2=voz, 4=categoria, 5=anúncios, 15=fórum.
Inputs: name (required), guild_id (required), type, topic, +2 more.
create_inviteC
Cria convite (max_age em segundos, 0 = nunca expira; max_uses 0 = ilimitado).
Inputs: channel_id (required), max_age, max_uses, temporary.
create_roleD
Cria um cargo.
Inputs: name (required), guild_id (required), color, hoist, +3 more.
delete_channelA
APAGA um canal permanentemente. Confirme com o usuário antes.
Inputs: channel_id (required), reason.
delete_inviteC
Revoga um convite.
Inputs: code (required), reason.
delete_messageC
APAGA uma mensagem. Confirme com o usuário antes.
Inputs: channel_id (required), message_id (required), reason.
delete_roleB
APAGA um cargo. Confirme com o usuário antes.
Inputs: role_id (required), guild_id (required), reason.
edit_channelC
Edita nome, tópico, categoria ou posição de um canal.
Inputs: channel_id (required), name, topic, reason, +2 more.
edit_roleD
Edita um cargo.
Inputs: role_id (required), guild_id (required), name, color, +4 more.
get_guildC
Detalhes de um servidor (nome, dono, contagem aproximada de membros).
Inputs: guild_id (required).
kick_memberC
EXPULSA um membro. Confirme com o usuário antes.
Inputs: user_id (required), guild_id (required), reason.
list_bansC
Lista usuários banidos.
Inputs: guild_id (required). Returns: result
list_channelsC
Lista canais e categorias. type: 0=texto, 2=voz, 4=categoria, 5=anúncios, 15=fórum.
Inputs: guild_id (required). Returns: result
list_invitesC
Lista convites ativos.
Inputs: guild_id (required). Returns: result
list_membersA
Lista membros (até 1000 por chamada; use after com o último id para paginar).
Inputs: guild_id (required), after, limit. Returns: result
list_rolesC
Lista cargos com posição e permissões.
Inputs: guild_id (required). Returns: result
read_messagesB
Lê as mensagens mais recentes de um canal (máx. 100).
Inputs: channel_id (required), limit. Returns: result
remove_roleC
Remove um cargo de um membro.
Inputs: role_id (required), user_id (required), guild_id (required), reason.
search_membersC
Busca membros cujo nome ou apelido começa com query.
Inputs: query (required), guild_id (required), limit. Returns: result
send_messageC
Envia mensagem num canal como o bot.
Inputs: content (required), channel_id (required).
set_channel_permissionB
Define override de permissão no canal. target_type: 0=cargo, 1=membro. allow/deny são bitfields.
Inputs: target_id (required), channel_id (required), target_type (required), deny, +2 more.
set_nicknameB
Define (ou limpa, com null) o apelido de um membro.
Inputs: nick (required), user_id (required), guild_id (required), reason.
timeout_memberB
Silencia (castigo) um membro até a data ISO 8601 (máx. 28 dias). null remove o castigo.
Inputs: user_id (required), guild_id (required), until_iso (required), reason.
unban_memberC
Remove o banimento de um usuário.
Inputs: user_id (required), guild_id (required), reason.
whoamiB
Mostra o usuário do bot e os servidores onde ele está.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
TDQS
Scored across 28 tools
Each tool targets a distinct resource+action pair: channel CRUD, role CRUD, role assignment (add_role/remove_role), member moderation (kick/ban/unban/timeout), and message operations are all clearly separated. Minor overlap exists between list_members/search_members and between set_channel_permission and the role tools, but the descriptions make the boundaries clear enough to choose correctly.
The dominant pattern is a consistent verb_noun snake_case convention (delete_channel, kick_member, create_role, delete_invite, send_message). Two outliers — 'whoami' and 'audit_log' — break the pattern, but everything else is predictable.
28 tools is slightly above the comfortable range, and the surface covers many sub-domains (members, channels, roles, messages, invites, moderation). Nearly every tool does correspond to a real, distinct Discord operation, so it is heavy but not padded.
Core lifecycles are covered: channel create/edit/delete/list, role create/edit/delete plus assign/remove, member kick/ban/unban/timeout/nickname, message read/send/delete, and invite create/list/delete, plus audit log and permission overrides. Gaps include message edit/pin, single-member fetch (get_member), and guild-level settings, which agents would have to work around.
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Hosted MCP server to manage a restaurant menu from AI agents - 39 tools over the DuckHub API.
A MCP server built for developers enabling Git based project management with project and personal…
An MCP server that integrates with Discord to provide AI-powered features.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that enables LLMs to control Discord servers via a bot token, providing comprehensive management tools for messages, members, roles, channels, permissions, and more.6781 npmMIT
- FlicenseCqualityDmaintenanceAn MCP server that exposes Discord bot actions as tools for LLM clients.291-
- AlicenseAqualityDmaintenanceMCP server over the real Discord REST API: 5 read-only tools plus 7 write tools gated off by default behind DISCORD_MCP_ENABLE_WRITE.121MIT
- AlicenseBqualityCmaintenanceLocal MCP server for inspecting and managing an allowlisted Discord server via Discord's REST API, with safety modes, idempotent JSON blueprints, and destructive-operation safeguards.271MIT