Discord MCP
Um servidor MCP para interagir com servidores do Discord.
Documentação
Servidor Discord MCP
Um servidor Model Context Protocol (MCP) de nível de produção para Discord, construído com FastMCP e discord.py. Fornece uma superfície de API completa para gerenciar canais, cargos, permissões, mensagens, moderação e configurações do servidor via MCP.
Recursos
- Sessões de bot por token com gerenciamento automático de sessão
- Gerenciamento de canais: criar, editar, excluir, mover e reordenar por posição
- Gerenciamento de cargos: criar, editar (incluindo posição), excluir, atribuir, remover
- Configuração de permissões para canais, categorias e cargos
- Inspeção de permissões "Visualizar como cargo/membro" em guild e canais
- Operações de mensagens: enviar, editar, excluir, excluir em massa, recuperar
- Ações de moderação: timeout, expulsar, banir, aplicar políticas de cargos
- Gerenciamento de configurações do servidor/guild
- Enquetes: criar, encerrar e obter resultados
- Eventos agendados: criar, editar, excluir, listar, obter participantes
- Threads e fóruns: criar, editar, excluir, gerenciar membros, posts de fórum
- Webhooks: criar, enviar mensagens, listar, excluir
- Convites: criar, listar, excluir
- Emojis e figurinhas: criar, excluir, listar
- Reações: adicionar, remover, listar usuários, limpar
- AutoMod: criar, editar, excluir, listar regras
- Registro de auditoria: consulta com filtros
- Informações de membros: obter detalhes, listar membros, editar apelidos/mutar/surdez
- Endpoints de status para sessões de bot
Instalação
uv sync
Configuração
Copie o arquivo de modelo .env e modifique conforme necessário:
cp .env.template .env
O bind padrão é somente local:
MCP_HOST=127.0.0.1
MCP_PORT=8000
Uso
Execute o servidor MCP localmente:
uv run python -m discord_mcp.main
Ou use sem configuração local:
uv run --with git+https://github.com/ExilProductions/discord-mcp discord-mcp
Exemplo de Configuração do Cliente MCP
Exemplo de configuração para OpenCode usando um servidor MCP remoto:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"discord-mcp": {
"type": "remote",
"url": "http://localhost:8000/mcp",
"enabled": true,
"headers": {
"Authorization": "YOUR_DISCORD_BOT_TOKEN"
}
}
}
}
Isso pode ser usado por qualquer cliente que suporte MCP.
Ferramentas MCP
Gerenciamento de Canais
create_channel- Criar um canal de texto, voz, notícias, palco, fórum, mídia ou categoriaedit_channel- Editar as configurações de um canaldelete_channel- Excluir um canalmove_channel- Mover canal para uma categoriaedit_channelcomposition- Reordenar canais/categoriasget_channel- Obter informações do canalget_channels- Listar todos os canais na guild
Gerenciamento de Cargos
create_role- Criar um novo cargoedit_role- Editar um cargo (incluindopositionpara reordenar)delete_role- Excluir um cargoassign_role- Atribuir cargo a um membroremove_role- Remover cargo de um membroget_role- Obter informações do cargoget_roles- Listar todos os cargos na guild
Gerenciamento de Permissões
set_channel_permissions- Definir permissões do canalset_category_permissions- Definir permissões da categoriaset_role_permissions- Atualizar permissões do cargoget_channel_permissions- Obter substituições de permissão do canalget_category_permissions- Obter substituições de permissão da categoriaremove_channel_permissions- Remover substituições de permissãoinspect_role_permissions- Resumo de permissões do cargo compacto por padrão (contagens, prévias, capacidades principais)inspect_member_permissions- Resumo de permissões do membro compacto por padrão (contagens, prévias, capacidades principais)inspect_target_channel_permissions- Permissões efetivas completas para um alvo em um canal (detalhamento)list_target_accessible_channels- Lista compacta de canais que um cargo/membro pode acessarlist_target_inaccessible_channels- Lista compacta de canais que um cargo/membro não pode acessar
A inspeção de permissões é otimizada para fluxos de trabalho de agentes de IA: chame as ferramentas de resumo primeiro e solicite detalhes do canal somente quando necessário.
Operações de Mensagens
send_message- Enviar uma mensagem (suporta embeds, TTS, menções, referências)edit_message- Editar uma mensagemdelete_message- Excluir uma mensagembulk_delete_messages- Excluir mensagens em massaget_message- Obter uma mensagemget_channel_messages- Obter histórico de mensagens do canal
Moderação
timeout_user- Aplicar timeout a um membroremove_timeout- Remover timeout de um membrokick_user- Expulsar um membroban_user- Banir um membrounban_user- Desbanir um membroenforce_role_policy- Aplicar política de cargos (expulsar/banir membros sem cargos obrigatórios)get_guild_bans- Listar banimentos da guildget_member_timeout_status- Verificar status de timeout
Gerenciamento da Guild
get_guild_settings- Obter configurações do servidor (nome, descrição, nível de verificação, etc.)edit_guild_settings- Editar configurações do servidor
Enquetes
create_poll- Criar uma enquete em um canalend_poll- Encerrar uma enquete ativaget_poll_results- Obter contagens de votos e resultados da enquete
Eventos Agendados
create_scheduled_event- Criar um evento agendado (voz, palco ou externo)edit_scheduled_event- Editar um evento agendadodelete_scheduled_event- Excluir um evento agendadolist_scheduled_events- Listar todos os eventos agendados em uma guildget_scheduled_event_users- Obter usuários interessados em um evento
Threads e Fóruns
create_thread- Criar uma thread (opcionalmente a partir de uma mensagem)edit_thread- Editar configurações da thread (nome, arquivar, bloquear, slowmode)delete_thread- Excluir uma threadlist_threads- Listar threads ativas e arquivadas em um canaladd_thread_member- Adicionar um membro a uma threadremove_thread_member- Remover um membro de uma threadcreate_forum_post- Criar um post de fórum com tags
Webhooks
create_webhook- Criar um webhook para um canalsend_webhook_message- Enviar uma mensagem via webhooklist_webhooks- Listar webhooks de uma guild ou canaldelete_webhook- Excluir um webhook
Convites
create_invite- Criar um convite de canallist_invites- Listar todos os convites da guilddelete_invite- Excluir um convite
Emojis e Figurinhas
create_emoji- Criar um emoji personalizadodelete_emoji- Excluir um emoji personalizadolist_emojis- Listar todos os emojis personalizados em uma guildlist_stickers- Listar todas as figurinhas em uma guild
Reações
add_reaction- Adicionar uma reação a uma mensagemremove_reaction- Remover uma reação de uma mensagemget_reaction_users- Obter usuários que reagiram com um emoji específicoclear_reactions- Limpar todas ou reações específicas de uma mensagem
AutoMod
create_automod_rule- Criar uma regra de automod (palavras-chave, spam, predefinição, spam de menções)edit_automod_rule- Editar uma regra de automoddelete_automod_rule- Excluir uma regra de automodlist_automod_rules- Listar todas as regras de automod em uma guild
Registro de Auditoria
get_audit_log- Consultar registro de auditoria com filtros (usuário, tipo de ação, limite)
Membros
get_member_info- Obter informações detalhadas do perfil do membrolist_members- Listar membros da guildedit_member- Editar membro (apelido, mutar, surdez)
Status
get_bot_status- Obter status do bot e informações da sessão