Discord MCP服务

一个基于Model Context Protocol(MCP)的服务器,使AI代理能够通过Discord API与Discord交互,提供管理Discord服务器、频道、消息和用户的工具。

  • by astrelya
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 astrelya/mcp-discord

使用说明

断开MCP服务器

模型上下文协议(MCP)服务器,使人工智能代理能够通过Discord API与Discord交互。此服务器提供了一套全面的工具来管理Discord服务器、频道、消息和用户。

特性

可用工具

  • send_message -向Discord频道发送消息
  • 获取消息 -从频道检索最近的消息
  • get_channel_info -获取有关频道的详细信息
  • get_server_info -获取有关Discord服务器的详细信息
  • list_server -列出机器人连接的所有服务器
  • list_channels -列出特定服务器中的所有频道

可用资源

  • discord://servers -包含所有连接的Discord服务器的JSON资源

先决条件

  1. Node.js (版本18或更高)
  2. Discord Bot令牌 -在以下位置创建机器人应用程序 Discord开发者门户

设置

1.安装依赖项

npm install

2.配置Discord Bot

  1. 转到 Discord开发者门户
  2. 创建新应用程序或选择现有应用程序
  3. 转到“Bot”部分并创建一个Bot
  4. 复制机器人令牌
  5. 创建一个 .env 项目根目录中的文件:
cp .env.example .env
  1. 编辑 .env 并添加您的Discord机器人令牌:
DISCORD_TOKEN=your_discord_bot_token_here

3.机器人权限

您的Discord机器人需要以下权限:

  • Send Messages
  • Read Message History
  • View Channels
  • Use Slash Commands (可选)

使用这些权限将机器人邀请到您的Discord服务器。

4.建设项目

npm run build

用法

运行服务器

npm start

对于自动重建的开发:

npm run watch

与MCP客户端一起使用

此服务器实现了模型上下文协议,可以与任何兼容MCP的客户端一起使用。配置您的客户端以使用stdio传输连接到此服务器。

MCP配置示例:

{
  "servers": {
    "discord-mcp-server": {
      "type": "stdio",
      "command": "node",
      "args": ["dist/index.js"]
    }
  }
}

环境变量

  • DISCORD_TOKEN (必填)-您的Discord机器人令牌

工具示例

发送信息

{
  "name": "send_message",
  "arguments": {
    "channelId": "123456789012345678",
    "content": "Hello from the MCP Discord server!"
  }
}

获取最新消息

{
  "name": "get_messages",
  "arguments": {
    "channelId": "123456789012345678",
    "limit": 5
  }
}

列出服务器

{
  "name": "list_servers",
  "arguments": {}
}

发展

项目结构

src/
├── index.ts          # Main MCP server implementation
├── types/            # TypeScript type definitions
└── utils/            # Utility functions

.vscode/
├── mcp.json          # MCP server configuration
└── tasks.json        # VS Code build tasks

.github/
└── copilot-instructions.md  # GitHub Copilot instructions

添加新工具

  1. 使用Zod定义输入模式
  2. 在中添加工具定义 setupToolHandlers()
  3. 实现处理程序方法
  4. 用文档更新此README

测试

设置您的 .env 文件并运行:

npm run dev

使用MCP客户端或通过检查日志来测试服务器。

安全考虑

  • 永远不要将您的Discord机器人令牌提交给版本控制
  • 对所有敏感配置使用环境变量
  • 使用Zod模式验证所有输入
  • 为Discord API调用实现正确的错误处理
  • 考虑生产使用的速率限制

故障排除

常见问题

  1. Bot没有响应

    • 验证Discord令牌是否正确
    • 检查机器人在服务器中是否具有适当的权限
    • 确保机器人在Discord服务器中联机
  2. 未找到通道错误

    • 验证通道ID是否正确
    • 检查机器人是否可以访问该频道
    • 确保频道存在且未被删除
  3. 权限错误

    • 查看Discord服务器中的机器人权限
    • 检查机器人角色在层次结构中是否足够高
    • 验证特定频道的权限

贡献

  1. 复刻仓库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

ISC许可证-有关详细信息,请参阅许可证文件

资源