Discord MCP服务

Discord MCP服务通过模型上下文协议(MCP)使AI代理能够与Discord平台交互,提供消息管理、频道操作、论坛支持、反应处理和Webhook集成等功能。

  • by BrainDAO
  • TypeScript
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 IQAIcom/mcp-discord

使用说明

💬 断开MCP服务器

概述

Discord MCP服务器使AI代理能够通过模型上下文协议(MCP)与Discord平台进行交互。此服务器提供对Discord功能的全面访问,包括消息传递、频道管理、论坛操作、反应和webhook管理。

通过实施MCP,该服务器允许大型语言模型(LLM)读取和发送消息,管理频道和论坛,处理反应,并直接通过其上下文窗口与Webhook交互,从而弥合了AI和Discord社区之间的差距。

服务器通过采样功能支持双向通信,允许机器人监听消息并在被提及时自动响应。

特性

  • 消息管理:在Discord频道中发送、阅读和删除消息
  • 渠道运作:创建和删除具有自定义主题的文本频道
  • 论坛支持:使用标签支持创建、阅读、回复和删除论坛帖子
  • 反应处理:向消息添加单个或多个反应
  • Webhook集成:通过webhooks创建、编辑、删除和发送消息
  • 服务器信息:检索详细的服务器信息,包括频道和成员计数

安装

使用npx(推荐)

要使用此服务器而不全局安装,请执行以下操作:

npx @iqai/mcp-discord --config ${DISCORD_TOKEN}

从源代码构建

git clone https://github.com/IQAIcom/mcp-discord.git
cd mcp-discord
pnpm install
pnpm run build

使用MCP客户端运行

将以下配置添加到MCP客户端设置中(例如。, claude_desktop_config.json).

最小配置

{
  "mcpServers": {
    "discord": {
      "command": "npx",
      "args": ["-y", "@iqai/mcp-discord", "--config", "YOUR_DISCORD_TOKEN"]
    }
  }
}

高级配置(本地构建)

{
  "mcpServers": {
    "discord": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-discord/dist/index.js"],
      "env": {
        "DISCORD_TOKEN": "your_discord_bot_token",
        "SAMPLING_ENABLED": "true",
        "TRANSPORT": "stdio"
      }
    }
  }
}

配置(环境变量)

变量 必填 描述 默认值
DISCORD_TOKEN 是 来自开发者门户的Discord机器人令牌 -
SAMPLING_ENABLED 否 启用双向消息采样 true
TRANSPORT 否 运输方式: stdio 或 http stdio
HTTP_PORT 否 HTTP传输端口 8080
DEFAULT_RATE_LIMIT_SECONDS 无 每个用户采样请求的速率限制(秒) 2
DEFAULT_MESSAGE_CHUNK_SIZE 否 采样响应的最大消息块大小 2000
RESPOND_TO_MENTIONS_ONLY 否 仅回复提及机器人的消息 true
BLOCK_DMS 否 阻止向机器人发送直接消息 true
BLOCKED_GUILDS 否 要阻止的以逗号分隔的公会ID列表 ""
BANNED_USERS 否 要禁止的逗号分隔的用户ID列表 ""
REACTION_SAMPLING_ENABLED 否 启用AI生成的上下文反应 false
REACTION_TIMEOUT_MS 否 反应采样请求超时(ms) 3000
REACTION_FALLBACK_EMOJI 否 反应采样失败时回退表情符号 "🤔"

先决条件

在使用此MCP服务器之前,您需要:

  1. 具有适当权限的Discord机器人 Discord开发者门户
  2. 启用以下意图:消息内容、服务器成员、状态
  3. 使用所需权限将机器人添加到您的服务器(管理员建议,或频道、消息、Webhook的特定权限)

用法示例

消息操作

  • “向#general频道发送一条消息,说‘大家好!’”
  • “阅读公告频道的最后10条消息”
  • “从#垃圾邮件通道中删除ID为123456789的邮件”

渠道管理

  • 创建一个名为“项目更新”的新文本频道,主题为“项目状态更新”
  • “删除频道#旧频道”
  • “获取所有服务器信息,包括频道列表”

论坛运营

  • “列出此服务器中的所有论坛频道”
  • “创建一个名为“功能请求”的新论坛帖子,其中包含有关新功能的内容”
  • “用状态更新回复论坛上关于bug的帖子”

反应处理

  • “在#feedback中为最新消息添加竖起大拇指的反应”
  • “添加多种反应(🎉 🚀 ✅) 到公告消息“
  • “从该消息中删除我的反应”

Webhook管理

  • “在#alerts频道中创建一个名为‘Notifications Bot’的webhook”
  • “通过webhook发送消息以发布‘系统警报’”
  • “从#旧通知中删除未使用的webhook”

MCP工具

discord_add_multiple_reactions

同时向Discord消息添加多个表情符号反应

参数 类型 必填 说明
channelId string ✅
messageId string ✅
emojis 数组 ✅

discord_add_reaction

将表情符号反应添加到特定的Discord消息中

参数 类型 必填 说明
channelId string ✅
messageId string ✅
emoji string ✅

discord_create_category

在Discord服务器中创建新类别。

参数 类型 必填 说明
guildId string ✅
name string ✅
position 编号
reason 字符串

discord_create_forum_post

在Discord论坛频道中创建带有可选标签的新帖子

参数 类型 必填 说明
forumChannelId string ✅
title string ✅
content string ✅
tags 数组

discord_create_text_channel

在Discord服务器中创建具有可选主题的新文本频道

参数 类型 必填 说明
guildId string ✅
channelName string ✅
topic 字符串

discord_create_webhook

为Discord频道创建新的webhook

参数 类型 必填 说明
channelId string ✅
name string ✅
avatar 字符串
reason 字符串

discord_delete_category

按ID删除Discord类别。

参数 类型 必填 说明
categoryId string ✅
reason 字符串

discord_delete_channel

删除带有可选原因的Discord频道

参数 类型 必填 说明
channelId string ✅
reason 字符串

discord_delete_forum_post

删除带有可选原因的论坛帖子或帖子

参数 类型 必填 说明
threadId string ✅
reason 字符串

discord_delete_message

从Discord文本频道删除特定消息

参数 类型 必填 说明
channelId string ✅
messageId string ✅
reason 字符串

discord_delete_webhook

删除Discord频道的现有webhook

参数 类型 必填 说明
webhookId string ✅
webhookToken 字符串
reason 字符串

discord_edit_category

编辑现有的Discord类别(名称和位置)。

参数 类型 必填 说明
categoryId string ✅
name 字符串
position 编号
reason 字符串

discord_edit_webhook

编辑Discord频道的现有webhook

参数 类型 必填 说明
webhookId string ✅
webhookToken 字符串
name 字符串
avatar 字符串
channelId 字符串
reason 字符串

discord_get_forum_channels

列出指定Discord服务器(公会)中的所有论坛频道

参数 类型 必填 说明
guildId string ✅

discord_get_forum_post

检索论坛帖子的详细信息,包括其消息

参数 类型 必填 说明
threadId string ✅

discord_get_server_info

检索有关Discord服务器的详细信息,包括频道和成员计数

参数 类型 必填 说明
guildId string ✅

discord_login

使用配置的令牌登录Discord

参数 类型 必填 说明
token 字符串

discord_read_messages

使用可配置的限制从Discord文本通道检索消息

参数 类型 必填 默认 说明
channelId string ✅
limit 数字 50

discord_remove_reaction

从Discord消息中删除特定的表情符号反应

参数 类型 必填 说明
channelId string ✅
messageId string ✅
emoji string ✅
userId 字符串

discord_reply_to_forum

向现有论坛帖子或帖子添加回复

参数 类型 必填 说明
threadId string ✅
message string ✅

discord_send

向指定的Discord文本频道发送消息

参数 类型 必填 说明
channelId string ✅
message string ✅

discord_send_webhook_message

使用webhook向Discord频道发送消息

参数 类型 必填 说明
webhookId string ✅
webhookToken string ✅
content string ✅
username 字符串
avatarURL 字符串
threadId 字符串

发展

建设项目

pnpm run build

开发模式(观看)

pnpm run watch

装订和格式化

pnpm run lint
pnpm run format

项目结构

  • src/tools/:个人工具处理人员
  • src/tool-list.ts:MCP工具定义
  • src/schemas.ts:Zod验证模式
  • src/sampling.ts:双向采样功能
  • src/index.ts:服务器入口点

资源

免责声明

本项目是一个非官方工具,不直接隶属于Discord股份有限公司。用户有责任确保其机器人程序的使用符合Discord的服务条款和开发者条款。

许可证

麻省理工学院