关于 Discord Mcp
Discord Mcp 是面向 MCP 兼容应用的 Discord API 服务端,适用于需要通过 AI 助手管理 Discord 服务器的团队。它提供消息、频道、成员、角色及活动等管理工具。
主要功能
- 01收发、编辑和搜索消息
- 02管理频道、分类与线程
- 03管理成员、角色和权限
- 04操作语音频道与活动
- 05管理邀请和 Webhook
适用场景
- 01检索频道消息并发送回复
- 02创建频道并调整权限
- 03管理成员角色及超时状态
MCP 相关
它将 Discord API 的消息、服务器信息、频道、成员等操作作为工具开放给 MCP 客户端。支持通过 HTTP 端点或旧版 stdio 模式连接。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
📖 描述
一个使用 (JDA) 构建的 Discord API Model Context Protocol (MCP) 服务, 旨在将 Discord 机器人与 Claude、ChatGPT 等兼容 MCP 的应用集成。它允许 AI 助手通过管理频道、发送消息和检索服务信息来与 Discord 交互。非常适合构建强大的 Discord 自动化和 AI 驱动工作流。
🔬 安装
► 🐳 Docker 安装(推荐)
说明
需要安装 Docker。完整说明请参见 docker.com。
1) 设置本地环境变量
export DISCORD_TOKEN="YOUR_DISCORD_BOT_TOKEN"
export DISCORD_GUILD_ID="OPTIONAL_DEFAULT_SERVER_ID"
export SPRING_PROFILES_ACTIVE=http
重要
创建 Discord 机器人并获取其令牌的说明请参见此处。
提示
DISCORD_GUILD_ID环境变量为可选项。提供该变量后,它会设置一个默认的 Discord 服务 ID,因此任何接受
guildId参数的工具都可以省略该参数。
2) 运行 Docker 容器
docker run -d -i \
--name discord-mcp \
--restart unless-stopped \
-p 8085:8085 \
-e SPRING_PROFILES_ACTIVE \
-e DISCORD_TOKEN \
-e DISCORD_GUILD_ID \
saseq/discord-mcp:latest
默认 MCP 端点 URL(HTTP 配置):http://localhost:8085/mcp
🐋 Docker Compose 安装
1) 克隆仓库
git clone https://github.com/SaseQ/discord-mcp
2) 进入项目目录
cd discord-mcp
3) 创建本地运行环境
cat > .env <<EOF
SPRING_PROFILES_ACTIVE=http
DISCORD_TOKEN=<YOUR_DISCORD_BOT_TOKEN>
DISCORD_GUILD_ID=<OPTIONAL_DEFAULT_SERVER_ID>
EOF
4) 启动一个共享的 MCP 服务容器
docker compose up -d --build
5) 验证
docker ps --filter name=discord-mcp
curl -fsS http://localhost:8085/actuator/health
提示
无需手动设置
LOGGING_PATTERN_CONSOLE。http和旧版stdio模式的日志记录均会自动配置。
默认 MCP 端点 URL(HTTP 配置):http://localhost:8085/mcp
健康检查端点(Actuator):http://localhost:8085/actuator/health
🔧 手动安装
1) 克隆仓库
git clone https://github.com/SaseQ/discord-mcp
2) 构建项目
注意:使用 mvn 命令需要安装 Maven。完整说明请参见此处。
cd discord-mcp
mvn clean package # The jar file will be available in the /target directory
3) 配置 AI 客户端
将 JAR 作为长期运行的服务启动:
DISCORD_TOKEN=<YOUR_DISCORD_BOT_TOKEN> \
DISCORD_GUILD_ID=<OPTIONAL_DEFAULT_SERVER_ID> \
SPRING_PROFILES_ACTIVE=http \
java -jar /absolute/path/to/discord-mcp-1.0.0.jar
注意:
DISCORD_GUILD_ID环境变量为可选项。提供该变量后,它会设置一个默认的 Discord 服务 ID,因此任何接受guildId参数的工具都可以省略该参数。
默认 MCP 端点 URL(HTTP 配置):http://localhost:8085/mcp
🔗 连接
► 🗞️ 默认 config.json 连接
推荐(HTTP 单例模式):
{
"mcpServers": {
"discord-mcp": {
"url": "http://localhost:8085/mcp"
}
}
}
旧版模式(stdio,每个客户端会话都会启动一个新进程/容器):
{
"mcpServers": {
"discord-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"DISCORD_TOKEN=<YOUR_DISCORD_BOT_TOKEN>",
"-e",
"DISCORD_GUILD_ID=<OPTIONAL_DEFAULT_SERVER_ID>",
"saseq/discord-mcp:latest"
]
}
}
}
⌨️ Claude Code 连接
推荐(HTTP 单例模式):
claude mcp add discord-mcp --transport http http://localhost:8085/mcp
旧版模式(stdio,每个客户端会话都会启动一个新进程/容器):
claude mcp add discord-mcp -- docker run --rm -i -e DISCORD_TOKEN=<YOUR_DISCORD_BOT_TOKEN> -e DISCORD_GUILD_ID=<OPTIONAL_DEFAULT_SERVER_ID> saseq/discord-mcp:latest
🤖 Codex CLI 连接
codex mcp add discord-mcp --url http://localhost:8085/mcp
codex mcp list
🦞 OpenClaw 连接
运行此命令:
openclaw mcp set discord-mcp '{"url":"http://localhost:8085/mcp","transport":"streamable-http"}'
openclaw mcp list
或者
将以下配置粘贴到 OpenClaw 的 ~/.openclaw/config.json 文件中:
{
"mcp": {
"servers": {
"discord-mcp": {
"url": "http://localhost:8085/mcp",
"transport": "streamable-http"
}
}
}
}
🖲 Cursor 连接
前往:Settings -> Cursor Settings -> MCP -> Add new global MCP server
建议将以下配置粘贴到 Cursor 的 ~/.cursor/mcp.json 文件中。你也可以在项目文件夹中创建 .cursor/mcp.json,将其安装到特定项目中。更多信息请参阅 Cursor MCP 文档。
{
"mcpServers": {
"discord-mcp": {
"url": "http://localhost:8085/mcp"
}
}
}
🚀 n8n 连接
在 n8n 中连接
- 打开 n8n 并添加一个 MCP Client 节点。
- 选择 HTTP 或 Streamable HTTP 传输方式(取决于你的 n8n 版本/节点选项)。
- 将服务 URL 设置为:
http://localhost:8085/mcp - 保存节点并测试连接。
- 连接后,你可以在工作流中使用
discord-mcp提供的 Discord 工具。
说明
- 如果 n8n 在 Docker 中运行,
localhost可能指向 n8n 容器本身,而不是你的主机。 - 此时请使用 Docker 服务名称或其他可访问的主机,例如:
http://discord-mcp:8085/mcp
🖥 Claude Desktop 连接
STDIO 本地配置(默认,旧版):
将以下配置粘贴到 Claude Desktop 的
claude_desktop_config.json文件中。
{
"mcpServers": {
"discord-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"DISCORD_TOKEN=<YOUR_DISCORD_BOT_TOKEN>",
"-e",
"DISCORD_GUILD_ID=<OPTIONAL_DEFAULT_SERVER_ID>",
"saseq/discord-mcp:latest"
]
}
}
}
远程 MCP Connector:
- 打开 Claude Desktop,前往
Settings->Connectors。 - 添加自定义 Connector,并将 MCP URL 设置为你的服务端点(例如
https://<PUBLIC_HOST>/mcp)。 - 保存并重新连接。
Claude Desktop 远程 Connector 通过 Connectors UI 管理(而非
claude_desktop_config.json)。http://localhost:8085/mcp只能从你的机器访问。对于 Claude Desktop 远程 Connector,请使用公开 HTTPS 暴露该端点(例如通过隧道/反向代理)。
🛠️ 可用工具
服务信息
get_server_info: 获取详细的 Discord 服务信息
用户管理
get_user_id_by_name: 根据服务器中的用户名获取 Discord 用户 ID,以便使用<@id>提及用户get_member_by_id: 根据稳定的用户 ID 获取 Discord 服务器成员信息,包括用户名、全局名称、昵称、有效名称、机器人标记、加入时间和角色search_members: 按 ID、用户名、全局名称、昵称或有效名称搜索 Discord 服务器成员,并返回包含稳定用户 ID 的身份候选项send_private_message: 向指定用户发送私信edit_private_message: 编辑发给指定用户的私信delete_private_message: 删除发给指定用户的私信read_private_messages: 读取与指定用户的私信历史记录(包括作者 ID、回复标记、附件元数据;支持count1-100,以及可选游标:before、after或around)
消息管理
send_message: 向指定频道发送消息edit_message: 编辑指定频道中的消息delete_message: 删除指定频道中的消息read_messages: 读取指定频道的消息历史记录(包括作者 ID、回复标记和附件元数据;支持count1-100,以及可选游标:before、after或around)search_messages: 在频道或话题串的最新消息中搜索文本(不区分大小写,最多扫描 1000 条消息,按时间从新到旧排列)add_reaction: 为指定消息添加表情回应remove_reaction: 移除消息上指定的表情回应get_message: 按 ID 获取单条消息,格式与read_messages相同;回复中会包含被回复的消息get_message_replies: 扫描该消息之后发布的消息,查找对它的回复(最多 1000 条)
频道管理
create_text_channel: 创建新的文字频道edit_text_channel: 编辑文字频道设置(名称、主题、nsfw、慢速模式、类别、位置)delete_channel: 删除频道find_channel: 使用名称和服务 ID 查找频道类型和 IDlist_channels: 列出所有频道get_channel_info: 获取频道的详细信息move_channel: 将频道移至其他类别和/或更改其位置
类别管理
create_category: 为频道创建新类别edit_category: 编辑类别(重命名或更改位置)delete_category: 删除类别find_category: 使用名称和服务 ID 查找类别 IDlist_channels_in_category: 列出指定类别中的频道
Webhook 管理
create_webhook: 在指定频道创建新的 Webhookdelete_webhook: 删除 Webhooklist_webhooks: 列出指定频道中的 Webhooksend_webhook_message: 通过 Webhook 发送消息
角色管理
list_roles: 获取服务器上所有角色及其详细信息create_role: 在服务器上创建新角色edit_role: 修改现有角色的设置delete_role: 永久删除服务器上的角色assign_role: 为用户分配角色remove_role: 移除用户的角色
管理与用户管理
kick_member: 将成员踢出服务器ban_member: 封禁服务器上的用户unban_member: 解除对用户的封禁timeout_member: 在指定时长内禁止成员交流remove_timeout: 在超时到期前解除成员的超时状态(解除禁言)set_nickname: 更改成员在服务器上的昵称get_bans: 返回服务器上被封禁用户的列表及封禁原因
语音与舞台频道管理
create_voice_channel: 在公会中创建新的语音频道create_stage_channel: 为音频活动创建新的舞台频道edit_voice_channel: 编辑语音或舞台频道的设置(名称、比特率、用户上限、区域)move_member: 将成员移至其他语音频道disconnect_member: 将成员从当前语音频道断开modify_voice_state: 在语音频道中对成员进行服务器静音或禁听
计划活动管理
create_guild_scheduled_event: 在服务器上安排新活动(语音、舞台或外部活动)edit_guild_scheduled_event: 修改活动详情或更改其状态(开始、完成、取消)delete_guild_scheduled_event: 永久删除计划活动list_guild_scheduled_events: 列出服务器上所有正在进行和已计划的活动get_guild_scheduled_event_users: 获取对计划活动感兴趣的用户列表
频道权限覆盖
list_channel_permission_overwrites:列出频道的所有权限覆盖,并按角色和成员分类upsert_role_channel_permissions:为角色创建或更新频道权限覆盖upsert_member_channel_permissions:为成员创建或更新频道权限覆盖delete_channel_permission_overwrite:从频道中删除角色或成员的权限覆盖
邀请管理
create_invite:为指定频道创建新的邀请链接list_invites:列出服务中的所有有效邀请及其统计信息delete_invite:删除(撤销)邀请,使链接失效get_invite_details:获取特定邀请的详细信息(适用于任何公开邀请)
话题串管理
list_active_threads:列出服务中的所有活跃话题串list_threads:列出某个频道(文本、公告、论坛或媒体频道)的话题串,包括最近归档的公开话题串;返回的话题串 ID 可作为消息工具中的channelId使用(归档的话题串只有在对其父频道调用list_threads后才能在此处使用)get_thread_info:获取话题串的详细信息(父频道、所有者、归档/锁定状态、消息数和成员数;归档的话题串需要先对父频道调用list_threads)
论坛管理
create_forum_channel:创建新的论坛频道edit_forum_channel:编辑论坛频道设置(名称、主题、NSFW、慢速模式、类别、位置、默认排序方式、默认布局)list_forum_channels:列出服务中的所有论坛频道get_forum_channel_info:获取论坛频道的详细信息,包括标签和设置list_forum_tags:列出论坛频道中所有可用标签create_forum_post:在论坛频道中创建新的论坛帖子(话题串),并发送初始消息list_forum_posts:列出论坛频道中的活跃帖子(话题串)modify_forum_post:修改论坛帖子:锁定/解锁、归档/取消归档、置顶/取消置顶,或更改已应用的标签
表情管理
list_emojis:列出服务中的所有自定义表情get_emoji_details:获取特定自定义表情的详细信息create_emoji:向服务上传新的自定义表情(base64 或图片 URL,最大 256KB)edit_emoji:编辑现有表情的名称或角色限制delete_emoji:从服务中永久删除自定义表情
如果设置了
DISCORD_GUILD_ID,以上所有工具的guildId参数均为可选。
更多详细示例请参阅 Wiki。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。