discord-mcp
Discord MCP 服务器
一个轻量级、支持多服务器的 Discord MCP 服务器,拥有 90 多种工具
通过 Claude Desktop、Claude Code、Cursor、VS Code Copilot 或任何兼容 MCP 的客户端管理您的整个 Discord 服务器。 通过自然语言即可处理消息、频道、角色、权限、审核、论坛、Webhook 和嵌入式消息等。
为什么选择这个?
90 多种工具 — 涵盖消息、频道、角色、权限、审核、论坛、Webhook、定时活动、邀请、私信、嵌入式消息等
多服务器支持 — 可跨多个服务器工作,无需绑定
GUILD_ID轻量级 — TypeScript + Node.js,包大小约 25kB,Docker 镜像约 73MB(相比之下 Java 版本通常超过 400MB)
模块化 — 架构清晰,易于扩展新工具
两种安装方式 — npm 或 Docker,任您选择
快速开始
将其添加到您的 MCP 客户端配置中,并将 YOUR_TOKEN_HERE 替换为您的机器人令牌:
{
"mcpServers": {
"discord": {
"command": "npx",
"args": ["-y", "@pasympa/discord-mcp"],
"env": {
"DISCORD_TOKEN": "YOUR_TOKEN_HERE"
}
}
}
}无需安装 — npx 会处理一切。
还没有机器人?请参阅 创建您的 Discord 机器人。
配置
将上述配置添加到您的 claude_desktop_config.json 中:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
保存后重启 Claude Desktop。
claude mcp add discord -e DISCORD_TOKEN=YOUR_TOKEN_HERE -- npx -y @pasympa/discord-mcp将上述配置添加到 ~/.cursor/mcp.json。详情请参阅 Cursor MCP 文档。
添加到您的 .vscode/mcp.json:
{
"inputs": [
{
"type": "promptString",
"id": "discord-token",
"description": "Discord Bot Token",
"password": true
}
],
"servers": {
"discord": {
"command": "npx",
"args": ["-y", "@pasympa/discord-mcp"],
"env": {
"DISCORD_TOKEN": "${input:discord-token}"
}
}
}
}详情请参阅 VS Code MCP 文档。
{
"mcpServers": {
"discord": {
"command": "docker",
"args": [
"run", "--rm", "-i",
"-e", "DISCORD_TOKEN=YOUR_TOKEN_HERE",
"pasympa/discord-mcp:latest"
]
}
}
}git clone https://github.com/PaSympa/discord-mcp
cd discord-mcp
npm install && npm run build{
"mcpServers": {
"discord": {
"command": "node",
"args": ["/absolute/path/to/discord-mcp/dist/index.js"],
"env": {
"DISCORD_TOKEN": "YOUR_TOKEN_HERE"
}
}
}
}无需在 MCP 配置中传递令牌,而是在项目根目录创建一个 .env 文件:
DISCORD_TOKEN=YOUR_TOKEN_HERE服务器会自动通过 dotenv 加载 .env 文件。
创建您的 Discord 机器人
New Application > 输入名称
Bot 选项卡 > Reset Token > 复制令牌
启用 Privileged Gateway Intents:
Server Members Intent
Message Content Intent
OAuth2 > URL Generator:
Scopes:
botPermissions:
Send Messages,Read Message History,Manage Channels,Manage Roles,Kick Members,Ban Members,Moderate Members,View Audit Log,Manage Messages,Manage Threads,Add Reactions,Manage Guild,Manage Webhooks,Manage Events,Create Instant Invite
复制生成的 URL 并将机器人邀请到您的服务器
可用工具 (91)
发现与导航
工具 | 描述 |
| 列出机器人连接的所有服务器 |
| 获取详细的服务器信息(名称、成员、频道、角色、加成) |
| 按类别列出服务器中的所有频道 |
| 按名称查找频道(部分匹配) |
消息 (18 个工具)
工具 | 描述 |
| 读取文本频道的最后 N 条消息 |
| 发送纯文本消息 |
| 回复特定消息 |
| 编辑机器人发送的消息 |
| 删除特定消息 |
| 为消息添加表情反应 |
| 移除反应(全部、按表情或按用户) |
| 列出使用特定表情反应的用户 |
| 从消息创建线程或创建独立线程 |
| 批量删除消息 (2-100) |
| 发送带有所有选项的富文本嵌入式消息 |
| 编辑机器人之前发送的嵌入式消息 |
| 在单条消息中发送最多 10 个嵌入式消息 |
| 置顶或取消置顶消息 |
| 列出频道中的所有置顶消息 |
| 按关键词搜索消息(最近 100 条) |
| 将消息发布到公告频道关注者 |
| 将消息转发到另一个频道 |
频道 (8 个工具)
工具 | 描述 |
| 创建文本、语音频道或类别 |
| 删除频道 |
| 编辑名称、主题、慢速模式、NSFW 标记 |
| 将频道移入/移出类别 |
| 克隆带有权限设置的频道 |
| 设置类别内的显示位置 |
| 关注公告频道 |
| 与父类别同步权限 |
频道权限 (6 个工具)
工具 | 描述 |
| 列出频道上的所有权限覆盖 |
| 允许/拒绝角色在频道上的权限 |
| 允许/拒绝成员在频道上的权限 |
| 移除所有覆盖(重置为继承) |
| 将权限覆盖从一个频道复制到另一个频道 |
| 对所有频道进行完整的权限审计 |
成员 (11 个工具)
工具 | 描述 |
| 列出服务器成员及其角色 |
| 详细成员信息(角色、权限、加入日期) |
| 按用户名或昵称搜索成员 |
| 设置或清除成员昵称 |
| 踢出成员 |
| 封禁成员(可选删除最近消息) |
| 解封用户 |
| 批量封禁用户(用于防御骚扰) |
| 列出所有被封禁的用户 |
| 禁言成员(0 为移除禁言) |
| 移除不活跃成员(支持试运行) |
角色 (9 个工具)
工具 | 描述 |
| 列出所有角色及其权限和成员数 |
| 创建新角色 |
| 编辑角色(名称、颜色、权限、显示、可提及) |
| 删除角色 |
| 为成员分配角色 |
| 从成员移除角色 |
| 列出拥有特定角色的所有成员 |
| 更改角色在层级中的位置 |
| 为角色设置自定义图标或 Unicode 表情 |
论坛 (10 个工具)
工具 | 描述 |
| 列出服务器中的所有论坛频道 |
| 创建新论坛频道 |
| 在论坛中创建帖子/线程 |
| 获取帖子的详细信息和消息 |
| 列出线程(活跃 + 已归档) |
| 回复论坛帖子 |
| 删除论坛线程 |
| 获取可用标签 |
| 设置/更新论坛标签 |
| 更新标题、归档、锁定、标签状态 |
Webhooks (8 个工具)
工具 | 描述 |
| 在频道上创建 Webhook |
| 通过 Webhook 发送消息(自定义用户名/头像、嵌入式消息) |
| 编辑 Webhook 的名称、头像或频道 |
| 删除 Webhook |
| 列出频道或服务器的 Webhook |
| 编辑 Webhook 发送的消息 |
| 删除 Webhook 发送的消息 |
| 获取特定的 Webhook 消息 |
定时活动 (7 个工具)
工具 | 描述 |
| 列出服务器中的所有定时活动 |
| 获取定时活动的详细信息 |
| 创建语音、舞台或外部活动 |
| 编辑现有的定时活动 |
| 删除定时活动 |
| 获取标记为“感兴趣”的用户 |
| 创建链接到活动的邀请 |
私信
工具 | 描述 |
| 通过用户 ID 向用户发送私信 |
邀请 (5 个工具)
工具 | 描述 |
| 列出服务器中的所有活跃邀请 |
| 列出特定频道的邀请 |
| 通过代码获取邀请详情 |
| 为频道创建邀请链接 |
| 撤销邀请 |
审核与筛选
工具 | 描述 |
| 获取服务器审核日志 |
| 获取成员资格筛选表单 |
| 更新新成员的筛选规则 |
统计
工具 | 描述 |
| 服务器统计:成员、频道、角色、加成等级 |
使用示例
"List all servers the bot is in"
"Read the last 10 messages in #general"
"Send 'Hello everyone!' to the announcements channel"
"Create a forum channel called 'feedback' with tags Bug, Feature, Question"
"Show the full permission audit for the server"
"Create a webhook on #notifications and send a test message"
"Ban user 112233445566 and delete their messages from the last 3 days"
"Create an event called 'Game Night' for next Friday at 8pm"
"List all upcoming events in the server"
"Create a permanent invite for #general"
"List all active invites and delete expired ones"
"Send a DM to user 112233445566 saying 'Your build passed!'"
"Search for members named 'john'"
"List all banned users in the server"
"Show all pinned messages in #general"
"Forward that message to #announcements"查找 Discord ID
在 Discord 中启用 开发者模式:
设置 > 高级 > 开发者模式
然后 右键点击 服务器、频道或用户 > 复制 ID。
项目结构
discord-mcp/
├── src/
│ ├── index.ts ← Entry point (MCP server + transport)
│ ├── client.ts ← Discord client + shared helpers
│ ├── constants.ts ← Shared constants (limits, defaults)
│ └── tools/
│ ├── index.ts ← Tool registry
│ ├── types.ts ← Shared TypeScript interfaces
│ ├── discovery.ts ← Guild/channel discovery
│ ├── messages.ts ← Message CRUD, reactions, threads, embeds
│ ├── channels.ts ← Channel management
│ ├── permissions.ts ← Permission overwrites
│ ├── members.ts ← Member management
│ ├── roles.ts ← Role CRUD and assignment
│ ├── moderation.ts ← Audit log
│ ├── screening.ts ← Membership screening
│ ├── stats.ts ← Server statistics
│ ├── forums.ts ← Forum channels, posts, tags
│ ├── webhooks.ts ← Webhook management
│ ├── scheduledEvents.ts ← Scheduled events
│ ├── invites.ts ← Invite management
│ └── dm.ts ← Direct messages
├── .github/workflows/ ← CI/CD (build check + auto release)
├── Dockerfile
├── .dockerignore
├── .env.example
├── package.json
├── tsconfig.json
├── CHANGELOG.md
├── CONTRIBUTING.md
├── SECURITY.md
└── README.md添加新工具
在
src/tools/中创建一个新文件(例如events.ts)导出
definitions(工具模式)和handle()(工具逻辑)在
src/tools/index.ts的modules数组中导入并添加它
安全性
切勿将 Discord 令牌提交到 Git
使用环境变量或
.env文件(不要纳入版本控制)仅授予机器人所需的权限
贡献
欢迎贡献!
Fork 本仓库
创建功能分支 (
git checkout -b feature/my-feature)遵循模块化结构 — 参见 添加新工具
提交更改并开启 Pull Request
许可证
MIT — 详情请参阅 LICENSE。
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/PaSympa/discord-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server