📖 描述
A. 模型上下文协议(MCP) Discord API的服务器,使用 (JDA), 旨在将Discord机器人与MCP兼容的应用程序(如Claude、ChatGPT等)集成。它允许AI助手与 通过管理频道、发送消息和检索服务器信息来引起不一致。非常适合构建强大的Discord自动化和AI驱动的工作流程。
🔬 安装
► 🐳 Docker安装(推荐)
\[!注意\] 需要安装Docker。完整的说明可以在 .
1) 设置本地环境变量
export DISCORD_TOKEN="YOUR_DISCORD_BOT_TOKEN"
export DISCORD_GUILD_ID="OPTIONAL_DEFAULT_SERVER_ID"
export SPRING_PROFILES_ACTIVE=http\[!重要\] 可以找到创建Discord机器人和检索其令牌的说明 这里.
\[!提示\] 这DISCORD_GUILD_IDenv变量是可选的。 提供时,它会设置默认的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 Installation
1) 克隆存储库
git clone https://github.com/SaseQ/discord-mcp2) 转到项目目录
cd discord-mcp3) 创建本地运行时环境
cat > .env
DISCORD_GUILD_ID=
EOF4) 启动一个共享MCP服务器容器
docker compose up -d --build5) 验证
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
健康端点(执行器): http://localhost:8085/actuator/health
🔧 Manual Installation
1) 克隆存储库
git clone https://github.com/SaseQ/discord-mcp2) 构建项目
注意:使用mvn命令需要安装Maven。可以找到完整的说明 这里.
cd discord-mcp
mvn clean package # The jar file will be available in the /target directory3) 配置AI客户端
将JAR作为长时间运行的服务器运行:
DISCORD_TOKEN= \
DISCORD_GUILD_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=",
"-e",
"DISCORD_GUILD_ID=",
"saseq/discord-mcp:latest"
]
}
}
}⌨️ Claude Code Connection
推荐(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= -e DISCORD_GUILD_ID= saseq/discord-mcp:latest🤖 Codex CLI Connection
codex mcp add discord-mcp --url http://localhost:8085/mcp
codex mcp list🦞 OpenClaw Connection
运行此命令:
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 Connection
首选 Settings -> Cursor Settings -> MCP -> Add new global MCP server
将以下配置粘贴到游标中 ~/.cursor/mcp.json 文件是推荐的方法。您还可以通过创建以下内容在特定项目中安装 .cursor/mcp.json 在您的项目文件夹中。看 光标MCP文档 了解更多信息。
{
"mcpServers": {
"discord-mcp": {
"url": "http://localhost:8085/mcp"
}
}
}🚀 n8n Connection
在n8n中连接
- 打开n8n并添加一个 MCP客户端 节点。
- 选择 超文本传输协议 或 可流式传输的HTTP 传输(取决于您的n8n版本/节点选项)。
- 将服务器URL设置为:
http://localhost:8085/mcp - 保存节点并测试连接。
- 连接后,您可以使用以下公开的可用Discord工具
discord-mcp在您的工作流程中。
备注
- 如果n8n在Docker中运行,
localhost可能指向n8n容器本身,而不是您的主机。 - 在这种情况下,使用Docker服务名称或其他可访问的主机,例如:
http://discord-mcp:8085/mcp
🖥 Claude Desktop Connection
STDIO本地配置(默认,传统):
通过以下配置进入您的Claude桌面 claude_desktop_config.json 文件。{
"mcpServers": {
"discord-mcp": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"-e",
"DISCORD_TOKEN=",
"-e",
"DISCORD_GUILD_ID=",
"saseq/discord-mcp:latest"
]
}
}
}远程MCP连接器:
- 打开克劳德桌面并转到
Settings->Connectors. - 添加自定义连接器并将MCP URL设置为服务器端点(例如 `https://
/mcp`).
- 保存并重新连接。
Claude Desktop远程连接器通过连接器UI进行管理(不是claude_desktop_config.json).http://localhost:8085/mcp只能从您的计算机访问。对于Claude Desktop远程连接器,使用公共HTTPS(例如隧道/反向代理)公开端点。
🛠️ 可用工具
服务器信息
get_server_info:获取详细的不和谐服务器信息
用户管理
get_user_id_by_name:通过ping使用公会中的用户名获取Discord用户的ID ``send_private_message:向特定用户发送私人消息edit_private_message:编辑来自特定用户的私人消息delete_private_message:删除特定用户的私信read_private_messages:读取特定用户的私人消息历史记录(包括附件元数据,支持count1-100和可选光标:before或after或around)
消息管理
send_message:向特定频道发送消息edit_message:编辑来自特定频道的消息delete_message:从特定频道删除消息read_messages:从特定渠道读取消息历史记录(包括附件元数据,支持count1-100和可选光标:before或after或around)add_reaction:在特定消息中添加反应(表情符号)remove_reaction:从消息中删除指定的反应(表情符号)
渠道管理
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:特定频道上的Webhook列表send_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:获取特定邀请的详细信息(适用于任何公开邀请)
论坛管理
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参数对于上述所有工具都是可选的。
更详细的例子可以在 维基.

