使用说明
MCP-Discord
一个Discord MCP(模型上下文协议)服务器,使AI助手能够与Discord平台进行交互。
概述
MCP-Discord 提供以下与 Discord 相关的功能:
- 登录Discord机器人
- 获取服务器信息
- 读取/删除频道消息
- 向指定频道发送消息(使用频道ID或频道名称)
- 获取论坛频道列表
- 创建/删除/回复论坛帖子
- 创建/删除文本频道
- 添加/移除消息反应
- 创建/编辑/删除/使用 Webhooks
目录
先决条件
-
Node.js(v16.0.0 或更高版本)
-
npm(7.0.0 或更高版本)
-
一个拥有适当权限的Discord机器人
- 机器人令牌(可从 Discord 开发者门户)
- 消息内容意图已启用
- 服务器成员意向已启用
- 已启用“到此一游”功能
-
在您的Discord服务器中需要的权限:
最简单的设置
- 管理员(建议使用以快速设置并启用全部功能)
或者,仅选择所需的权限:
- 发送信息
- 创建公共帖子/主题线
- 在主题中发送消息
- 管理消息
- 管理线程
- 管理频道
- 管理Webhooks
- 添加反应
- 观看频道
-
将你的Discord机器人添加到你的服务器
- 要将您的Discord机器人添加到您的服务器,请使用以下任一邀请链接(替换
INSERT_CLIENT_ID_HERE(使用您机器人的客户端ID):- 管理员(完全访问权限): https://discord.com/oauth2/authorize?client_id=在此插入客户端ID&scope=机器人权限&permissions=8
- 自定义权限(最低要求): https://discord.com/oauth2/authorize?client_id=在此插入客户端ID&scope=机器人权限&permissions=52076489808
- 要将您的Discord机器人添加到您的服务器,请使用以下任一邀请链接(替换
注:
根据Discord的安全模型,机器人只能访问其已被明确添加到的服务器中的信息。
如果你想使用这个MCP服务器来访问特定的Discord服务器,你必须先将机器人添加到那个服务器中。
使用下面的邀请链接将机器人添加到您的目标服务器。
安装
通过NPM安装
你可以使用以下命令来运行它:
npx mcp-discord --config ${DISCORD_TOKEN}
如需更多详情,您可以查看 NPM 包。
通过Smithery进行安装
通过自动安装 mcp-discord “Smithery”可以翻译为“铁匠铺”或“锻造工坊”。这个词汇结合了“Smith”(通常指铁匠或工匠)和“-ery”(表示某种工坊或场所的后缀),用来指代一个进行金属加工或锻造工作的场所
通过 Docker 安装
你可以使用 Docker 来运行 mcp-discord。Docker 镜像会自动构建并发布到 Docker Hub 上。
# Pull the latest image
docker pull barryy625/mcp-discord:latest
# Run with environment variable
docker run -e DISCORD_TOKEN=your_discord_bot_token -p 8080:8080 barryy625/mcp-discord:latest
# Or run with command line config
docker run -p 8080:8080 barryy625/mcp-discord:latest --config "your_discord_bot_token"
可用标签:
latest- 来自主分支的最新稳定版本v1.3.3等。- 特定版本发布
手动安装
# Clone the repository
git clone https://github.com/barryyip0625/mcp-discord.git
cd mcp-discord
# Install dependencies
npm install
# Compile TypeScript
npm run build
配置
要确保正常运行,需要一个Discord机器人令牌。服务器支持两种传输方法:stdio和可流式HTTP。
运输方式
-
stdio(标准输入输出库) (默认)
- 基本用途的传统stdio传输
- 适用于简单集成
-
可流式传输的HTTP
- 基于HTTP的传输,适用于更复杂场景
- 支持无状态操作
- 可配置的端口号
配置选项
你可以通过两种方式提供配置:
- 环境变量:
DISCORD_TOKEN=your_discord_bot_token
- 使用命令行参数:
# For stdio transport (default)
node build/index.js --config "your_discord_bot_token"
# For streamable HTTP transport
node build/index.js --transport http --port 3000 --config "your_discord_bot_token"
与Claude/Cursor的配合使用
Docker
你可以同时在Docker容器中使用Claude和Cursor:
{
"mcpServers": {
"discord": {
"command": "docker",
"args": [
"run",
"--rm",
"-e",
"DISCORD_TOKEN=your_discord_bot_token",
"-p",
"8080:8080",
"barryy625/mcp-discord:latest",
"--transport",
"http",
"--port",
"8080"
]
}
}
}
克劳德
- 使用stdio传输方式:
{
"mcpServers": {
"discord": {
"command": "node",
"args": [
"path/to/mcp-discord/build/index.js",
"--config",
"your_discord_bot_token"
]
}
}
}
- 使用可流式传输的HTTP传输:
{
"mcpServers": {
"discord": {
"command": "node",
"args": [
"path/to/mcp-discord/build/index.js",
"--transport",
"http",
"--port",
"3000",
"--config",
"your_discord_bot_token"
]
}
}
}
光标
- 使用stdio传输方式:
{
"mcpServers": {
"discord": {
"command": "cmd",
"args": [
"/c",
"node",
"path/to/mcp-discord/build/index.js",
"--config",
"your_discord_bot_token"
]
}
}
}
- 使用可流式传输的HTTP传输:
{
"mcpServers": {
"discord": {
"command": "cmd",
"args": [
"/c",
"node",
"path/to/mcp-discord/build/index.js",
"--transport",
"http",
"--port",
"3000",
"--config",
"your_discord_bot_token"
]
}
}
}
工具文档
基本功能
discord_send向指定频道发送消息(支持频道ID和频道名称)discord_get_server_info获取Discord服务器信息
渠道管理
discord_create_text_channel创建一个文本频道discord_delete_channel删除一个频道
论坛功能
discord_get_forum_channels获取论坛频道列表discord_create_forum_post创建一个论坛帖子discord_get_forum_post获取一个论坛帖子discord_reply_to_forum回复论坛帖子discord_delete_forum_post删除论坛帖子
消息和反应
discord_read_messages读取频道消息discord_add_reaction给消息添加反应discord_add_multiple_reactions给消息添加多个反应discord_remove_reaction从消息中移除一个反应discord_delete_message从频道中删除特定消息
Webhook管理
discord_create_webhook为Discord频道创建一个新的Webhookdiscord_send_webhook_message使用Webhook向Discord频道发送消息discord_edit_webhook编辑Discord频道的现有webhookdiscord_delete_webhook删除Discord频道的现有webhook
发展
# Development mode
npm run dev