Discord MCP服务器

一个基于Go语言开发的快速、健壮且可扩展的Discord模型上下文协议(MCP)服务器,支持高级自动化、审核和集成功能。

  • by ReesavGupta
  • Go
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 ReesavGupta/discord-mcp-server

使用说明

断开MCP服务器

一个用Go编写的Discord快速、健壮且可扩展的模型上下文协议(MCP)服务器。该项目通过标准化的JSON-RPC 2.0接口实现了高级自动化、审核和与Discord服务器的集成。它专为与Claude Desktop和其他MCP兼容客户端一起使用而设计。


特性

  • Discord Bot集成:作为机器人连接到Discord,支持消息发送、检索、审核和频道信息。
  • MCP协议:实现用于标准化工具、资源和提示管理的模型上下文协议(MCP)。
  • JSON-RPC 2.0:通过stdio上的JSON-RPC 2.0进行通信,便于集成。
  • 认证:支持JWT和API密钥验证,并提供可选的审核日志记录。
  • 可扩展工具:用于发送消息、搜索、审核等的内置工具。
  • 可配置的:基于YAML的配置,带有环境变量覆盖。
  • 日志记录:支持文件和JSON/文本格式的结构化日志记录。
  • 测试:包括单元测试和覆盖率报告。
  • 多租户技术:支持多个Discord机器人和服务器。
  • 速率限制和监控:可选支持速率限制和度量。

目录


设置

看 docs/setup.md 详细的分步指南,包括Discord机器人创建、权限和环境设置。

快速开始

# Clone repository
git clone https://github.com/yourusername/discord-mcp-server.git
cd discord-mcp-server

# Install dependencies
make deps

# Build the server
make build

# Copy and edit config
cp configs/config.yaml.example configs/config.yaml
# Or edit configs/config.yaml directly

# Run the server
./bin/discord-mcp-server -config configs/config.yaml

配置

  • 主要配置: configs/config.yaml (YAML,支持env变量)
  • 环境: .env 文件或系统环境变量
  • 克劳德桌面: 看 configs/claude_desktop_config.json 用于集成

配置示例:

server:
  name: "discord-mcp-server"
  version: "1.0.0"
  environment: "production"
discord:
  bot_token: "${DISCORD_BOT_TOKEN}"
  guild_id: "${DISCORD_GUILD_ID}"
auth:
  jwt_secret: "${JWT_SECRET}"
  api_keys:
    - "${API_KEY_1}"
  enable_audit: true
logging:
  level: "info"
  format: "json"
  file_path: "logs/server.log"
mcp:
  protocol_version: "2024-11-05"
  transport: "stdio"
  debug: false

用法

服务器作为后台进程运行,并通过stdio(用于Claude Desktop)进行通信,也可以扩展用于其他传输。

支持的工具(通过MCP)

  • send_message:向Discord频道发送消息
  • get_messages:检索消息历史记录
  • get_channel_info:获取频道元数据
  • search_messages:使用筛选器(内容、用户、时间)搜索邮件
  • moderate_content:删除消息,踢/封用户

请参阅中的MCP工具模式 internal/mcp/handlers.go 了解详情。


测试

# Run all tests
make test

# Run with coverage
make test-coverage
# Coverage report: coverage.html

故障排除

  • Bot没有响应:检查机器人令牌、权限和日志
  • 权限不足:确保bot具有所需的Discord权限
  • 连接失败:验证公会ID和机器人邀请
  • 认证失败:检查API密钥和JWT机密
  • 调试日志:设置 logging.level: debug 在配置中

安全最佳实践

  • 永远不要将秘密提交给版本控制
  • 对敏感数据使用环境变量
  • 定期旋转API键
  • 在生产中启用审核日志记录
  • 使用强JWT机密(32+个字符)
  • 将机器人程序权限限制在所需的最小值
  • 监控日志以发现可疑活动

贡献

欢迎投稿!请打开问题或拉取请求。看 docs/setup.md 用于开发设置。


许可证

MIT许可证。看 许可证 了解详情。


致谢