Discord Raw API MCP Server について
Discord Raw API MCP Serverは、1つの柔軟なツールを通じてDiscord APIをMCPクライアントに公開します。REST形式とスラッシュコマンド形式に対応し、ロール管理やメッセージ送信などに利用できます。
主な機能
- 01単一ツールでDiscord APIを呼び出し
- 02RESTリクエストとスラッシュコマンド形式
- 03GET、POST、PUT、PATCH、DELETEに対応
- 04任意のJSONリクエストペイロード
活用シーン
- 01Discordロールの作成や変更
- 02Discordチャンネルへのメッセージ送信
- 03サーバー情報の取得
MCP 対応
MCPクライアントに、HTTPメソッド、エンドポイント、任意のペイロードでDiscord APIを呼び出す `discord_api` ツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Discord Raw API MCP サーバー
この MCP サーバーは、柔軟な単一のツールを通じて Discord API に直接アクセスできます。REST API 呼び出しとスラッシュコマンド構文の両方に対応しています。
インストール
Smithery 経由でのインストール
Smithery 経由で、Discord Raw API を Claude Desktop に自動でインストールするには:
npx -y @smithery/cli install @hanweg/mcp-discord-raw --client claude
手動インストール
-
Discord bot をセットアップします:
- Discord Developer Portal で新しいアプリケーションを作成します
- bot を作成し、トークンをコピーします
- 必要な特権インテントを有効にします:
- MESSAGE CONTENT INTENT
- PRESENCE INTENT
- SERVER MEMBERS INTENT
- OAuth2 URL Generator を使って bot をサーバーに招待します
-
パッケージをクローンしてインストールします:
# 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 の raw API ツールを効果的に使う方法は次のとおりです: ツール名は discord_api で、次の 3 つのパラメーターを受け取ります:
- 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 = ステージ
- ロールの色は 16 進数ではなく 10 進数形式です
- ほとんどの変更用エンドポイントでは PATCH メソッドを使います
- 空のペイロードには null ではなく {} を指定します」
ライセンス
MIT ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。