Discord MCPサーバー

上級

これはBuilding Blocks, AI, IT Ops分野の自動化ワークフローで、16個のノードを含みます。主にDiscordTool, HttpRequestTool, McpTriggerなどのノードを使用、AI技術を活用したスマート自動化を実現。 自然言語で Discord ボットを制御するための MCP サーバー

前提条件
  • Discord Bot Token または Webhook
  • ターゲットAPIの認証情報が必要な場合あり
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "ly8aZhPk5ZI8uB0Y",
  "meta": {
    "instanceId": "8931e7db592c2960ce253801ea290c1dc66e447734ce3d968310365665cefc80",
    "templateCredsSetupCompleted": true
  },
  "name": "Discord MCP Server",
  "tags": [],
  "nodes": [
    {
      "id": "6e87d612-3006-4683-b978-87718f89257d",
      "name": "チャンネルへDiscordメッセージを送信",
      "type": "n8n-nodes-base.discordTool",
      "position": [
        360,
        280
      ],
      "webhookId": "90b1dca9-c742-4c7e-aef3-ba5a47c5f86d",
      "parameters": {
        "content": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
        "guildId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Server', ``, 'string') }}"
        },
        "options": {},
        "resource": "message",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Channel', ``, 'string') }}"
        }
      },
      "credentials": {
        "discordBotApi": {
          "id": "SJhr2V3Xw4B3fVqW",
          "name": "Gopher"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "32a17a73-8953-4474-a49f-9d1cc0cc3eb2",
      "name": "メンバーにロールを追加",
      "type": "n8n-nodes-base.discordTool",
      "position": [
        -200,
        560
      ],
      "webhookId": "e41a85ec-3f16-44fc-ad87-4617c0d0f1c0",
      "parameters": {
        "role": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Role', ``, 'string') }}",
        "userId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('User', ``, 'string') }}"
        },
        "guildId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Server', ``, 'string') }}"
        },
        "resource": "member",
        "operation": "roleAdd"
      },
      "credentials": {
        "discordBotApi": {
          "id": "SJhr2V3Xw4B3fVqW",
          "name": "Gopher"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "688ea823-b8ea-4bbf-96cb-a64925fc29a9",
      "name": "メンバーからロールを削除",
      "type": "n8n-nodes-base.discordTool",
      "position": [
        -20,
        560
      ],
      "webhookId": "e41a85ec-3f16-44fc-ad87-4617c0d0f1c0",
      "parameters": {
        "role": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Role', ``, 'string') }}",
        "userId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('User', ``, 'string') }}"
        },
        "guildId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Server', ``, 'string') }}"
        },
        "resource": "member",
        "operation": "roleRemove"
      },
      "credentials": {
        "discordBotApi": {
          "id": "SJhr2V3Xw4B3fVqW",
          "name": "Gopher"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "1d8a14f1-8e63-4112-8076-15b4408c844f",
      "name": "Discord MCPサーバートリガー",
      "type": "@n8n/n8n-nodes-langchain.mcpTrigger",
      "position": [
        20,
        -280
      ],
      "webhookId": "404f083e-f3f4-4358-83ef-9804099ee253",
      "parameters": {
        "path": "404f083e-f3f4-4358-83ef-9804099ee253"
      },
      "typeVersion": 1
    },
    {
      "id": "67602807-3126-4564-8fed-912551eb824b",
      "name": "サーバーIDでチャンネルを取得",
      "type": "n8n-nodes-base.discordTool",
      "position": [
        420,
        20
      ],
      "webhookId": "73c49e13-24e9-4481-902d-a5f3e1f50032",
      "parameters": {
        "guildId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Server', ``, 'string') }}"
        },
        "options": {},
        "operation": "getAll",
        "returnAll": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Return_All', ``, 'boolean') }}"
      },
      "credentials": {
        "discordBotApi": {
          "id": "SJhr2V3Xw4B3fVqW",
          "name": "Gopher"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "5f1c3039-7042-48b8-997c-12bcaa6a1256",
      "name": "サーバーIDでメンバーを取得",
      "type": "n8n-nodes-base.discordTool",
      "position": [
        -80,
        20
      ],
      "webhookId": "ebd6d7dd-bcfa-4546-b48d-5e7862129caa",
      "parameters": {
        "after": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('After', ``, 'string') }}",
        "guildId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Server', ``, 'string') }}"
        },
        "options": {},
        "resource": "member",
        "returnAll": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Return_All', ``, 'boolean') }}"
      },
      "credentials": {
        "discordBotApi": {
          "id": "SJhr2V3Xw4B3fVqW",
          "name": "Gopher"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "ece7a065-36bb-4667-aa61-610e54f0b22d",
      "name": "DM送信と返信待機",
      "type": "n8n-nodes-base.discordTool",
      "position": [
        -280,
        280
      ],
      "webhookId": "90b1dca9-c742-4c7e-aef3-ba5a47c5f86d",
      "parameters": {
        "sendTo": "user",
        "userId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('User', ``, 'string') }}"
        },
        "guildId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Server', ``, 'string') }}"
        },
        "message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
        "options": {},
        "resource": "message",
        "operation": "sendAndWait",
        "responseType": "freeText"
      },
      "credentials": {
        "discordBotApi": {
          "id": "SJhr2V3Xw4B3fVqW",
          "name": "Gopher"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "c37d0478-5b00-4d21-b0fd-7e2fa34708ec",
      "name": "チャンネル送信と返信待機",
      "type": "n8n-nodes-base.discordTool",
      "position": [
        580,
        280
      ],
      "webhookId": "90b1dca9-c742-4c7e-aef3-ba5a47c5f86d",
      "parameters": {
        "guildId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Server', ``, 'string') }}"
        },
        "message": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
        "options": {},
        "resource": "message",
        "channelId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Channel', ``, 'string') }}"
        },
        "operation": "sendAndWait",
        "responseType": "freeText"
      },
      "credentials": {
        "discordBotApi": {
          "id": "SJhr2V3Xw4B3fVqW",
          "name": "Gopher"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "fb8091b5-114b-422e-be5a-6413d9aec599",
      "name": "ユーザーへDM送信",
      "type": "n8n-nodes-base.discordTool",
      "position": [
        -60,
        280
      ],
      "webhookId": "90b1dca9-c742-4c7e-aef3-ba5a47c5f86d",
      "parameters": {
        "sendTo": "user",
        "userId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('User', ``, 'string') }}"
        },
        "content": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Message', ``, 'string') }}",
        "guildId": {
          "__rl": true,
          "mode": "id",
          "value": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Server', ``, 'string') }}"
        },
        "options": {},
        "resource": "message"
      },
      "credentials": {
        "discordBotApi": {
          "id": "SJhr2V3Xw4B3fVqW",
          "name": "Gopher"
        }
      },
      "typeVersion": 2
    },
    {
      "id": "6f61b18a-8d96-4acb-994a-45ef32c10f16",
      "name": "DiscordサーバーIDを取得",
      "type": "n8n-nodes-base.httpRequestTool",
      "position": [
        180,
        -60
      ],
      "parameters": {
        "url": "https://discord.com/api/v10/users/@me/guilds",
        "options": {},
        "authentication": "predefinedCredentialType",
        "toolDescription": "Retrieves the ID of each discord server the bot is in.",
        "nodeCredentialType": "discordBotApi"
      },
      "credentials": {
        "discordBotApi": {
          "id": "SJhr2V3Xw4B3fVqW",
          "name": "Gopher"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "3fe9b9ab-d9c8-4414-b3a4-01dace75da77",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        100,
        -60
      ],
      "parameters": {
        "height": 600,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\nThis gets all of the servers that your discord bot is currently in. If you have a bot in more than one server, you will need to let it know or at least hint at which server it is, or it may get stuck. If you specify a channel through your natural language request, then the model may keep trying to get servers' channels via the get channel node or it may give up before getting to the right one).\n\nNote: This is a custom API call using the same Discord bot auth, not a built-in \"Discord tool\" - I encourage you to go well beyond the 15 included tools that n8n provides for you. It is *easy* to do, and there are, literally, no limits to what you can do with n8n!"
      },
      "typeVersion": 1
    },
    {
      "id": "c886422d-f034-49dc-ad77-bc6e1cd495a8",
      "name": "付箋1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        360,
        280
      ],
      "parameters": {
        "width": 300,
        "height": 240,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\nThese nodes either send a basic message from your bot to a channel or sends a message and waits for a response from a human (HITL)."
      },
      "typeVersion": 1
    },
    {
      "id": "36d5bcc3-f9f2-4161-83d8-d76083ea9e8c",
      "name": "付箋2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -280,
        280
      ],
      "parameters": {
        "width": 300,
        "height": 240,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\nThese nodes either send a basic message from your bot to a user via DM or sends a DM and waits for a response from the human (HITL)."
      },
      "typeVersion": 1
    },
    {
      "id": "65b6d13e-6f97-4b4c-9a0d-85b07b666c81",
      "name": "付箋3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -200,
        560
      ],
      "parameters": {
        "width": 520,
        "height": 360,
        "content": "\n\n\n\n\n\n\n\n\n\n\n\nProgrammatic role addition and removal are just two examples of the many, many tools/API calls that you can make to Discord.\n\nYou could monitor for spam, mod abuse, or anything else you wanted and respond automatically by removing perms until you can check it out.\n\nYou can create amazing workflows that include discord webhooks, your existing other workflows, or anything else you can imagine and have it running on your bot in minutes via a MCP client node in a new or existing workflow!"
      },
      "typeVersion": 1
    },
    {
      "id": "e39211f7-7471-4b0b-a253-79b1e3026354",
      "name": "付箋4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -280,
        -60
      ],
      "parameters": {
        "width": 280,
        "content": "Once we have the server ID of the server we want to interact with, we can grab all members of the server that the bot can see."
      },
      "typeVersion": 1
    },
    {
      "id": "84f36c6d-c990-48d0-9328-32a40c803956",
      "name": "付箋5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        420,
        -60
      ],
      "parameters": {
        "width": 280,
        "content": "Once we have the server ID of the server we want to interact with, we can grab all channels the bot can see."
      },
      "typeVersion": 1
    }
  ],
  "active": true,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "bedf1c45-22f0-422c-8d77-ab058c1cceab",
  "connections": {
    "fb8091b5-114b-422e-be5a-6413d9aec599": {
      "ai_tool": [
        [
          {
            "node": "1d8a14f1-8e63-4112-8076-15b4408c844f",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "32a17a73-8953-4474-a49f-9d1cc0cc3eb2": {
      "ai_tool": [
        [
          {
            "node": "1d8a14f1-8e63-4112-8076-15b4408c844f",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "6f61b18a-8d96-4acb-994a-45ef32c10f16": {
      "ai_tool": [
        [
          {
            "node": "1d8a14f1-8e63-4112-8076-15b4408c844f",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "688ea823-b8ea-4bbf-96cb-a64925fc29a9": {
      "ai_tool": [
        [
          {
            "node": "1d8a14f1-8e63-4112-8076-15b4408c844f",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "ece7a065-36bb-4667-aa61-610e54f0b22d": {
      "ai_tool": [
        [
          {
            "node": "1d8a14f1-8e63-4112-8076-15b4408c844f",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "6e87d612-3006-4683-b978-87718f89257d": {
      "ai_tool": [
        [
          {
            "node": "1d8a14f1-8e63-4112-8076-15b4408c844f",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "5f1c3039-7042-48b8-997c-12bcaa6a1256": {
      "ai_tool": [
        [
          {
            "node": "1d8a14f1-8e63-4112-8076-15b4408c844f",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "c37d0478-5b00-4d21-b0fd-7e2fa34708ec": {
      "ai_tool": [
        [
          {
            "node": "1d8a14f1-8e63-4112-8076-15b4408c844f",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "67602807-3126-4564-8fed-912551eb824b": {
      "ai_tool": [
        [
          {
            "node": "1d8a14f1-8e63-4112-8076-15b4408c844f",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

上級 - ビルディングブロック, 人工知能, IT運用

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
上級
ノード数16
カテゴリー3
ノードタイプ4
難易度説明

上級者向け、16ノード以上の複雑なワークフロー

作成者
David Ashby

David Ashby

@cfomodz

A hacker by nature, programmer by trade ⚒️ I'm looking to collaborate on things that save human labor 📫 How to reach me Github👇 -> Discord

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34