Discord MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GATEWAY | No | Set to 0 to turn off the live Discord gateway connection. | |
| MCP_TOKEN | No | Password required for HTTP mode when running outside of localhost. | |
| DISCORD_TOKEN | Yes | The token of the Discord account used by the server. | |
| SOMENTE_LEITURA | No | Set to 1 to enable read only mode, blocking any action that writes something. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| logging | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| discord_statusA | Mostra a conta conectada (sem dados sensiveis), o modo (user/bot), o gateway ao vivo, canais vigiados, cursores, limites e estatisticas. Responde mesmo com o token invalido. |
| read_protocolA | Devolve o protocolo de atendimento escrito pelo usuario (protocolo.md ou variavel PROTOCOLO): regras, precos, prazos, tom, o que pode ou nao prometer. Leia antes de responder clientes. |
| inboxA | Lista o que chegou e ainda nao foi tratado: DMs novas, mencoes a conta, canais vigiados e eventos do gateway, agrupados por conversa e com channelId/messageId prontos para reply_message. Mensagens da propria conta nao contam. Sem cursor, considera as ultimas "hours" horas. |
| list_dmsA | Lista as conversas diretas (DMs e grupos) da conta, da mais recente para a mais antiga, com channelId, participantes, ultima mensagem e se ha algo nao tratado. So em modo user. |
| list_guildsB | Lista os servidores em que a conta esta, com id, nome, dono e contagens (quando disponiveis). |
| list_channelsA | Lista os canais de um servidor agrupados por categoria: id, tipo (text, forum, announcement, voice...), topico e ultima mensagem. Pode incluir canais sem acesso; read_messages responde FORBIDDEN nesses. |
| get_channelA | Devolve os dados de um canal, DM ou thread: tipo, nome, topico, servidor, participantes, pai, metadados de thread. |
| list_threadsA | Lista threads/posts de um canal de texto ou forum (ativos por padrao; archived=true para arquivados), com id, nome, autor, quantidade de mensagens e ultima atividade. Cada post de forum e uma thread: leia com read_messages channelId=. |
| read_messagesC | Le mensagens de um canal, DM ou thread (mais recentes primeiro, devolvidas em ordem cronologica). before/after/around paginam por id de mensagem. markRead=true marca a conversa como tratada ate a ultima mensagem lida. |
| get_messageB | Busca uma mensagem especifica pelo id (com fallback para busca ao redor do id em modo user). |
| search_messagesA | Procura mensagens por texto, autor ou tipo de conteudo em um servidor (guildId) ou em uma DM (channelId). So em modo user. O indice do Discord pode demorar (SEARCH_INDEXING com retryAfterMs). |
| send_messageA | Envia uma mensagem em um canal, DM ou thread. replyTo= transforma em resposta a uma mensagem (igual a reply_message). Marca a conversa como tratada. Recusa duplicatas, textos acima de 2000 caracteres (sem split) e excesso de envios por minuto. |
| reply_messageA | Responde a uma mensagem especifica (a resposta sai com referencia a ela). Escolha a mensagem pelo messageId devolvido por inbox/read_messages. Marca a conversa como tratada e recusa responder duas vezes a mesma mensagem. |
| edit_messageB | Edita o texto de uma mensagem enviada por esta conta. |
| delete_messageA | Apaga uma mensagem desta conta (ou de outros, se a conta tiver permissao de moderacao no canal). Irreversivel. |
| add_reactionA | Adiciona (ou remove, com remove=true) uma reacao da conta em uma mensagem. emoji aceita unicode ("👍") ou emoji personalizado no formato nome:id. |
| open_dmA | Abre (ou reabre) a conversa direta com um usuario e devolve o channelId para read_messages/send_message. Nao envia nada. |
| mark_readA | Marca uma conversa como tratada ate uma mensagem (padrao: a ultima conhecida): avanca o cursor local (sai do inbox) e faz ack no Discord. Use quando decidir nao responder. |
| watch_channelA | add: tudo o que chegar em um canal de servidor passa a aparecer no inbox, mesmo sem mencao. remove: para de vigiar. list (padrao): mostra os canais vigiados. A lista e persistida. |
| join_threadA | Entra em uma thread ou post de forum (leave=true sai). Entrar e necessario em algumas threads para aparecer como participante e receber eventos ao vivo. |
| create_threadA | Em um forum: cria um post (name + content obrigatorios, tags opcionais). Em um canal de texto: com messageId abre uma thread a partir daquela mensagem; sem messageId cria uma thread publica avulsa (content vira a primeira mensagem). |
| join_inviteA | Mostra os dados de um convite (servidor, canal, membros). Com accept=true entra no servidor com esta conta. Entrar pela API pode exigir captcha (CAPTCHA_REQUIRED): o usuario precisa aceitar pelo aplicativo oficial. |
| get_userA | Dados publicos de um usuario (nome, apelido global, bot?, criado em) e, em modo user, bio e servidores em comum. Com guildId, inclui apelido, cargos e data de entrada naquele servidor. |
| friendsA | list (padrao): amigos e pedidos pendentes (recebidos/enviados) e bloqueados. accept userId=: aceita um pedido recebido. remove userId=: remove amizade ou recusa/cancela pedido. So em modo user. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 24 tools
Tools target distinct resources and actions across messages, channels, guilds, threads, and DMs. Minor overlap exists (send_message vs reply_message; read_messages markRead vs mark_read), but descriptions clarify the intended use.
Almost all names use snake_case and follow a verb_noun pattern (list_channels, send_message, get_user). Deviations are minor: inbox and friends are noun-only, and discord_status prefixes the domain rather than using a verb.
24 tools is on the heavy side, but each covers a distinct Discord operation and multi-mode tools (watch_channel, friends) consolidate related actions. The scope justifies the count; it is not artificially inflated.
Core lifecycle is covered: read/send/reply/edit/delete messages, reactions, threads, DMs, guilds, invites, friends, inbox, and watch. Gaps exist in attachments/embeds, channel/role management, and thread archival/deletion, but these are outside the apparent text-atendimento focus.