npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

@iflow-mcp/discord-mcp

v0.0.3

Published

Model Context Protocol (MCP) server for Discord API integration

Downloads

25

Readme

Discord MCP Server

⚠️ SECURITY WARNING: This project handles Discord bot tokens and server access. Please read our Security Policy before using or contributing.

A comprehensive Model Context Protocol (MCP) server for Discord API integration, providing powerful Discord bot management capabilities through a standardized interface.

Features

This server provides 93 Discord tools organized into the following categories:

| Category | Tools Count | Description | |----------|-------------|-------------| | Message Management | 18 tools | Send, edit, delete, reactions, pin, bulk operations | | Channel Management | 25 tools | Create/edit/delete all channel types, positions, privacy | | Member & Role Management | 12 tools | Add/remove roles, edit members, search, info retrieval | | Voice & Audio | 6 tools | Join/leave voice, play audio, volume control | | Webhooks | 4 tools | Create, delete, list, send webhook messages | | Events & Scheduling | 4 tools | Create, edit, delete, list server events | | Emoji & Stickers | 6 tools | Manage custom emojis and stickers | | Privacy & Security | 7 tools | Auto-moderation, privacy controls, bulk settings | | Server Administration | 6 tools | Server settings, welcome screen, widget management | | Analytics & Export | 5 tools | Statistics, message history, chat log export |

Key Tools

  • discord_manage - Unified tool that handles all 93 operations through one interface
  • comprehensive_channel_management - Multi-operation channel orchestrator
  • bulk_set_privacy - Mass privacy control across channels/categories
  • organize_channels - Advanced channel/category positioning system
  • export_chat_log - Professional chat export in JSON/CSV/TXT formats

Quick Start

Prerequisites

  • Node.js 18+ and npm
  • Discord bot token (see setup below)

Installation

# Clone the repository
git clone https://github.com/sashathelambo/discord-mcp.git
cd discord-mcp

# Install dependencies
npm install

# Build the project
npm run build

# Start the server
npm start

Development Mode

npm run dev

Configuration

Discord Bot Setup

  1. Go to Discord Developer Portal
  2. Create a new application and bot
  3. Copy the bot token to your .env file
  4. IMPORTANT: Regenerate your token if you suspect it's been exposed

Environment Variables

Create a .env file:

# Your Discord bot token (KEEP SECRET!)
DISCORD_TOKEN=your_bot_token_here

# Default Discord server ID (optional)
DISCORD_GUILD_ID=your_guild_id_here

Required Bot Permissions

Manage Server
Manage Roles  
Manage Channels
Manage Messages
View Channels
Send Messages
Connect (for voice)
Speak (for voice)

Usage

MCP Integration

Use with MCP-compatible clients:

# Via stdio
npx discord-mcp

# Via HTTP (port 3001)
HTTP_PORT=3001 npx discord-mcp

Examples

Using the Master Control Tool

// All operations through one unified interface
await discord_manage({
  action: 'send_message',
  channelId: '123',
  message: 'Hello World!'
});

await discord_manage({
  action: 'create_text_channel',
  guildId: '456',
  name: 'new-channel'
});

await discord_manage({
  action: 'comprehensive_channel_management',
  guildId: '456',
  operations: [
    { action: 'create_category', name: 'New Category' },
    { action: 'create_text_channel', name: 'general', categoryId: 'cat_id' },
    { action: 'set_channel_private', channelId: 'chan_id', isPrivate: true }
  ]
});

Using Individual Tools

// Server information
await discord.getServerInfo(guildId);

// Advanced channel creation
await discord.createForumChannel(guildId, "discussions", categoryId, {
  topic: "Community discussions",
  slowmode: 30,
  isPrivate: true,
  allowedRoles: ["member_role_id"]
});

// Bulk privacy management
await discord.bulkSetPrivacy(guildId, {
  targets: [
    { id: "channel1", type: "channel", isPrivate: true },
    { id: "category1", type: "category", isPrivate: false }
  ]
});

// Export chat logs
await discord.exportChatLog(channelId, "JSON", {
  limit: 1000,
  dateRange: { start: "2024-01-01", end: "2024-12-31" }
});

Security

For Users

  • Keep your Discord bot token secret
  • Regularly rotate your tokens
  • Monitor bot activity
  • Use minimal required permissions

For Contributors

  • Never commit tokens or secrets
  • Validate all user inputs
  • Review dependencies for vulnerabilities
  • Follow secure coding practices

Tool Reference

Message Management Tools (18)

| Tool Name | Description | |-----------|-------------| | send_message | Send messages to channels | | edit_message | Edit existing messages | | delete_message | Delete specific messages | | read_messages | Read message history from channels | | send_private_message | Send DMs to users | | edit_private_message | Edit private messages | | delete_private_message | Delete private messages | | read_private_messages | Read DM history | | add_reaction | Add emoji reactions | | remove_reaction | Remove emoji reactions | | pin_message | Pin messages in channels | | unpin_message | Unpin messages | | get_pinned_messages | List pinned messages | | bulk_delete_messages | Delete multiple messages | | crosspost_message | Crosspost announcements | | get_message_history | Advanced message history with pagination | | get_message_attachments | Extract message attachments | | read_images | Read and analyze images from messages |

Channel Management Tools (25)

| Tool Name | Description | |-----------|-------------| | create_text_channel | Create text channels | | create_voice_channel | Create voice channels | | create_forum_channel | Create forum channels | | create_announcement_channel | Create announcement channels | | create_stage_channel | Create stage channels | | edit_channel_advanced | Edit any channel with advanced settings | | delete_channel | Delete channels | | find_channel | Find channels by name | | list_channels | List all server channels | | create_category | Create channel categories | | delete_category | Delete categories | | find_category | Find categories by name | | list_channels_in_category | List channels in specific category | | set_channel_position | Move channel position | | set_channel_positions | Move multiple channels | | set_category_position | Move category position | | move_channel_to_category | Move channels between categories | | organize_channels | Comprehensive channel organization | | get_channel_structure | Get complete channel hierarchy | | set_channel_private | Set channel privacy settings | | set_category_private | Set category privacy settings | | bulk_set_privacy | Bulk privacy management | | comprehensive_channel_management | All-in-one channel operations | | upload_file | Upload files to channels | | export_chat_log | Export chat logs (JSON/CSV/TXT) |

Member & Role Management Tools (12)

| Tool Name | Description | |-----------|-------------| | get_user_id_by_name | Find user IDs by username | | get_members | List server members with pagination | | search_members | Search members by name | | edit_member | Edit member properties | | get_member_info | Get detailed member information | | create_role | Create new server roles | | delete_role | Delete server roles | | edit_role | Modify role properties | | add_role_to_member | Assign roles to members | | remove_role_from_member | Remove roles from members | | get_roles | List all server roles | | set_role_positions | Reorder role hierarchy |

Voice & Audio Tools (6)

| Tool Name | Description | |-----------|-------------| | join_voice_channel | Connect bot to voice channels | | leave_voice_channel | Disconnect from voice channels | | play_audio | Stream audio in voice channels | | stop_audio | Stop audio playback | | set_volume | Control audio volume | | get_voice_connections | List active voice connections |

Webhook Tools (4)

| Tool Name | Description | |-----------|-------------| | create_webhook | Create channel webhooks | | delete_webhook | Delete webhooks | | list_webhooks | List channel webhooks | | send_webhook_message | Send messages via webhooks |

Events & Scheduling Tools (4)

| Tool Name | Description | |-----------|-------------| | create_event | Create scheduled server events | | edit_event | Edit existing events | | delete_event | Delete server events | | get_events | List all scheduled events |

Emoji & Sticker Tools (6)

| Tool Name | Description | |-----------|-------------| | create_emoji | Create custom server emojis | | delete_emoji | Delete custom emojis | | get_emojis | List all server emojis | | create_sticker | Create custom server stickers | | delete_sticker | Delete custom stickers | | get_stickers | List all server stickers |

Privacy & Security Tools (7)

| Tool Name | Description | |-----------|-------------| | create_automod_rule | Create automoderation rules | | edit_automod_rule | Edit automod rules | | delete_automod_rule | Delete automod rules | | get_automod_rules | List all automod rules | | create_invite | Create server invites | | delete_invite | Delete/revoke invites | | get_invites | List all server invites |

Server Administration Tools (6)

| Tool Name | Description | |-----------|-------------| | get_server_info | Get comprehensive server information | | edit_server | Edit server settings | | get_server_widget | Get server widget information | | get_welcome_screen | Get welcome screen settings | | edit_welcome_screen | Configure welcome screen | | get_server_stats | Get comprehensive server statistics |

Interactive Components Tools (4)

| Tool Name | Description | |-----------|-------------| | send_embed | Send rich embed messages | | send_button | Send messages with interactive buttons | | send_select_menu | Send messages with select menus | | send_modal | Send modal dialogs (interaction context) |

Master Control Tool (1)

| Tool Name | Description | |-----------|-------------| | discord_manage | Unified tool - access ALL 93 operations through one interface |

Contributing

Project Creator & Lead Developer: @sashathelambo (Dr. Vova)

This project is primarily developed and maintained by sashathelambo. For contributions:

  1. Read our Contributing Guidelines
  2. Follow our Security Policy
  3. Use the PR template
  4. Test thoroughly before submitting
  5. Discuss major changes with @sashathelambo first

Development Guidelines

  • Use TypeScript for all code
  • Follow existing code style
  • Add tests for new features
  • Never commit sensitive data
  • Update documentation

Troubleshooting

Common Issues

  • Token Invalid: Regenerate your Discord bot token
  • Permission Denied: Check bot permissions in Discord server
  • Build Errors: Ensure Node.js 18+ and TypeScript are installed

Getting Help

License

This project is licensed under the MIT License - see the LICENSE file for details.

Disclaimer

This software is provided "as-is" without warranty. Users are responsible for:

  • Complying with Discord's Terms of Service
  • Securing their bot tokens and credentials
  • Using appropriate permissions and rate limiting
  • Monitoring and maintaining their Discord bots

Acknowledgments

  • @sashathelambo (Dr. Vova) - Project creator, lead developer, and architect of all 93 Discord tools
  • Discord.js team for the excellent Discord API wrapper
  • Model Context Protocol community for the standardized protocol
  • Everyone who uses and supports this project