Discord原始API服务器

提供通过单一灵活工具访问Discord原始API的服务,支持REST API调用和斜杠命令语法。

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

使用说明

Discord Raw API MCP服务器

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

安装

通过Smithery安装

通过自动安装Discord Raw API for Claude Desktop 史密瑟里:

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

手动安装

  1. 设置你的Discord机器人:

    • 在以下位置创建新应用程序 Discord开发者门户
    • 创建一个机器人并复制令牌
    • 启用所需的特权意图:
      • 消息内容意图
      • 在场意图
      • 服务器成员意图
    • 使用OAuth2 URL生成器将机器人邀请到您的服务器
  2. 克隆并安装软件包:

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

# Create and activate virtual environment
uv venv
.venv\Scripts\activate

### If using Python 3.13+ - install audioop library: `uv pip install audioop-lts`

# Install the package
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
    }
}

Slash命令风格

{
    "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工具: 该工具名为discrid_api,有三个参数:

  1. 方法:HTTP方法(“GET”、“POST”、“PUT”、“PATCH”、“DELETE”)
  2. endpoint:Discord API端点(例如,“公会/{公会.id}/角色”)
  3. payload:请求正文的可选JSON对象 我用过的主要例子:
  4. 创建角色:
discord_api
method: POST
endpoint: guilds/{server_id}/roles
payload: {
    "name": "Role Name",
    "color": 3447003,  // Blue color in decimal
    "mentionable": true
}
  1. 创建类别和渠道:
// Category
discord_api
method: POST
endpoint: guilds/{server_id}/channels
payload: {
    "name": "Category Name",
    "type": 4  // 4 = category
}
// Text channel in category
discord_api
method: POST
endpoint: guilds/{server_id}/channels
payload: {
    "name": "channel-name",
    "type": 0,  // 0 = text channel
    "parent_id": "category_id",
    "topic": "Channel description"
}
  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": "Message text with emojis \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:-带有unicode表情符号的消息挂在Claude Desktop上?
  • 频道类型:0=文本,2=语音,4=类别,13=舞台
  • 角色颜色采用十进制格式(不是十六进制)
  • 大多数修改端点使用PATCH方法
  • 空有效载荷应为{}而非null“

许可证

MIT许可证