MCP-Discord Stream
Provides tools to interact with Discord, enabling message streaming, forum archiving, channel management, message sending, and more.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP-Discord Streamstream messages from #general since yesterday"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP-Discord Stream
A Discord MCP (Model Context Protocol) server with unlimited message streaming, forum archiving, and time-range filtering capabilities.
Fork Notice: This is an enhanced fork of barryyip0625/mcp-discord with added streaming capabilities for reading unlimited Discord history.
Overview
MCP-Discord Stream provides comprehensive Discord integration with powerful streaming features:
🆕 Streaming Features (New!)
Unlimited Message History - Read ALL messages from channels/forums (not limited to 100 messages)
Time Range Filtering - Fetch messages from specific date ranges (default: last 10 days)
Forum Archiving - Archive entire forums with all threads and messages
Batch Operations - Stream from multiple channels/forums simultaneously
Progress Tracking - Real-time progress updates during long operations
Rate Limit Handling - Gracefully handles Discord rate limits with partial data returns
Standard Features
Login to Discord bot
List servers the bot is a member of
Get server information
Search messages in a server
Read/delete channel messages
Send messages to specified channels
Retrieve forum channel lists
Create/delete/reply to forum posts
Create/delete text channels
Add/remove message reactions
Create/edit/delete/use webhooks
Related MCP server: Discord MCP Server
Table of Contents
Prerequisites
Node.js (v18.0.0 or higher)
npm (v7.0.0 or higher)
A Discord bot with appropriate permissions
Bot token (obtainable from the Discord Developer Portal)
Message Content Intent enabled (Required!)
Server Members Intent enabled
Presence Intent enabled
Permissions required in your Discord server:
Easiest Setup
Administrator (Recommended for quick setup and full functionality)
Or, select only the required permissions:
View Channel
Read Message History (Required for streaming!)
Send Messages
Create Public Threads
Send Messages in Threads
Manage Messages
Manage Threads
Manage Channels
Manage Webhooks
Add Reactions
Add your Discord bot to your server
To add your Discord bot to your server, use one of the following invite links (replace
INSERT_CLIENT_ID_HEREwith your bot's client ID):Administrator (full access): https://discord.com/oauth2/authorize?client_id=INSERT_CLIENT_ID_HERE&scope=bot&permissions=8
Custom permissions (minimum required): https://discord.com/oauth2/authorize?client_id=INSERT_CLIENT_ID_HERE&scope=bot&permissions=52076489808
Important: According to Discord's security model, a bot can only access information from servers it has been explicitly added to. With "Read Message History" permission, the bot CAN read messages sent before it was added to the server!
Installation
Installing via NPM
npm install -g @yangyifei/mcp-discord-streamOr use directly via npx:
npx @yangyifei/mcp-discord-stream --config ${DISCORD_TOKEN}Manual Installation
# Clone the repository
git clone https://github.com/Yv3s-y4ng/mcp-discord-stream.git
cd mcp-discord-stream
# Install dependencies
npm install
# Compile TypeScript
npm run buildConfiguration
A Discord bot token is required for proper operation. The server supports two transport methods: stdio and streamable HTTP.
Transport Methods
stdio (Default)
Traditional stdio transport for basic usage
Suitable for simple integrations
streamable HTTP
HTTP-based transport for more advanced scenarios
Supports stateless operation
Configurable port number
Configuration Options
You can provide configuration in two ways:
Environment variables:
DISCORD_TOKEN=your_discord_bot_tokenUsing command line arguments:
# For stdio transport (default)
node build/index.js --config "your_discord_bot_token"
# For streamable HTTP transport
node build/index.js --transport http --port 3000 --config "your_discord_bot_token"Usage with Claude/Cursor
Claude Desktop
Using stdio transport:
{
"mcpServers": {
"discord": {
"command": "npx",
"args": [
"@yangyifei/mcp-discord-stream",
"--config",
"your_discord_bot_token"
]
}
}
}Using streamable HTTP transport:
{
"mcpServers": {
"discord": {
"command": "npx",
"args": [
"@yangyifei/mcp-discord-stream",
"--transport",
"http",
"--port",
"3000",
"--config",
"your_discord_bot_token"
]
}
}
}Cursor
Using stdio transport:
{
"mcpServers": {
"discord": {
"command": "cmd",
"args": [
"/c",
"npx",
"@yangyifei/mcp-discord-stream",
"--config",
"your_discord_bot_token"
]
}
}
}Usage Examples
Example 1: Stream ALL Messages from a Channel
// Fetch last 30 days of messages (unlimited)
discord_read_messages_stream({
channelId: "123456789",
afterDate: "2024-01-01T00:00:00Z" // Optional: start from this date
})Example 2: Archive Entire Forum
// Archive all forum threads with messages from last 60 days
discord_archive_forum_stream({
forumChannelId: "987654321",
afterDate: "2024-01-01T00:00:00Z",
includeArchived: true
})Example 3: Batch Archive Multiple Forums
// Archive 3 forums at once
discord_archive_multiple_forums({
forumChannelIds: ["111", "222", "333"],
afterDate: "2024-01-01T00:00:00Z"
})Tools Documentation
🆕 Streaming Tools (New!)
discord_read_messages_stream
Streams messages from a Discord channel with unlimited history and time-range filtering.
Parameters:
channelId(string, required) - The ID of the channel to read fromafterDate(string, optional) - ISO 8601 date string (e.g., "2024-01-01T00:00:00Z") - only fetch messages after this datebeforeDate(string, optional) - ISO 8601 date string - only fetch messages before this date
Default: If no date range is provided, fetches messages from the last 10 days.
Returns:
Stream events including
batch,progress,rate_limited, andcompleteeventsEach batch contains up to 100 messages with full message data (content, author, timestamp, attachments, etc.)
discord_read_multiple_channels
Streams messages from multiple channels sequentially.
Parameters:
channelIds(string[], required) - Array of channel IDs to read fromafterDate(string, optional) - ISO 8601 date stringbeforeDate(string, optional) - ISO 8601 date string
Returns: Aggregated results from all channels with success/error status for each.
discord_get_channel_list
Lists all channels in a Discord server with optional type filtering.
Parameters:
guildId(string, required) - The ID of the Discord serverchannelTypes(number[], optional) - Array of Discord ChannelType numbers to filter by0= Text Channel2= Voice Channel4= Category15= Forum Channel
Returns: List of channels with id, name, type, and parentId.
discord_get_forum_post_stream
Streams all messages from a single forum post/thread with unlimited history.
Parameters:
threadId(string, required) - The ID of the forum threadafterDate(string, optional) - ISO 8601 date stringbeforeDate(string, optional) - ISO 8601 date string
Returns: Stream events with all messages from the thread.
discord_archive_forum_stream
Archives an entire forum channel by streaming all threads and their messages.
Parameters:
forumChannelId(string, required) - The ID of the forum channelafterDate(string, optional) - ISO 8601 date stringbeforeDate(string, optional) - ISO 8601 date stringincludeArchived(boolean, optional, default: true) - Whether to include archived threads
Returns:
threads_foundevent with total thread countthread_progressevents for each thread being processedMessage batches from all threads
completeorpartial_completeevent with summary
discord_archive_multiple_forums
Archives multiple forum channels at once.
Parameters:
forumChannelIds(string[], required) - Array of forum channel IDsafterDate(string, optional) - ISO 8601 date stringbeforeDate(string, optional) - ISO 8601 date stringincludeArchived(boolean, optional, default: true) - Include archived threads
Returns: Aggregated results from all forums.
Basic Functions
discord_login: Login to Discord using the configured tokendiscord_list_servers: List all Discord servers the bot is a member ofdiscord_send: Send a message to a specified channel (supports both channel ID and channel name)discord_get_server_info: Get Discord server information
Channel Management
discord_create_text_channel: Create a text channeldiscord_delete_channel: Delete a channeldiscord_create_category: Create a channel categorydiscord_edit_category: Edit a categorydiscord_delete_category: Delete a category
Forum Functions
discord_get_forum_channels: Get a list of forum channelsdiscord_create_forum_post: Create a forum postdiscord_get_forum_post: Get a forum post (limited to 10 messages - usediscord_get_forum_post_streamfor more)discord_list_forum_threads: List all threads in a forumdiscord_reply_to_forum: Reply to a forum postdiscord_delete_forum_post: Delete a forum post
Messages and Reactions
discord_search_messages: Search messages in a serverdiscord_read_messages: Read channel messages (limited to 100 - usediscord_read_messages_streamfor more)discord_add_reaction: Add a reaction to a messagediscord_add_multiple_reactions: Add multiple reactions to a messagediscord_remove_reaction: Remove a reaction from a messagediscord_delete_message: Delete a specific message from a channel
Webhook Management
discord_create_webhook: Creates a new webhook for a Discord channeldiscord_send_webhook_message: Sends a message to a Discord channel using a webhookdiscord_edit_webhook: Edits an existing webhook for a Discord channeldiscord_delete_webhook: Deletes an existing webhook for a Discord channel
Streaming Features Explained
Time Range Filtering
All streaming tools support time-range filtering via ISO 8601 date strings:
// Fetch messages from a specific time range
{
afterDate: "2024-01-01T00:00:00Z", // Start date (inclusive)
beforeDate: "2024-12-31T23:59:59Z" // End date (inclusive)
}
// Fetch messages from last X days (omit both dates to use default 10 days)
{
afterDate: "2024-01-15T00:00:00Z" // Last 10+ days
}
// Fetch ALL messages (no time limit - use with caution!)
{
afterDate: "2015-01-01T00:00:00Z" // Discord's founding year
}Stream Event Types
Streaming tools return different event types to provide real-time feedback:
progress- Periodic progress updates during fetchingbatch- Contains message data (up to 100 messages per batch)threads_found- (Forums only) Total number of threads discoveredthread_progress- (Forums only) Current thread being processedrate_limited- Discord rate limit hit, includes retry wait timecomplete- All data fetched successfullypartial_complete- Partial data returned (e.g., due to rate limits or errors)
Rate Limit Handling
When Discord rate limits are hit:
The tool returns a
rate_limitedevent with wait timeAlready-fetched data is returned as
partial_completeYou can retry the request after the wait period
Performance Tips
Use specific date ranges - Narrow time ranges = faster responses
Process channels sequentially - Use
discord_read_multiple_channelsinstead of parallel requestsMonitor rate limits - Discord has per-channel and global rate limits
Archive during off-peak hours - Large archives work best when server activity is low
Development
# Install dependencies
npm install
# Development mode with auto-reload
npm run dev
# Run tests
npm test
# Build for production
npm run build
# Run built version
npm startContributing
Contributions are welcome! Please feel free to submit a Pull Request.
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add some amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
License
Acknowledgments
This project is a fork of barryyip0625/mcp-discord with significant enhancements for unlimited message streaming and archiving capabilities.
Special thanks to:
Barry Yip (@barryyip0625) for the original MCP-Discord implementation
The Anthropic team for the Model Context Protocol
Discord.js community for the excellent Discord API library
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Yv3s-y4ng/mcp-discord-stream'
If you have feedback or need assistance with the MCP directory API, please join our Discord server