mcpField
M
MCP-Discord

MCP-Discord

本地服务
github.com/barryyip0625通信协作1087 周前更新

关于 MCP-Discord

MCP-Discord 是一个 Discord MCP 服务,让 AI 助手通过 Discord 机器人访问和管理 Discord 平台。它覆盖服务器、频道、论坛、消息、角色、成员和 Webhook 等操作,支持 stdio 与streamable HTTP 两种传输方式。项目基于 Node.js 实现,并提供 Docker 镜像。

主要功能

  1. 01通过 Discord 机器人令牌登录并列出服务器
  2. 02管理文本、论坛、语音频道与分类
  3. 03发布、回复和管理论坛帖子及标签
  4. 04读取、搜索、编辑和删除消息,并管理反应
  5. 05管理角色、成员与 Webhook
  6. 06支持 stdio 与 streamable HTTP 传输

适用场景

  1. 01让 AI 助手在社区服务器中发送通知或整理频道
  2. 02通过论坛工具批量创建与归档帖子
  3. 03按角色和权限配置服务器结构

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露 Discord 相关的工具,如 discord_send、discord_read_messages 和 discord_create_role。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"discord-barryyip0625": {
"command": "npx",
"args": [
"-y",
"mcp-discord"
]
}
}
}
启动命令npx -y mcp-discord

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

安装包
npmmcp-discord

工具

22

收录的工具列表 · 更新于 3 周前

参数类型必填说明
guildIdstring是
namestring是
positionnumber否
reasonstring否

详细介绍

MCP-Discord

MCP Toplist MCP Server Docker Hub

一个 Discord MCP(Model Context Protocol)服务,可让 AI 助手与 Discord 平台交互。

MCP-Discord MCP server

概览

MCP-Discord 提供以下与 Discord 相关的功能:

  • 登录 Discord 机器人
  • 列出机器人加入的服务器
  • 获取服务器信息
  • 列出成员并查看成员详情
  • 列出、创建、编辑、删除、分配和移除角色
  • 搜索服务器中的消息
  • 读取、编辑和删除频道消息
  • 向指定频道发送消息
  • 获取论坛频道列表
  • 创建、更新、删除论坛帖子并回复
  • 列出论坛帖子串并管理论坛标签
  • 创建、编辑和删除文本、论坛、语音频道及分类
  • 设置和移除频道权限覆盖
  • 添加/移除消息表情回应
  • 创建/编辑/删除/使用 Webhook

目录

前提条件

注意:
根据 Discord 的安全模型,机器人只能访问明确添加了它的服务器中的信息。
如果要使用此 MCP 服务访问特定的 Discord 服务器,必须先将机器人添加到该服务器。
使用下面的邀请链接将机器人添加到目标服务器。

安装

通过 NPM 安装

你可以使用以下命令:

npx mcp-discord --config ${DISCORD_TOKEN}

更多详情请查看 NPM Package。

通过 Smithery 安装

要通过 Smithery 自动安装 mcp-discord

通过 Docker 安装

你可以使用 Docker 运行 mcp-discord。Docker 镜像会自动构建并发布到 Docker Hub。

Docker Hub 仓库:barryy625/mcp-discord

Docker 默认通过 build/app.js 使用 streamable HTTP 服务端。

# Pull the latest image
docker pull barryy625/mcp-discord:latest

# Run HTTP server on port 8080
docker run -e DISCORD_TOKEN=your_discord_bot_token -p 8080:8080 barryy625/mcp-discord:latest

# Override the listening port if needed
docker run -e DISCORD_TOKEN=your_discord_bot_token -p 3000:3000 barryy625/mcp-discord:latest --transport http --port 3000

可用标签:

  • latest - main 分支中的最新稳定版本
  • v1.3.8 等 - 特定版本的发布版本
手动安装
# 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 和 streamable HTTP。

传输方式
  1. stdio(默认)

    • 用于基本用法的传统 stdio 传输
    • 适用于简单集成
  2. streamable HTTP

    • 适用于更高级场景的基于 HTTP 的传输
    • 支持无状态运行
    • 端口号可配置
配置选项

你可以通过两种方式提供配置:

  1. 环境变量:
DISCORD_TOKEN=your_discord_bot_token
  1. 使用命令行参数:
# For stdio transport (default)
node build/index.js --config "your_discord_bot_token"

# For streamable HTTP transport
node build/app.js --transport http --port 3000 --config "your_discord_bot_token"

与 Claude/Cursor 配合使用

1. 使用 Stdio 传输与 Claude/Cursor 配合

当 MCP 客户端需要基于命令的 stdio 服务端时,请使用 build/index.js。

Claude Desktop / Claude Code
{
    "mcpServers": {
        "discord": {
            "command": "node",
            "args": [
                "path/to/mcp-discord/build/index.js"
            ],
            "env": {
                "DISCORD_TOKEN": "your_discord_bot_token"
            }
        }
    }
}
Cursor
{
    "mcpServers": {
        "discord": {
            "command": "node",
            "args": [
                "path/to/mcp-discord/build/index.js"
            ],
            "env": {
                "DISCORD_TOKEN": "your_discord_bot_token"
            }
        }
    }
}

这是本地基于命令的 MCP 客户端的推荐配置。

2. 自行托管 Streamable HTTP 服务端

如果你想将 mcp-discord 作为 HTTP MCP 服务端运行,请使用 build/app.js。

使用 Node.js 运行
DISCORD_TOKEN=your_discord_bot_token node build/app.js --transport http --port 3000

在 Windows PowerShell 中:

$env:DISCORD_TOKEN="your_discord_bot_token"
node build/app.js --transport http --port 3000
使用 Docker 运行
docker run -e DISCORD_TOKEN=your_discord_bot_token -p 3000:3000 barryy625/mcp-discord:latest --transport http --port 3000

启动后,MCP HTTP 端点为:

http://localhost:3000/mcp
3. 连接到托管的 HTTP MCP 服务端

如果你已在其他位置托管 mcp-discord,请让 MCP 客户端连接到服务端的 /mcp 端点,而不是将 build/app.js 作为命令启动。

端点示例:

https://your-server.example.com/mcp

重要说明:

  • build/app.js 会启动 HTTP 服务端,不支持 stdio。
  • build/index.js 是基于命令的 stdio MCP 客户端的正确入口文件。
  • 如需使用托管的 HTTP 服务,请将 MCP 客户端配置为连接到部署提供的 HTTP 端点 URL。
  • 具体的 HTTP 客户端配置格式取决于你使用的 MCP 客户端。

工具文档

基本功能
  • discord_login:使用已配置的令牌登录 Discord
  • discord_list_servers:列出机器人加入的所有 Discord 服务
  • discord_send:向指定频道发送消息
  • discord_get_server_info:获取 Discord 服务信息
频道管理
  • discord_create_text_channel:创建文本频道
  • discord_create_forum_channel:创建论坛频道
  • discord_create_voice_channel:创建语音频道
  • discord_edit_channel:编辑频道名称、主题、父类别或位置
  • discord_delete_channel:删除频道
  • discord_create_category:创建频道类别
  • discord_edit_category:编辑频道类别
  • discord_delete_category:删除频道类别
  • discord_set_channel_permissions:为频道/类别中的某个角色或用户设置权限覆盖
  • discord_remove_channel_permissions:移除频道/类别的权限覆盖
论坛功能
  • discord_get_forum_channels:获取论坛频道列表
  • discord_create_forum_post:创建论坛帖子(可选择将其置顶)
  • discord_get_forum_post:获取论坛帖子
  • discord_list_forum_threads:列出论坛频道中的活跃和已归档帖子串
  • discord_reply_to_forum:回复论坛帖子
  • discord_get_forum_tags:获取论坛频道的所有可用标签
  • discord_set_forum_tags:替换论坛频道的可用标签
  • discord_update_forum_post:更新论坛帖子的标题、标签、归档状态、锁定状态或置顶状态
  • discord_delete_forum_post:删除论坛帖子
消息和表情回应
  • discord_search_messages:搜索服务器中的消息
  • discord_read_messages:读取频道消息(支持 before、after、around 参数——接受 snowflake ID 或 ISO 8601 日期,例如 "2025-03-01T00:00:00Z")
  • discord_edit_message:编辑由机器人发送的消息
  • discord_add_reaction:为消息添加表情回应
  • discord_add_multiple_reactions:为消息添加多个表情回应
  • discord_remove_reaction:移除消息上的表情回应
  • discord_delete_message:删除频道中的特定消息
  • discord_pin_message:将消息固定到所在频道(每个频道最多固定 50 条)
  • discord_unpin_message:从频道的固定消息中移除一条消息
  • discord_list_pinned_messages:列出频道固定的消息,按固定时间从新到旧排序
Webhook 管理
  • discord_create_webhook:为 Discord 频道创建新的 webhook
  • discord_send_webhook_message:使用 webhook 向 Discord 频道发送消息
  • discord_edit_webhook:编辑 Discord 频道现有的 webhook
  • discord_delete_webhook:删除 Discord 频道现有的 webhook
角色管理
  • discord_list_roles:列出服务器中的所有角色
  • discord_create_role:创建角色,并设置颜色、是否置顶显示、是否可提及和权限选项
  • discord_edit_role:编辑现有角色
  • discord_delete_role:删除角色
  • discord_assign_role:为成员分配角色
  • discord_remove_role:移除成员的角色
成员管理
  • discord_list_members:列出服务器中的成员及其角色
  • discord_get_member:获取特定成员的详细信息

开发

# Development mode
npm run dev

许可证

MIT 许可证

评论

支持 Markdown

第一次接触 MCP?

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

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