{
  "name": "io.github.v-3/discordmcp",
  "description": "The Discord MCP connects AI models to Discord servers via a bot user. Read recent messages, post replies, search channel history, manage threads, and react to community events. Built for community managers and developer-relations teams running Discord-first communities.",
  "status": "active",
  "version": "latest",
  "_meta": {
    "com.top-mcps/lastVerified": "2026-05-06",
    "com.top-mcps/score": {
      "value": 55,
      "rubricVersion": "2026-04",
      "lastComputed": "2026-05-11T09:29:11.925Z",
      "methodology": "https://top-mcps.com/about/methodology"
    },
    "com.top-mcps/stats": {
      "fetchedAt": "2026-05-11T09:29:11.297Z",
      "githubStars": 199,
      "lastCommitAt": "2025-01-21T06:22:19Z"
    }
  },
  "repository": {
    "url": "https://github.com/v-3/discordmcp",
    "source": "github"
  },
  "author": {
    "name": "v-3 (community)"
  },
  "packages": [
    {
      "registryType": "npm",
      "registryBaseUrl": "https://registry.npmjs.org",
      "identifier": "@v-3/discordmcp",
      "version": "latest",
      "transport": {
        "type": "stdio"
      },
      "environmentVariables": [
        {
          "name": "DISCORD_BOT_TOKEN",
          "description": "DISCORD_BOT_TOKEN — required credential for Discord.",
          "isRequired": true,
          "isSecret": true
        }
      ]
    }
  ],
  "capabilities": {
    "tools": [
      {
        "name": "list_channels",
        "description": "List channels visible to the bot in a guild.",
        "sideEffect": "read",
        "args": [
          {
            "name": "guild_id",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "read_messages",
        "description": "Read recent messages from a channel.",
        "sideEffect": "read",
        "args": [
          {
            "name": "channel_id",
            "type": "string",
            "required": true
          },
          {
            "name": "limit",
            "type": "number",
            "required": false
          }
        ]
      },
      {
        "name": "send_message",
        "description": "Post a message to a channel or thread.",
        "sideEffect": "write",
        "args": [
          {
            "name": "channel_id",
            "type": "string",
            "required": true
          },
          {
            "name": "content",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "create_thread",
        "description": "Open a new public thread under a message.",
        "sideEffect": "write",
        "args": [
          {
            "name": "channel_id",
            "type": "string",
            "required": true
          },
          {
            "name": "message_id",
            "type": "string",
            "required": true
          },
          {
            "name": "name",
            "type": "string",
            "required": true
          }
        ]
      },
      {
        "name": "add_reaction",
        "description": "Add an emoji reaction to a message.",
        "sideEffect": "write",
        "args": [
          {
            "name": "channel_id",
            "type": "string",
            "required": true
          },
          {
            "name": "message_id",
            "type": "string",
            "required": true
          },
          {
            "name": "emoji",
            "type": "string",
            "required": true
          }
        ]
      }
    ],
    "security": {
      "scope": "read-write",
      "sandbox": "Authenticates to Discord as a bot user via the token in `DISCORD_BOT_TOKEN`. The bot has whatever permissions the server admin granted at invite time, scoped per channel where Discord supports it.",
      "gotchas": [
        "Discord bot tokens are bearer credentials — leaking one gives an attacker the bot's full permission set instantly. Rotate via the Developer Portal whenever in doubt.",
        "Posting messages without an approval gate in a community context is a brand risk; for any auto-reply workflow, require human approval before send."
      ]
    }
  },
  "_links": {
    "html": "https://top-mcps.com/mcp/discord",
    "markdown": "https://top-mcps.com/mcp/discord.md",
    "methodology": "https://top-mcps.com/about/methodology"
  }
}
