断开MCP服务器
模型上下文协议(MCP)服务器,使LLM能够与Discord频道交互,允许它们通过Discord的API发送和读取消息。使用此服务器,像Claude这样的LLM可以直接与Discord通道交互,同时保持用户控制和安全性。
特性
- 向Discord频道发送消息
- 阅读来自频道的最新消息
- 自动服务器和通道发现
- 同时支持通道名称和ID
- 正确的错误处理和验证
先决条件
- Node.js 16.x或更高版本
- Discord机器人令牌
- 必须以适当的权限将机器人邀请到您的服务器:
- 阅读消息/查看频道 - 发送消息 - 读取消息历史记录
设置
- 克隆此存储库:
git clone https://github.com/yourusername/discordmcp.git
cd discordmcp- 安装依赖项:
npm install- 创建一个
.env根目录中的文件,其中包含您的Discord机器人令牌:
DISCORD_TOKEN=your_discord_bot_token_here- 构建服务器:
npm run build使用Claude for Desktop
- 打开Claude for Desktop配置文件:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json - 窗户: %APPDATA%\Claude\claude_desktop_config.json
- 添加Discord MCP服务器配置:
{
"mcpServers": {
"discord": {
"command": "node",
"args": ["path/to/discordmcp/build/index.js"],
"env": {
"DISCORD_TOKEN": "your_discord_bot_token_here"
}
}
}
}- 重新启动桌面版的Claude
可用工具
发送消息
向指定的Discord频道发送消息。
参数:
server(可选):服务器名称或ID(如果机器人在多个服务器中,则需要)channel:频道名称(例如“general”)或IDmessage:要发送的消息内容
例子:
{
"channel": "general",
"message": "Hello from MCP!"
}阅读消息
从指定的Discord频道读取最近的消息。
参数:
server(可选):服务器名称或ID(如果机器人在多个服务器中,则需要)channel:频道名称(例如“general”)或IDlimit(可选):要获取的消息数(默认值:50,最大值:100)
例子:
{
"channel": "general",
"limit": 10
}发展
- 安装开发依赖项:
npm install --save-dev typescript @types/node- 在开发模式下启动服务器:
npm run dev测试
您可以使用MCP检查器测试服务器:
npx @modelcontextprotocol/inspector node build/index.js例子
以下是一些在设置Discord MCP服务器后可以尝试与Claude进行交互的示例:
- “你能读一下普通频道的最后5条消息吗?”
- “请向公告频道发送一条消息,说‘会议10分钟后开始’”
- “开发频道中关于最新版本的最新消息是什么?”
Claude将使用适当的工具与Discord进行交互,同时在发送任何消息之前征求您的批准。
安全考虑
- 机器人需要适当的Discord权限才能运行
- 所有消息发送操作都需要明确的用户批准
- 应适当保护环境变量
- 令牌永远不应该被提交到版本控制中
- 频道访问权限仅限于机器人可以访问的频道
贡献
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
支持
如果您遇到任何问题或有疑问:
- 查看GitHub问题部分
- 请参阅MCP文件https://modelcontextprotocol.io
- 以详细的复制步骤打开新一期
