Discord服务器管理协议

Discord MCP服务器是一个通过机器人令牌为Claude提供对Discord服务器全面访问的工具,涵盖46种功能,包括频道、消息、线程、论坛、反应、权限、成员、附件和私信等。

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

使用说明

断开MCP服务器

MCP(模型上下文协议)服务器,允许Claude通过机器人令牌完全访问Discord服务器。 46工具 涵盖渠道、消息、线程、论坛、反应、权限、成员、附件和DM——所有这些都是按 名字 ID回退。

先决条件

  • Node.js >= 18
  • A. Discord机器人 启用了正确的意图和权限(见下文)

Discord Bot设置

  1. 去 Discord开发者门户 并创建一个 新应用.
  2. 首选 机器人 → click 重置令牌 → 复制令牌(这是您的 DISCORD_BOT_TOKEN).
  3. 在...之下 特权网关意图,启用:
    • 服务器成员意图
    • 消息内容意图
  4. 首选 OAuth2→ URL生成器:
    • 范围: bot
    • 机器人权限:
      • 概述: 查看频道、管理频道、管理角色
      • 文本: 发送消息、管理消息、读取消息历史记录、添加反应、嵌入链接、附加文件、创建公共线程、创建私有线程、在线程中发送消息和管理线程
      • 声音: 连接,说话(如果需要)
    • 打开生成的URL,邀请机器人到您的服务器。
  5. 得到你的 服务器(公会)ID:在Discord中,启用开发人员模式(设置→ 高级),右键单击您的服务器名称→ 复制服务器ID这是你的 DISCORD_GUILD_ID.

安装和构建

git clone <this-repo>
cd discord-mcp
npm install
npm run build

配置

设置两个环境变量:

export DISCORD_BOT_TOKEN="your-bot-token"
export DISCORD_GUILD_ID="your-server-id"

或者通过MCP客户端配置传递它们(见下文)。

跑

# Production (compiled JS)
npm start

# Development (TypeScript via tsx)
npm run dev

# Run tests
npm test

连接到克劳德代码

添加 claude_desktop_config.json 或 .claude.json:

{
  "mcpServers": {
    "discord": {
      "command": "node",
      "args": ["/absolute/path/to/discord-mcp/dist/index.js"],
      "env": {
        "DISCORD_BOT_TOKEN": "your-bot-token",
        "DISCORD_GUILD_ID": "your-server-id"
      }
    }
  }
}

提示: 使用 npx tsx /path/to/discord-mcp/src/index.ts 作为在开发过程中跳过构建步骤的命令。

可用工具(46)

所有工具接受渠道和会员 名字 (例如。 "general", "#announcements", "Alice")ID回退。

频道(9)

工具 说明
discord_list_channels 列出所有频道(可选类型过滤器:文本、语音、类别、公告、论坛、舞台、帖子)
discord_get_channel 按名称或ID获取频道详细信息
discord_create_channel 创建新频道(文本、语音、类别、公告、论坛、舞台)
discord_modify_channel 修改频道设置(名称、主题、nsfw、慢模式、位置、父级、比特率、用户限制)
discord_delete_channel 删除频道(需要 confirm=true)
discord_reorder_channels 通过设置频道的位置重新排序频道
discord_set_channel_permissions 为角色或用户设置频道上的权限覆盖
discord_delete_channel_permissions 删除角色或用户的权限覆盖(需要 confirm=true)
discord_clone_channel 克隆现有频道(复制设置并覆盖权限)

留言(11)

工具 说明
discord_get_message_history 使用分页和可选的作者筛选器获取最近的邮件
discord_get_message 按ID获取单个消息
discord_search_messages 按文本内容搜索邮件(可选作者筛选器)
discord_send_message 发送包含文本、嵌入、提及控件和通知抑制的消息
discord_edit_message 编辑机器人消息(文本和/或嵌入)
discord_delete_message 删除消息
discord_pin_message 固定消息(每个通道最多50个)
discord_unpin_message 不愉快的消息
discord_list_pins 列出频道中的所有固定消息
discord_bulk_delete_messages 批量删除2-100封邮件(需要 confirm=true)
discord_crosspost_message 在公告频道向关注者发布消息

话题与论坛(13)

工具 说明
discord_list_threads 列出活动线程(可选通道筛选器)
discord_get_thread 按名称或ID获取线程详细信息
discord_start_thread_from_message 从现有消息启动线程
discord_start_thread 在通道中启动独立线程
discord_create_forum_post 创建带有标签、自动存档和慢速模式的论坛帖子
discord_list_archived_threads 列出已存档的线程(公共/私有/已连接)并进行分页
discord_join_thread Bot加入一个线程
discord_leave_thread 机器人留下一条线索
discord_add_thread_member 将用户添加到线程
discord_remove_thread_member 从线程中删除用户
discord_list_thread_members 列出线程的成员
discord_update_thread 更新线程设置(名称、存档、锁定、慢速模式、自动存档)
discord_update_forum_channel 更新论坛频道设置(标签、默认反应、排序、布局、慢模式)

反应(4)

工具 说明
discord_add_reaction 使用表情符号回复消息
discord_remove_reaction 移除机器人的反应
discord_list_reactions 用计数列出消息的反应(可以选择获取特定表情符号的用户)
discord_clear_reactions 清除所有反应或特定表情符号(需要 confirm=true)

权限(3)

工具 说明
discord_check_permissions 检查用户/角色在通道中的权限(默认为机器人)
discord_get_effective_overwrites 列出具有允许/拒绝权限的频道上的所有权限覆盖
discord_explain_permission_denial 逐步解释频道中用户的权限层次结构

成员(1)

工具 说明
discord_list_members 列出服务器成员(可选名称搜索)

附件(2)

工具 说明
discord_list_attachments 列出频道中的文件附件
discord_download_attachment 下载并返回附件的文本内容

DM(2)

工具 说明
discord_get_dm_channels 列出机器人的开放DM渠道
discord_create_dm 使用服务器成员打开DM并发送消息

服务器(1)

工具 说明
discord_get_server_capabilities 报告机器人权限、公会功能、意图和缺少的推荐权限

所需意向

意图 为什么
帮派 频道和帮派缓存
GuildMessages 消息事件和历史
有罪会员(特权会员) 按姓名进行会员决议
MessageContent(特权) 读取邮件文本以进行搜索/筛选
DirectMessages DM通道支持

提及安全

discord_send_message 和 discord_edit_message 使用一个 提及安全默认值: @everyone 和 @here 除非您明确通过,否则将被抑制 allowed_mentions: { parse: ["everyone"] }。用户和角色提及正常工作。

破坏性操作防护装置

删除或批量修改数据的工具需要 confirm: true:

  • discord_delete_channel
  • discord_delete_channel_permissions
  • discord_delete_message (单次删除,无需确认)
  • discord_bulk_delete_messages (需要确认)
  • discord_clear_reactions (需要确认)

审核工具接受 audit_log_reason 用于Discord审核日志。

速率限制

服务器使用confirm.js,每个请求有5次自动重试和15秒超时。不一致率限制(429)通过退避透明地处理。如果重试次数用尽,则返回一个结构化错误 retry_after_ms 如果可用。

示例提示

频道:

  • “列出所有频道”
  • “在项目类别下创建一个名为项目更新的文本频道”
  • “一般来说,版主角色有哪些权限?”

信息:

  • “最新的#general是什么?”
  • “爱丽丝在#random中发送了什么?”
  • “在#docs中搜索'neneneba API密钥'”
  • “发送到#standup:今天我在MCP服务器上工作”
  • “向#announcements发送一个嵌入,标题为“Release v2.0”,描述为“新功能…”
  • “将最后一条消息标记为#important”

主题和论坛:

  • “列出所有活动线程”
  • “在#help中创建一个论坛帖子,标题为“设置问题”,并带有bug标签”
  • “#讨论中的存档线程是什么?”

权限:

  • “机器人可以在#locked channel中发送消息吗?”
  • “为什么Alice无法查看#私人频道?”
  • “仅对#admin的权限覆盖是什么?”

附件:

  • “从#incoming获取文档” (列出邮件+附件)
  • “从#resources下载最新文件”

项目结构

src/
├── index.ts              # Entry point — MCP server + startup
├── discord/
│   ├── client.ts         # Discord client setup, login, guild accessor
│   ├── context.ts        # Shared context (DI) for tool handlers
│   ├── formatters.ts     # Channel/message/thread formatting
│   └── resolvers.ts      # Name-to-ID resolution helpers
├── mcp/
│   └── response.ts       # Standardized ok/err response builders
└── tools/
    ├── index.ts           # Tool registration barrel
    ├── channels.ts        # Channel CRUD + permissions
    ├── messages.ts        # Message read/write + pins + bulk ops
    ├── reactions.ts       # Reaction add/remove/list/clear
    ├── threads.ts         # Thread + forum tools
    ├── members.ts         # Member listing
    ├── attachments.ts     # Attachment list + download
    ├── dm.ts              # DM channels
    ├── permissions.ts     # Permission checks + diagnostics
    └── server.ts          # Server capabilities
tests/
├── response.test.ts      # Response builder unit tests
└── formatters.test.ts    # Formatter unit tests

与Claude Code合作

该回购提供 .claude/ 目录中包含项目规则、提示和技能,帮助Claude Code理解代码库并遵循项目约定。如果你使用 克劳德代码,它将自动拾取这些。

内容包括:

  • .claude/CLAUDE.md --项目说明、关键文件、约束和完成定义
  • .claude/rules/ --交付工作流程、扩展路线图、安全审查手册
  • .claude/prompts/ --现成的提示模板,用于错误修复、重构和评论
  • .claude/skills/ — /discord-mcp-build 和 /discord-mcp-verify 斜线命令

欢迎贡献——无论是新工具、更好的提示还是改进的规则。打开一个问题或公关,随时改进 .claude/ 在代码更改的同时配置。

许可证

麻省理工学院