Discord管理协议服务器

一个基于Model Context Protocol(MCP)的服务器,通过自然语言为AI助手提供Discord REST API工具,实现消息发送、频道管理、成员审核等功能。

  • by rexendz
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 rexendz/discord-mcp

使用说明

不和谐mcp

A. 模型上下文协议(MCP) 公开Discord REST API作为人工智能助手(如GitHub Copilot)工具的服务器。建于 FastMCP,它允许任何兼容MCP的客户端在Discord服务器中发送消息、管理通道、调节成员、处理角色和控制线程,所有这些都可以通过自然语言完成。

[!重要] 该项目的设计和测试完全由 VS Code 和那个 GitHub Copilot聊天扩展. 它有 不 已使用其他代理工具或MCP客户端(例如Claude Code、Cursor、Continue或任何其他第三方工具)进行了测试。与这些环境的兼容性没有保证,也完全没有经过测试。在VS Code+GitHub Copilot之外使用由您自行承担风险。

工具

服务器暴露 40工具 分为五类。

💬 消息

工具 说明
send_message 向频道发送消息
get_messages 从频道检索最近的消息
get_message 检索特定消息
edit_message 编辑现有的机器人消息
delete_message 删除消息
pin_message 在通道中固定消息
unpin_message 从频道中打开消息
get_pinned_messages 列出频道中的所有固定消息
add_reaction 在消息中添加表情符号反应
delete_reaction 从消息中删除机器人的反应

📢 频道

工具 说明
get_channel 获取频道信息
list_guild_channels 列出公会中的所有频道
create_channel 创建新频道
edit_channel 修改现有频道
delete_channel 删除频道
get_channel_invites 列出某个频道的所有邀请
create_channel_invite 创建频道邀请

🏰 公会(服务器)

工具 说明
get_guild 获取已配置公会的相关信息
edit_guild 修改公会设置
list_guild_members 列出公会成员
get_guild_member 通过用户ID获取特定公会成员
kick_guild_member 从公会中踢出一名成员
ban_guild_member 禁止用户加入公会
unban_guild_member 取消屏蔽以前被禁止的用户
get_guild_bans 列出公会中的所有禁令
get_guild_invites 列出所有活跃的公会邀请
get_guild_audit_log 检索公会的审核日志

🎭 角色

工具 说明
list_guild_roles 列出公会中的所有角色
create_role 创建新的公会角色
edit_role 修改现有角色
delete_role 删除公会角色
add_role_to_member 为成员分配角色
remove_role_from_member 从成员中删除角色

🧵 线程

工具 说明
create_thread_from_message 从现有消息创建公共线程
create_thread 创建一个未附加到邮件的线程
create_forum_thread 在论坛频道中创建新帖子
list_public_archived_threads 列出通道中的公共存档线程
list_private_archived_threads 列出通道中的私有存档线程
list_active_guild_threads 列出公会中的所有活动线程
join_thread 将机器人添加到线程中
leave_thread 从线程中删除机器人
add_thread_member 将用户添加到线程
remove_thread_member 从线程中删除用户
get_thread_member 为用户获取线程成员对象
list_thread_members 列出一个线程的所有成员
edit_thread 修改线程的设置

先决条件

  • Python 3.11或更高版本
  • 紫外线 (推荐)或pip
  • 具有所需权限的Discord机器人令牌
  • 您的Discord服务器(公会)ID

设置

1.创建Discord Bot

  1. 去 Discord开发者门户 并创建新的应用程序。
  2. 引导到 机器人 并创建一个机器人。复制 代币.
  3. 在...之下 OAuth2→ URL生成器,选择 bot 您的用例所需的范围和权限(例如。 发送消息, 管理渠道, 管理角色, 禁止成员).
  4. 在浏览器中打开生成的URL,邀请机器人到您的服务器。

2.安装服务器

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

# Install with uv (recommended)
uv sync

或者使用pip直接从源代码安装:

pip install .

3.配置环境变量

服务器需要两个环境变量:

变量 描述
DISCORD_TOKEN 您的Discord机器人令牌
DISCORD_GUILD_ID 要管理的Discord服务器的ID

VS代码设置(GitHub Copilot)

您可以将此MCP服务器与 VS代码中的GitHub副本.

选项A——工作区配置(.vscode/mcp.json)

添加一个 .vscode/mcp.json 将文件添加到您的项目中,以便任何打开它的人都可以使用服务器:

{
  "servers": {
    "discord-mcp": {
      "type": "stdio",
      "command": "uvx",
      "args": ["--from", "path/to/discord-mcp", "discord-mcp"],
      "env": {
        "DISCORD_TOKEN": "${input:discordToken}",
        "DISCORD_GUILD_ID": "${input:discordGuildId}"
      }
    }
  },
  "inputs": [
    {
      "id": "discordToken",
      "type": "promptString",
      "description": "Discord bot token",
      "password": true
    },
    {
      "id": "discordGuildId",
      "type": "promptString",
      "description": "Discord Guild (server) ID"
    }
  ]
}

选项B——用户配置(settings.json)

要使服务器在所有VS Code工作区中可用,请将以下内容添加到您的 用户 settings.json (Ctrl+Shift+P → 首选项:打开用户设置(JSON)):

{
  "mcp": {
    "servers": {
      "discord-mcp": {
        "type": "stdio",
        "command": "uvx",
        "args": ["--from", "/absolute/path/to/discord-mcp", "discord-mcp"],
        "env": {
          "DISCORD_TOKEN": "<your-bot-token>",
          "DISCORD_GUILD_ID": "<your-guild-id>"
        }
      }
    }
  }
}

提示: 避免在中硬编码敏感令牌 settings.json.更喜欢使用VS Code ${input:...} 提示机制(如选项A所示)或将凭据存储在系统的密钥管理器中。

使用工具

配置服务器后,打开 副驾驶聊天 面板(Ctrl+Alt+I 在Windows/Linux操作系统上, Cmd+Opt+I 在macOS上),切换到 代理 模式,然后简单地问:

Send a message to channel 1234567890 saying "Hello from Copilot!"

Copilot将自动调用相应的 send_message 工具。

许可证

麻省理工学院