mcpField
D
Discord

Discord

本地服务
github.com通信协作06 天前更新

关于 Discord

discord-mcp 是供 LLM 或 MCP 客户端管理 Discord 的 MCP 服务,提供涵盖消息、审核、频道、角色等功能的 168 种工具。它支持富消息和重启后仍保留的角色菜单,并提供受保护的 URL 获取方式及 stdio 或 HTTP 传输选项。

主要功能

  1. 01管理消息、频道、角色和帖子串
  2. 02审核服务器并管理 AutoMod
  3. 03创建富消息、投票和文件消息
  4. 04使用重启后仍保留的角色菜单
  5. 05选择 stdio、HTTP 或 Unix 套接字传输

适用场景

  1. 01发布回复、嵌入内容、投票或文件
  2. 02管理频道访问权限和服务器角色
  3. 03查看审核队列及 AutoMod
  4. 04提供持久化的角色选择交互

MCP 相关

向 MCP 客户端提供 168 种 Discord 管理工具。支持 stdio 和 HTTP 传输,HTTP 还可监听 Unix 套接字。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"willuhmjs-discord": {
"command": "npx",
"args": [
"-y",
"@willuhmjs/discord-mcp"
],
"env": {
"DISCORD_TOKEN": "<DISCORD_TOKEN>",
"DISCORD_GUILD_ID": "<DISCORD_GUILD_ID>",
"ENABLE_MEMBERS_INTENT": "<ENABLE_MEMBERS_INTENT>"
}
}
}
}
启动命令npx -y @willuhmjs/discord-mcp
需要配置的环境变量
DISCORD_TOKEN密钥Discord bot token from https://discord.com/developers/applications
DISCORD_GUILD_IDDefault server (guild) ID used when a tool call omits guildId
ENABLE_MEMBERS_INTENTSet to 1 to enable the privileged Server Members intent (needed for member-list tools)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@willuhmjs/discord-mcp1.1.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

discord-mcp

npm CI License: MIT

一个让大模型运行 Discord 服务的 MCP 服务:提供 168 个工具,涵盖消息、管理、频道、角色、讨论串、活动、邀请、Webhook、AutoMod 等。适用于 Claude、Cursor、VS Code 或任何 MCP 客户端。

  • 丰富的消息:嵌入内容、Components V2、投票、文件、回复——在发送到 Discord 之前进行验证,并指出出错的字段。
  • 交互功能:重启后仍然有效的角色菜单,以及记录用户点击内容的日志。
  • 默认安全:绑定到 127.0.0.1,对 SSRF 防护的 URL 获取,以及绝不回显 Webhook 令牌。

快速开始

  1. 在开发者门户中创建一个机器人,将其邀请到你的服务,并启用 Message Content 意图(Bot → Privileged Gateway Intents)。
  2. 将以下内容添加到 MCP 客户端的配置中(mcp.json、claude_desktop_config.json、.cursor/mcp.json 等):
{
  "mcpServers": {
    "discord": {
      "command": "npx",
      "args": ["-y", "@willuhmjs/discord-mcp", "--stdio"],
      "env": {
        "DISCORD_TOKEN": "your-bot-token",
        "DISCORD_GUILD_ID": "your-server-id"
      }
    }
  }
}

VS Code 使用 "servers",而不是 "mcpServers"。在 Windows 上,如果客户端找不到 npx,请使用 "command": "cmd" 和 "args": ["/c", "npx", "-y", "@willuhmjs/discord-mcp", "--stdio"]。

Claude Code — 一条命令:

claude mcp add discord -e DISCORD_TOKEN=... -e DISCORD_GUILD_ID=... -- npx -y @willuhmjs/discord-mcp --stdio

Docker — 在 http://127.0.0.1:8085/mcp 上运行长期 HTTP 服务:

docker run --rm -e DISCORD_TOKEN=... -p 127.0.0.1:8085:8085 ghcr.io/willuhmjs/discord-mcp

npx 需要 Node.js 22+。

配置

变量默认值含义
DISCORD_TOKEN—(必填)机器人令牌。
DISCORD_GUILD_ID—未提供 guildId 时供工具使用的默认服务。
ENABLE_MEMBERS_INTENToff启用特权 Server Members 意图(也需在门户中启用)。成员列表工具需要此设置。
MCP_TRANSPORThttp使用 stdio 表示标准输入/输出。--stdio 标志效果相同。
HOST / PORT127.0.0.1 / 8085HTTP 绑定地址和端口。
MCP_SOCKET—使用 Unix 套接字监听,而不是 HOST:PORT(仅限 HTTP 模式)。

在 HTTP 模式下,POST /mcp 提供 MCP 服务(通过 Mcp-Session-Id 使用有状态会话),连接机器人后,GET /health 会返回 200。

保持 HTTP 端点私有

HTTP 端点没有身份验证:任何能够访问它的人都可以使用机器人的所有工具。请将其限制在回环地址或私有网络中。在共享计算机上,其他账户仍可访问回环端口,因此请使用只有你能打开的 Unix 套接字:

mkdir -m 700 ~/.mcp
MCP_SOCKET=~/.mcp/discord.sock DISCORD_TOKEN=... npx @willuhmjs/discord-mcp
curl --unix-socket ~/.mcp/discord.sock http://localhost/health

套接字以 600 权限创建。请避免使用 NFS 等网络文件系统。Docker 镜像绑定到 0.0.0.0,因此请将该容器置于内部网络中。stdio 模式完全不会暴露在网络上。

工具

docs/TOOLS.md 列出了每个工具、其参数以及所需的 Discord 权限,并说明了相关约定(字符串 ID、JSON 字符串负载、审计日志的 reason)和消息/组件格式。

安全性

  • 工具获取的所有 URL(表情符号、贴纸、文件、头像)都经过统一的防护型获取器:仅允许 http/https;在发起请求前以及每次重定向后都会拦截私有/回环/元数据 IP,并设有大小和时间限制。
  • Webhook 令牌属于凭据:create_webhook 只返回一次 URL,任何列表/获取工具都不会显示该 URL。
  • 没有工具会读取服务器的文件系统。

开发

npm ci
npm run build       # tsc -> dist/
npm test            # vitest, no Discord token needed
npm run typecheck

契约测试会根据 tests/fixtures/tool-contract.json 锁定每个工具名称和参数集。TESTING.md 是在真实测试服务中运行时使用的手动检查清单。

发布流程已自动化:main 上采用 Conventional Commits(feat:、fix:、feat!:)的提交会生成发布 PR;合并后会发布到 npm、MCP Registry 和 GHCR。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。