Discord直连管理
启用通过REST API调用和斜杠命令语法与Discord API的直接交互,用于机器人管理、服务器配置和消息操作。
可用工具 (1 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
discord_api 3 个参数 需填 2 项
Execute raw Discord API commands. Supports both REST API calls and application commands.
必填参数:method、endpoint
服务介绍
Discord Raw API MCP 服务器
此 MCP 服务器通过一个灵活的工具提供原始 Discord API 访问。它同时支持 REST API 调用和斜杠命令语法。
安装
通过 Smithery 安装
要通过 Smithery 自动为 Claude Desktop 安装 Discord Raw API:
npx -y @smithery/cli install @hanweg/mcp-discord-raw --client claude
手动安装
-
设置您的 Discord 机器人:
- 在 Discord 开发者门户 创建一个新的应用程序
- 创建一个机器人并复制令牌
- 启用所需的特权意图:
- 消息内容意图
- 在线状态意图
- 服务器成员意图
- 使用 OAuth2 URL 生成器将机器人邀请到您的服务器
-
克隆并安装包:
# 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
}
}
斜杠命令风格
{
"method": "POST",
"endpoint": "/role create name:Bot_Master color:blue permissions:8 mentionable:true guild_id:123456789"
}
示例
- 创建角色:
{
"method": "POST",
"endpoint": "/role create name:Moderator color:red permissions:moderate_members guild_id:123456789"
}
- 发送消息:
{
"method": "POST",
"endpoint": "channels/123456789/messages",
"payload": {
"content": "Hello from the API!"
}
}
- 获取服务器信息:
{
"method": "GET",
"endpoint": "guilds/123456789"
}
建议:
将服务器、频道和用户 ID 以及一些示例放在项目知识库中,以避免每次都提醒模型这些信息,并附上类似以下内容以开始使用:
“这是如何有效使用 Discord 原始 API 工具的方法:
该工具名为 discord_api 并接受三个参数:
- method: HTTP 方法("GET", "POST", "PUT", "PATCH", "DELETE")
- endpoint: Discord API 端点(例如,"guilds/{guild.id}/roles")
- payload: 请求体中的可选 JSON 对象
我使用的一些关键示例: - 创建角色:
discord_api
method: POST
endpoint: guilds/{server_id}/roles
payload: {
"name": "Role Name",
"color": 3447003, // Blue color in decimal
"mentionable": true
}
- 创建类别和频道:
// 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"
}
- 将频道移动到类别:
discord_api
method: PATCH
endpoint: channels/{channel_id}
payload: {
"parent_id": "category_id"
}
- 发送消息:
discord_api
method: POST
endpoint: channels/{channel_id}/messages
payload: {
"content": "Message text with emojis \ud83d\ude04"
}
- 分配角色:
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 许可证