# Discord MCP

> Discord MCP gives your AI agent full control over Discord community management and real-time chat. List channels, audit member lists, send automated messages, edit history payloads, and moderate content—all without opening the Discord client. It's for managing complex communities and running bots directly from any compatible AI client.

## Overview
- **Category:** talk-to-me
- **Price:** Free
- **Tags:** community-management, messaging, moderation, bot-api, channel-management, real-time-communication

## Description

Your agent can now manage your entire Discord community structure right where you write code or chat with it. This MCP lets you go beyond basic messaging; you gain administrative control over channels, users, and history. Need to audit who's in the server? You can list every member account. Want to update a progress tracker? Just use the tool that mutates pre-existing text payloads. The system allows you to delete entire channels or purge specific chat messages instantly for moderation. Connecting through Vinkius makes this power available to any compatible AI client, turning your chat interface into a full community dashboard. You manage everything—from creating new structural channels to pulling detailed logs of every message sent.

## Tools

### add_reaction
Attaches a custom or standard emoji reaction to an existing message in the channel.

### create_guild_channel
Creates a new, dedicated text-based structural channel within your server sandbox.

### create_message
Sends an automated text payload to a specific channel, supporting Markdown formatting.

### create_thread
Starts a new conversational thread tied directly to an existing message ID in the channel.

### delete_channel
Permanently removes a whole Discord channel, including all its history and attachments.

### delete_message
Wipes an existing message payload from the visible chat history of the channel.

### edit_message
Changes the text content of a pre-existing message posted by the bot or system.

### get_channel
Retrieves deep structural properties and metadata for a specific Discord channel.

### get_guild_member
Pulls all details about one specific user account within the server.

### get_guild
Gathers structural metadata and IDs for the entire Discord server itself.

### list_channel_messages
Reads a history of recent messages from any channel, including attachments and embeds.

### list_guild_channels
Lists all available text and voice channels within the server structure.

### list_guild_members
Retrieves an enumerated list of every active user account in the server.

### list_guild_roles
Lists all defined role IDs and names used for member management within the server.

### pin_message
Marks a specific message as important, pinning it to the top of the channel feed.

## Prompt Examples

**Prompt:** 
```
List all channels in guild '123456789'
```

**Response:** 
```
I found 5 channels in your server. Text channels include '#general' (ID: 101) and '#announcements' (ID: 102). Voice channels include 'General VC' (ID: 201). Which one would you like to interact with?
```

**Prompt:** 
```
Send a message to channel '101': 'Hello community! The bot is live.'
```

**Response:** 
```
Message dispatched! 'Hello community! The bot is live.' has been sent to channel 101. The message ID is 'msg_999'.
```

**Prompt:** 
```
Get the last 5 messages from channel '101'
```

**Response:** 
```
Retrieving messages from channel 101... I found 5 recent posts. Highlights include a welcome message from 'System' and a question about API keys from 'User_A'. Would you like the full text of these messages?
```

## Capabilities

### Audit Server Structure
Fetch metadata about the entire server, including its total member count and specific channel IDs.

### Manage User Roster
View details on individual members or retrieve a full list of active user accounts in the community.

### Control Chat History
Read recent messages from any channel, pull comprehensive logs, or delete specific chat payloads permanently.

### Modify Content Live
Send new messages with Markdown support, edit existing bot-posted text, or pin important announcements to a channel.

### Moderate and Clean Up
Delete channels, clear out old message content, or control chat visibility by managing slowmode settings.

## Use Cases

### Onboarding New Team Members
A new team lead needs to set up the project space. They prompt: 'Create three new text channels for development, QA, and deployment.' The agent uses `create_guild_channel` multiple times, giving immediate confirmation of the new structures.

### Handling Spam or Trolling
A user reports a spam message. They ask: 'Delete that offensive message from #general and pin the moderation rule.' The agent uses `delete_message` followed by `pin_message`, solving the issue in two steps.

### Running an Internal Audit
An Ops team member needs to know who has access. They run: 'List all members and check their roles.' The agent executes `list_guild_members` and `list_guild_roles`, providing a complete, actionable roster.

### Updating Live Status Reports
A product manager is tracking build progress. They ask the agent to 'Update the status message in #updates.' The agent uses `edit_message` on the existing payload instead of sending a whole new, redundant announcement.

## Benefits

- Audit everything instantly: Use `list_guild_members` or `get_guild` to pull comprehensive server data—member counts, channel IDs, and overall metadata. No more manual counting or clicking through multiple tabs just to verify roster integrity.
- Automate moderation tasks: Instead of manually searching for spam, you can use the tool that deletes messages (`delete_message`) or purge entire channels (`delete_channel`) with a single prompt. It’s instant cleanup at scale.
- Maintain persistent updates: When a status changes, don't just send a message. Use `edit_message` to mutate existing text payloads in real time, keeping progress bars or live counts updated without spamming the channel feed.
- Build structured workflows: Need to onboard a new team? First, run `list_guild_channels` to see what’s missing. Then use `create_guild_channel` to provision the necessary sandbox channels for the next project phase.
- Respond with context: If you need an agent to know exactly who is talking about something, read history using `list_channel_messages`. The agent gets full context before generating a response.

## How It Works

The bottom line is, your AI client uses this MCP as a direct, natural language API to perform actions across your entire Discord account.

1. Subscribe to this MCP on Vinkius and provide your Discord Bot Token (found in the Developer Portal).
2. Tell your AI client what you need—for example, 'List all channels in my server' or 'Delete the welcome message from #general'.
3. The agent executes the command directly against Discord, giving you immediate confirmation of changes made to the community.

## Frequently Asked Questions

**Can I use Discord MCP to list all channels in my server?**
Yes, you can run `list_guild_channels`. This tool returns the unique IDs and names for every text and voice channel, letting your agent know exactly where to send messages or perform other actions.

**Does Discord MCP let me delete a whole server?**
No. The tools allow you to perform targeted deletions like `delete_channel` (removing one specific channel) or `delete_message` (wiping an individual post), but they do not provide functionality to wipe the entire server.

**How do I get a list of all members using Discord MCP?**
You use the `list_guild_members` tool. This gathers a comprehensive roster of every user account in your guild, which is essential for auditing or role management.

**What if I need to edit an announcement? Does Discord MCP handle that?**
Yes, the `edit_message` tool lets you mutate pre-existing textual strings. You can update a status report or progress indicator without sending out redundant follow-up messages.

**Is there a way to check server permissions using Discord MCP?**
While the MCP provides tools for managing roles (`list_guild_roles`) and fetching structure (`get_guild`), it focuses on execution. You can audit member status, but deep permission checks require specific developer intent outside of these core listing tools.