Discord MCP Server

Interaja com canais do Discord para enviar e ler mensagens usando a API do Discord.

Documentação

Servidor MCP do Discord

Um servidor Model Context Protocol (MCP) que permite que LLMs interajam com canais do Discord, permitindo que enviem e leiam mensagens por meio da API do Discord. Usando este servidor, LLMs como o Claude podem interagir diretamente com canais do Discord, mantendo o controle e a segurança do usuário.

Recursos

  • Enviar mensagens para canais do Discord
  • Ler mensagens recentes de canais
  • Descoberta automática de servidores e canais
  • Suporte para nomes e IDs de canais
  • Tratamento adequado de erros e validação

Pré-requisitos

  • Node.js 16.x ou superior
  • Um token de bot do Discord
  • O bot deve ser convidado para o seu servidor com as permissões adequadas:
    • Ler Mensagens/Ver Canais
    • Enviar Mensagens
    • Ler Histórico de Mensagens

Configuração

  1. Clone este repositório:
git clone https://github.com/yourusername/discordmcp.git
cd discordmcp
  1. Instale as dependências:
npm install
  1. Crie um arquivo .env no diretório raiz com o token do seu bot do Discord:
DISCORD_TOKEN=your_discord_bot_token_here
  1. Compile o servidor:
npm run build

Uso com o Claude para Desktop

  1. Abra o arquivo de configuração do Claude para Desktop:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json
  2. Adicione a configuração do servidor MCP do Discord:

{
  "mcpServers": {
    "discord": {
      "command": "node",
      "args": ["path/to/discordmcp/build/index.js"],
      "env": {
        "DISCORD_TOKEN": "your_discord_bot_token_here"
      }
    }
  }
}
  1. Reinicie o Claude para Desktop

Ferramentas Disponíveis

send-message

Envia uma mensagem para um canal específico do Discord.

Parâmetros:

  • server (opcional): Nome ou ID do servidor (obrigatório se o bot estiver em vários servidores)
  • channel: Nome do canal (ex.: "geral") ou ID
  • message: Conteúdo da mensagem a ser enviada

Exemplo:

{
  "channel": "general",
  "message": "Hello from MCP!"
}

read-messages

Lê mensagens recentes de um canal específico do Discord.

Parâmetros:

  • server (opcional): Nome ou ID do servidor (obrigatório se o bot estiver em vários servidores)
  • channel: Nome do canal (ex.: "geral") ou ID
  • limit (opcional): Número de mensagens a buscar (padrão: 50, máximo: 100)

Exemplo:

{
  "channel": "general",
  "limit": 10
}

Desenvolvimento

  1. Instale as dependências de desenvolvimento:
npm install --save-dev typescript @types/node
  1. Inicie o servidor em modo de desenvolvimento:
npm run dev

Testes

Você pode testar o servidor usando o MCP Inspector:

npx @modelcontextprotocol/inspector node build/index.js

Exemplos

Aqui estão alguns exemplos de interações que você pode tentar com o Claude após configurar o servidor MCP do Discord:

  1. "Você pode ler as últimas 5 mensagens do canal geral?"
  2. "Por favor, envie uma mensagem para o canal de anúncios dizendo 'A reunião começa em 10 minutos'"
  3. "Quais foram as mensagens mais recentes no canal de desenvolvimento sobre o último lançamento?"

O Claude usará as ferramentas apropriadas para interagir com o Discord, solicitando sua aprovação antes de enviar qualquer mensagem.

Considerações de Segurança

  • O bot requer permissões adequadas do Discord para funcionar
  • Todas as operações de envio de mensagens exigem aprovação explícita do usuário
  • As variáveis de ambiente devem ser protegidas adequadamente
  • O token nunca deve ser commitado no controle de versão
  • O acesso aos canais é limitado aos canais aos quais o bot recebeu acesso

Contribuindo

  1. Faça um fork do repositório
  2. Crie sua branch de recurso (git checkout -b feature/amazing-feature)
  3. Faça commit das suas alterações (git commit -m 'Add some amazing feature')
  4. Envie para a branch (git push origin feature/amazing-feature)
  5. Abra um Pull Request

Licença

Este projeto está licenciado sob a Licença MIT - consulte o arquivo LICENSE para obter detalhes.

Suporte

Se você encontrar problemas ou tiver dúvidas:

  1. Verifique a seção de Issues do GitHub
  2. Consulte a documentação do MCP em https://modelcontextprotocol.io
  3. Abra uma nova issue com etapas detalhadas de reprodução