返回市场
MCP-Discord-原始数据

MCP-Discord-原始数据

作者:hanweg8 星标更新:2025-02-02

项目介绍

Discord 原始 API MCP 服务器

smithery 徽章 此 MCP 服务器通过单一灵活工具提供原始 Discord API 访问。它支持 REST API 调用和斜杠命令语法。

<a href="https://glama.ai/mcp/servers/ct3fi5s557"><img width="380" height="200" src="https://gips1.baidu.com/it/u=540119551,4003294246&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Discord 原始 API 服务器 MCP 服务器" /></a>

安装

通过 Smithery 安装

要通过 Smithery 自动安装 Discord 原始 API 到 Claude Desktop:

npx -y @smithery/cli install @hanweg/mcp-discord-raw --client claude

手动安装

  1. 设置你的 Discord 机器人:

    • Discord 开发者门户 创建一个新的应用
    • 创建一个机器人并复制令牌
    • 启用所需的特权意图:
      • 消息内容意图
      • 在线状态意图
      • 服务器成员意图
    • 使用 OAuth2 URL 生成器邀请机器人到你的服务器
  2. 克隆并安装包:

# 克隆仓库
git clone https://github.com/hanweg/mcp-discord-raw.git
cd mcp-discord-raw

# 创建并激活虚拟环境
uv venv
.venv\Scripts\activate

### 如果使用 Python 3.13+ - 安装 audioop 库:`uv pip install audioop-lts`

# 安装包
uv pip install -e .

配置

在你的 claude_desktop_config.json 中添加以下内容

    "discord-raw": {
      "command": "uv",
      "args": [
        "--directory", 
        "PATH/TO/mcp-discord-raw",
        "run",
        "discord-raw-mcp"
      ],
      "env": {
        "DISCORD_TOKEN": "YOUR-BOT-TOKEN"
      }
    }

使用方法

REST API 样式

{
    "method": "POST",
    "endpoint": "guilds/123456789/roles",
    "payload": {
        "name": "Bot Master",
        "permissions": "8",
        "color": 3447003,
        "mentionable": true
    }
}

斜杠命令样式

{
    "method": "POST",
    "endpoint": "/role create name:Bot_Master color:blue permissions:8 mentionable:true guild_id:123456789"
}

示例

  1. 创建角色:
{
    "method": "POST",
    "endpoint": "/role create name:Moderator color:red permissions:moderate_members guild_id:123456789"
}
  1. 发送消息:
{
    "method": "POST",
    "endpoint": "channels/123456789/messages",
    "payload": {
        "content": "Hello from the API!"
    }
}
  1. 获取服务器信息:
{
    "method": "GET",
    "endpoint": "guilds/123456789"
}

推荐:

将服务器、频道和用户 ID 以及一些示例放入项目知识中,以避免需要提醒模型这些信息,同时可以这样开始:

“这是如何有效地使用 Discord 原始 API 工具的方法: 该工具名为 discord_api,并接受三个参数:

  1. 方法:HTTP 方法("GET", "POST", "PUT", "PATCH", "DELETE")
  2. 端点:Discord API 端点(例如,“guilds/{guild.id}/roles”)
  3. 负载:请求正文的可选 JSON 对象 我使用的关键示例如下:
  4. 创建角色:
discord_api
method: POST
endpoint: guilds/{server_id}/roles
payload: {
    "name": "Role Name",
    "color": 3447003,  // 十进制蓝色
    "mentionable": true
}
  1. 创建类别和频道:
// 类别
discord_api
method: POST
endpoint: guilds/{server_id}/channels
payload: {
    "name": "Category Name",
    "type": 4  // 4 = 类别
}
// 类别中的文本频道
discord_api
method: POST
endpoint: guilds/{server_id}/channels
payload: {
    "name": "channel-name",
    "type": 0,  // 0 = 文本频道
    "parent_id": "category_id",
    "topic": "频道描述"
}
  1. 将频道移动到类别:
discord_api
method: PATCH
endpoint: channels/{channel_id}
payload: {
    "parent_id": "category_id"
}
  1. 发送消息:
discord_api
method: POST
endpoint: channels/{channel_id}/messages
payload: {
    "content": "带有表情符号的消息 \ud83d\ude04"
}
  1. 分配角色:
discord_api
method: PUT
endpoint: guilds/{server_id}/members/{user_id}/roles/{role_id}
payload: {}

该工具支持完整的 Discord API,因此你可以参考 Discord API 文档获取更多端点和功能。响应包括你可以用于后续请求的 ID 和其他元数据。 小贴士:

  • 保存创建请求返回的 ID 以便在后续请求中使用
  • 可以在消息内容中直接包含 Unicode 表情符号?告诉模型使用如 :champagne_glass: 这样的 Discord 表情符号 - 包含 Unicode 表情符号的消息会挂起 Claude Desktop?
  • 频道类型:0 = 文本,2 = 语音,4 = 类别,13 = 舞台
  • 角色颜色以十进制形式表示(非十六进制)
  • 大多数修改端点使用 PATCH 方法
  • 空负载应为 {} 而不是 null"

许可证

MIT 许可证