# Discord MCP MCP

> Discord MCP manages entire community operations directly from your AI agent. List servers, find specific channels, update messages in real-time, moderate content, and oversee member lists—all without opening Discord. It gives you granular control over chat history, roles, and structure.

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

## Description

This connector lets you manage an entire Discord server like a single API endpoint. You can audit the whole guild structure to map out every channel and find all active members. Need to update status messages or send automated announcements? You dispatch text payloads with Markdown support and even edit existing posts, keeping chat history current. If something gets messy—like old logs or spam—you purge those chat payloads from visible memory or irreversibly delete whole channels. The real value comes when you chain this MCP: for instance, running a membership check using the member list tool, then sending an automated welcome message via create_message, and finally logging that action in a separate billing system MCP. Because Vinkius runs every call within its own secure sandbox with 34+ security rules enforced on every single operation, you know your keys are safe; they pass through a zero-trust proxy but never sit on disk.

## Tools

### add_reaction
Adds an emoji reaction, like a heart or thumbs up, to any existing Discord message.

### create_guild_channel
Provisions a new text channel in your server structure.

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

### create_thread
Starts a new conversation thread linked directly to any existing message ID.

### delete_channel
Irreversibly deletes an entire active channel and all its history.

### delete_message
Permanently removes a single chat payload from the visible message history.

### edit_message
Updates the text content of an existing bot-posted message, useful for progress reports.

### get_channel
Retrieves specific structural properties and details about a single Discord channel.

### get_guild
Performs a full audit extraction of metadata for the entire server.

### get_guild_member
Fetches detailed information about one specific user account in your guild.

### list_channel_messages
Reads the most recent chat payloads from a channel, including attachments and embeds.

### list_guild_channels
Identifies all available text and voice channels within your server.

### list_guild_members
Enumerates a full list of every active user account in the entire server.

### list_guild_roles
Lists all defined roles and their IDs configured within your Discord server.

### pin_message
Marks a specific message so it remains visible at the top of the channel.

## 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 guild and list all associated channels (text and voice).

### Manage user lists
Enumerate active member accounts, check for specific users, or view what roles are assigned across the server.

### Send and modify messages
Dispatch new automated text posts into a channel, or update the content of an already posted message.

### Moderate chat history
Permanently delete specific messages, purge entire channels, or pin important announcements for visibility.

### Organize and create structure
Provision brand new text channels or start dedicated threads off an existing message.

## Use Cases

### Onboarding new members
A manager needs to welcome a batch of users. They ask the agent to list_guild_members, filter for new joiners, and then use create_message to send a personalized 'Welcome!' thread in #introductions.

### Cleaning up old chat logs
The support team needs to delete messages from last week's incident that are no longer relevant. They ask the agent to list_channel_messages and then use delete_message repeatedly until the log is clear.

### Server restructuring
An ops engineer wants to move a topic into its own dedicated area. They first run list_guild_channels, identify the need for a new category, and then use create_guild_channel to provision the necessary space.

### Checking user permissions
A moderator suspects an account is compromised. They ask the agent to get_guild_member by ID and list_guild_roles to verify exactly what access that specific user has.

## Benefits

- Maintain a clean chat history by instantly purging old payloads or deleting specific messages using delete_message. This keeps the conversation focused on current topics.
- Run full structural audits of your server with get_guild to map out every member, role, and channel ID before writing any automation script.
- Dispatch automated announcements that look real: use create_message to post text payloads instantly across multiple channels from one command.
- Keep important info visible by pinning key messages using pin_message. This is better than relying on search filters or scrolling through pages of chat logs.
- Streamline moderation flow: check member roles with list_guild_roles, find the user with get_guild_member, and then restrict their access via delete_channel.

## How It Works

The bottom line is you interact with your entire Discord community through natural language conversation, not by clicking tabs in the client.

1. Subscribe to this MCP, then provide your Discord Bot Token (you find this in the Developer Portal).
2. Connect that token to any MCP-compatible client (like Cursor or Claude) and prompt it with a task.
3. The agent executes the necessary function calls—for example, listing channels first, then using those IDs to send a message.

## Frequently Asked Questions

**How do I list all channels using list_guild_channels?**
Call list_guild_channels first. This function returns a list of crucial Snowflake Channel IDs, which you then need to feed into other tools like create_message or get_channel.

**Can I delete messages using delete_message if they are pinned?**
Yes, delete_message targets the message payload itself. Whether it's pinned or not, calling delete_message purges the content from visible memory permanently.

**What is the best way to check user roles with list_guild_roles?**
Use list_guild_roles to get all configured role IDs. This provides a foundational map of permissions, letting you know what groups exist before trying to manage specific users.

**How do I audit the whole server structure using get_guild?**
The get_guild tool performs structural extraction of metadata for the entire Discord Server. It gives you a high-level view that includes member approximations and core IDs needed for subsequent tasks.

**When I use list_channel_messages, what kind of attachment data can I extract?**
You get string contents, nested attachments mapping binary sizes, and embed payloads. This means you don't just get the text; you also pull metadata about images or files that were attached to the message.

**If I use delete_channel, what permissions are required for the AI agent?**
The bot needs explicit administrative rights within the server. Without proper permissions, attempting to run this tool will fail because it requires irreversible control over a core structural element.

**How does edit_message work and how do I ensure the update is visible?**
Using this tool mutates the pre-existing text payload tied to your bot message. The change happens in real time, updating the original string for everyone viewing the chat.

**Does list_guild_members face rate limits when I run it on a huge server?**
Yes, listing all members can be resource-intensive and is heavily restricted by Discord's API. Be prepared to run this tool in batches or through an iterative loop.