Discord MCP服务器

一个Discord MCP服务器,使AI助手能够与Discord平台交互,提供登录、消息管理、频道管理、论坛功能和Webhook管理等功能。

  • by danushkumar-v
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Danushkumar-V/mcp-discord

使用说明

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的安全模型,机器人只能访问其已被明确添加到的服务器中的信息。
如果你想使用这个MCP服务器来访问特定的Discord服务器,你必须先将机器人添加到那个服务器中。
使用下面的邀请链接将机器人添加到您的目标服务器。

安装

通过NPM安装

你可以使用以下命令来运行它:

npx mcp-discord --config ${DISCORD_TOKEN}

如需更多详情,您可以查看 NPM 包。

通过Smithery进行安装

通过自动安装 mcp-discord “Smithery”可以翻译为“铁匠铺”或“锻造工坊”。这个词汇结合了“Smith”(通常指铁匠或工匠)和“-ery”(表示某种工坊或场所的后缀),用来指代一个进行金属加工或锻造工作的场所

通过 Docker 安装

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

Docker Hub 仓库: barryy625/mcp-discord 翻译为中文是:“巴里y625/MCP-迪斯科德”(注:这里的“MCP-迪斯科德”是根据“mcp-discord”的音译和意译结合的结果,实际上“MCP”可能是一个特定项目或团队的名称,而“Discord”是即时通讯软件Discord的音译,因此具体翻译可能需要根据上下文调整)。不过,更简洁且常见的翻译可能是“巴里y625/MCP-迪斯科(Discord项目)”

# 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。

运输方式

  1. stdio(标准输入输出库) (默认)

    • 基本用途的传统stdio传输
    • 适用于简单集成
  2. 可流式传输的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/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"
            ]
        }
    }
}

克劳德

  1. 使用stdio传输方式:
{
    "mcpServers": {
        "discord": {
            "command": "node",
            "args": [
                "path/to/mcp-discord/build/index.js",
                "--config",
                "your_discord_bot_token"
            ]
        }
    }
}
  1. 使用可流式传输的HTTP传输:
{
    "mcpServers": {
        "discord": {
            "command": "node",
            "args": [
                "path/to/mcp-discord/build/index.js",
                "--transport",
                "http",
                "--port",
                "3000",
                "--config",
                "your_discord_bot_token"
            ]
        }
    }
}

光标

  1. 使用stdio传输方式:
{
    "mcpServers": {
        "discord": {
            "command": "cmd",
            "args": [
                "/c",
                "node",
                "path/to/mcp-discord/build/index.js",
                "--config",
                "your_discord_bot_token"
            ]
        }
    }
}
  1. 使用可流式传输的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频道创建一个新的Webhook
  • discord_send_webhook_message使用Webhook向Discord频道发送消息
  • discord_edit_webhook编辑Discord频道的现有webhook
  • discord_delete_webhook删除Discord频道的现有webhook

发展

# Development mode
npm run dev

许可证

麻省理工学院许可证(MIT License)