Skip to main content
Glama

mcp-discord

最完整的 Discord 开源 MCP 服务器。

License: MIT Node.js TypeScript GitHub stars

让任何 MCP 客户端(Claude、Cursor、自定义智能体)完全控制 Discord — 包括消息、审核、频道、角色等。源自 delfus.app 的生产环境使用经验,现已开源回馈社区。

葡萄牙语 (BR)


为什么选择 mcp-discord?

  • 30+ 种工具,涵盖 8 个类别 — 服务器、频道、消息、反应、成员、角色、审核和监控

  • 双模式 — 既可独立运行(作为独立进程),也可作为插件集成到现有的 discord.js 机器人中

  • 仅 REST 或网关模式 — 可选择轻量级的仅 REST 模式,或用于实时功能的完整 WebSocket 网关

  • 两种传输方式 — stdio(默认,适用于 Claude Desktop / Claude Code)或带有 Bearer 令牌认证的 HTTP

  • 生产环境验证 — 在 delfus.app 的生产环境中构建并使用


快速入门

前置要求

安装

# Clone the repository
git clone https://github.com/goul4rt/mcp-discord.git
cd mcp-discord

# Install dependencies
npm install

# Build
npm run build

配置

cp .env.example .env

编辑 .env 文件并添加你的 Discord 机器人令牌:

DISCORD_TOKEN=your-bot-token-here

运行

# stdio transport (default — for MCP clients like Claude)
npm start

# HTTP transport (for remote/web clients)
npm run start:http

MCP 客户端配置

Claude Desktop / Claude Code

添加到你的 MCP 配置文件中:

{
    "mcpServers": {
        "discord": {
            "command": "node",
            "args": ["dist/standalone.js"],
            "cwd": "/path/to/mcp-discord",
            "env": {
                "DISCORD_TOKEN": "your-bot-token-here"
            }
        }
    }
}

使用网关(实时功能)

{
    "mcpServers": {
        "discord": {
            "command": "node",
            "args": ["dist/standalone.js"],
            "cwd": "/path/to/mcp-discord",
            "env": {
                "DISCORD_TOKEN": "your-bot-token-here",
                "DISCORD_USE_GATEWAY": "true"
            }
        }
    }
}

工具

服务器 / 公会 (2 种工具)

工具

描述

list_servers

列出机器人有权访问的所有 Discord 服务器

get_server_info

获取特定服务器的详细信息

频道 (7 种工具)

工具

描述

get_channels

列出服务器中的所有频道

get_channel

获取频道的详细信息

create_channel

创建文本、语音、分类、公告、论坛或舞台频道

edit_channel

编辑频道名称、主题、NSFW、慢速模式、位置、分类

delete_channel

永久删除频道

create_thread

在频道中创建主题(可选从消息创建)

archive_thread

归档主题

消息 (8 种工具)

工具

描述

send_message

发送带有文本、富嵌入和回复的消息

read_messages

分页读取最近的消息(最多 100 条)

search_messages

按内容、作者或频道搜索消息

edit_message

编辑机器人发送的消息

delete_message

删除单条消息

delete_messages_bulk

批量删除 2-100 条消息(需小于 14 天)

pin_message

置顶消息

unpin_message

取消置顶消息

反应 (2 种工具)

工具

描述

add_reaction

添加表情反应(Unicode 或自定义)

remove_reaction

移除反应

成员 / 用户 (4 种工具)

工具

描述

list_members

分页列出服务器成员

get_member

获取详细成员信息(角色、昵称、加入日期)

get_user

通过 ID 获取任何 Discord 用户的信息

search_members

按用户名或昵称搜索成员

角色 (4 种工具)

工具

描述

list_roles

列出所有角色及其权限、颜色和成员数量

create_role

创建新角色

add_role

为成员添加角色

remove_role

从成员移除角色

审核 (4 种工具)

工具

描述

timeout_user

暂时禁言用户(最长 28 天)

kick_user

将用户踢出服务器

ban_user

封禁用户并可选择删除其消息

unban_user

解封用户

监控 (2 种工具)

工具

描述

get_audit_log

查看服务器审计日志(封禁、踢出、更改)

check_mentions

查找最近对机器人或用户的 @提及


架构

┌─────────────────────────────────────────────────┐
│                  MCP Client                      │
│          (Claude, Cursor, custom)                │
└──────────────────┬──────────────────────────────┘
                   │ stdio or HTTP
┌──────────────────▼──────────────────────────────┐
│               MCP Server                         │
│         (transport + tool routing)                │
└──────────────────┬──────────────────────────────┘
                   │
┌──────────────────▼──────────────────────────────┐
│            Tool Registry                         │
│         (30 tools, Zod validation)               │
└──────────────────┬──────────────────────────────┘
                   │
┌──────────────────▼──────────────────────────────┐
│          DiscordProvider (interface)              │
├─────────────────────┬───────────────────────────┤
│ StandaloneProvider  │  IntegratedProvider        │
│ (own token + REST/  │  (uses host bot's          │
│  optional gateway)  │   existing connection)      │
└─────────────────────┴───────────────────────────┘
                   │
┌──────────────────▼──────────────────────────────┐
│              Discord API                         │
└─────────────────────────────────────────────────┘

提供程序抽象: MCP 工具从不直接接触 discord.js。它们调用 DiscordProvider 接口,该接口有两个实现:

  • StandaloneProvider — 使用机器人令牌创建自己的连接。以 REST 为主,可选网关。在作为独立进程运行时使用。

  • IntegratedProvider — 从宿主机器人接收现有的 discord.js Client。零开销,共享缓存和网关。在嵌入到现有机器人时使用。


集成指南

要将 mcp-discord 作为插件在现有的 discord.js 机器人中使用:

import { IntegratedProvider, createMcpServer } from 'mcp-discord';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';

// Your existing discord.js client
const provider = new IntegratedProvider({ client: myDiscordClient });
await provider.connect();

const server = createMcpServer({ provider });
const transport = new StdioServerTransport();
await server.connect(transport);

IntegratedProvider 使用你机器人现有的网关连接 — 无需额外的 WebSocket,无需额外的身份验证,无需额外的内存。


配置参考

变量

必需

默认值

描述

DISCORD_TOKEN

Discord 机器人令牌

DISCORD_USE_GATEWAY

false

连接到 Discord WebSocket 网关以获取实时功能

MCP_TRANSPORT

stdio

传输模式:stdiohttp

MCP_PORT

3100

HTTP 服务器端口(仅当 MCP_TRANSPORT=http 时)

MCP_AUTH_TOKEN

用于 HTTP 传输身份验证的 Bearer 令牌


贡献

欢迎贡献!请参阅 CONTRIBUTING.md 了解开发设置、代码规范以及如何添加新工具。


许可证

MIT


作者

@goul4rt 创建。源自 delfus.app,现已开源回馈社区。

-
security - not tested
A
license - permissive license
-
quality - not tested

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

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/goul4rt/mcp-discord'

If you have feedback or need assistance with the MCP directory API, please join our Discord server