关于 Discord Raw API MCP Server
Discord Raw API MCP Server 通过一个灵活工具向 MCP 客户端开放 Discord API,支持 REST 请求和斜杠命令语法,可用于管理角色、发送消息及查询服务器信息。
主要功能
- 01单一工具调用 Discord API
- 02支持 REST 请求与斜杠命令语法
- 03支持 GET、POST、PUT、PATCH 和 DELETE
- 04可选 JSON 请求负载
适用场景
- 01创建或修改 Discord 角色
- 02向 Discord 频道发送消息
- 03获取服务器信息
MCP 相关
它向 MCP 客户端提供 `discord_api` 工具,可通过 HTTP 方法、端点和可选负载调用 Discord API。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
还没有获取到工具列表
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Discord Raw API MCP Server
此 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 Developer Portal 创建一个新应用
- 创建一个机器人并复制令牌
- 启用所需的特权意图:
- MESSAGE CONTENT INTENT
- PRESENCE INTENT
- SERVER MEMBERS INTENT
- 使用 OAuth2 URL Generator 邀请机器人加入你的服务器
-
克隆并安装软件包:
# 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 许可证
评论
支持 Markdown
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。