使用说明
断开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许可证。看 许可证 了解详情。
