Discord交互服务器

一个模型上下文协议(MCP)服务器,使LLM能够通过Discord的API与Discord频道交互,发送和读取消息。

  • by v-3
  • TypeScript
  • 本地部署
  • 242 星标
  • 更新于
在 GitHub 查看 v-3/discordmcp

使用说明

断开MCP服务器

模型上下文协议(MCP)服务器,使LLM能够与Discord频道交互,允许它们通过Discord的API发送和读取消息。使用此服务器,像Claude这样的LLM可以直接与Discord通道交互,同时保持用户控制和安全性。

特性

  • 向Discord频道发送消息
  • 阅读来自频道的最新消息
  • 自动服务器和通道发现
  • 同时支持通道名称和ID
  • 正确的错误处理和验证

先决条件

  • Node.js 16.x或更高版本
  • Discord机器人令牌
  • 必须以适当的权限将机器人邀请到您的服务器:
    • 阅读消息/查看频道
    • 发送消息
    • 读取消息历史记录

设置

  1. 克隆此存储库:
git clone https://github.com/yourusername/discordmcp.git
cd discordmcp
  1. 安装依赖项:
npm install
  1. 创建一个 .env 根目录中的文件,其中包含您的Discord机器人令牌:
DISCORD_TOKEN=your_discord_bot_token_here
  1. 构建服务器:
npm run build

使用Claude for Desktop

  1. 打开Claude for Desktop配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 窗户: %APPDATA%\Claude\claude_desktop_config.json
  2. 添加Discord MCP服务器配置:

{
  "mcpServers": {
    "discord": {
      "command": "node",
      "args": ["path/to/discordmcp/build/index.js"],
      "env": {
        "DISCORD_TOKEN": "your_discord_bot_token_here"
      }
    }
  }
}
  1. 重新启动桌面版的Claude

可用工具

发送消息

向指定的Discord频道发送消息。

参数:

  • server (可选):服务器名称或ID(如果机器人在多个服务器中,则需要)
  • channel:频道名称(例如“general”)或ID
  • message:要发送的消息内容

例子:

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

阅读消息

从指定的Discord频道读取最近的消息。

参数:

  • server (可选):服务器名称或ID(如果机器人在多个服务器中,则需要)
  • channel:频道名称(例如“general”)或ID
  • limit (可选):要获取的消息数(默认值:50,最大值:100)

例子:

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

发展

  1. 安装开发依赖项:
npm install --save-dev typescript @types/node
  1. 在开发模式下启动服务器:
npm run dev

测试

您可以使用MCP检查器测试服务器:

npx @modelcontextprotocol/inspector node build/index.js

例子

以下是一些在设置Discord MCP服务器后可以尝试与Claude进行交互的示例:

  1. “你能读一下普通频道的最后5条消息吗?”
  2. “请向公告频道发送一条消息,说‘会议10分钟后开始’”
  3. “开发频道中关于最新版本的最新消息是什么?”

Claude将使用适当的工具与Discord进行交互,同时在发送任何消息之前征求您的批准。

安全考虑

  • 机器人需要适当的Discord权限才能运行
  • 所有消息发送操作都需要明确的用户批准
  • 应适当保护环境变量
  • 令牌永远不应该被提交到版本控制中
  • 频道访问权限仅限于机器人可以访问的频道

贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

支持

如果您遇到任何问题或有疑问:

  1. 查看GitHub问题部分
  2. 请参阅MCP文件https://modelcontextprotocol.io
  3. 以详细的复制步骤打开新一期