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 ボットを設定します。
パッケージをクローンしてインストールします。
# 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 .
Related MCP server: MCP-Discord
構成
これを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 と呼ばれ、3 つのパラメータを取ります。
メソッド: HTTP メソッド ("GET"、"POST"、"PUT"、"PATCH"、"DELETE")
エンドポイント: Discord API エンドポイント (例: "guilds/{guild.id}/roles")
ペイロード: リクエスト本文のオプションの 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 = ステージ
ロールの色は10進数形式(16進数ではない)です
ほとんどの変更エンドポイントはPATCHメソッドを使用します
空のペイロードは null ではなく {} である必要があります
ライセンス
MITライセンス