Skip to main content
Glama
hanweg

mcp-discord

by hanweg

delete_channel

Remove unwanted Discord channels by providing the channel ID and optional reason for deletion. Ideal for maintaining server organization and managing channels efficiently.

Instructions

Delete a channel

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
channel_idYesID of channel to delete
reasonNoReason for deletion

Implementation Reference

  • Handler implementation for the 'delete_channel' tool. Fetches the Discord channel by ID and deletes it, using an optional reason.
    elif name == "delete_channel":
        channel = await discord_client.fetch_channel(int(arguments["channel_id"]))
        await channel.delete(reason=arguments.get("reason", "Channel deleted via MCP"))
        return [TextContent(
            type="text",
            text=f"Deleted channel successfully"
        )]
  • Schema definition for the 'delete_channel' tool, including input parameters for channel_id (required) and optional reason.
    Tool(
        name="delete_channel",
        description="Delete a channel",
        inputSchema={
            "type": "object",
            "properties": {
                "channel_id": {
                    "type": "string",
                    "description": "ID of channel to delete"
                },
                "reason": {
                    "type": "string",
                    "description": "Reason for deletion"
                }
            },
            "required": ["channel_id"]
        }
    ),
  • The tool is registered by being included in the list returned by the list_tools handler, which is decorated with @app.list_tools().
    @app.list_tools()
    async def list_tools() -> List[Tool]:
        """List available Discord tools."""
        return [
            # Server Information Tools
            Tool(
                name="get_server_info",
                description="Get information about a Discord server",
                inputSchema={
                    "type": "object",
                    "properties": {
                        "server_id": {
                            "type": "string",
                            "description": "Discord server (guild) ID"
                        }
                    },
                    "required": ["server_id"]
                }
            ),
            Tool(
                name="get_channels",
                description="Get a list of all channels in a Discord server",
                inputSchema={
                    "type": "object",
                    "properties": {
                        "server_id": {
                            "type": "string",
                            "description": "Discord server (guild) ID"
                        }
                    },
                    "required": ["server_id"]
                }
            ),
            Tool(
                name="list_members",
                description="Get a list of members in a server",
                inputSchema={
                    "type": "object",
                    "properties": {
                        "server_id": {
                            "type": "string",
                            "description": "Discord server (guild) ID"
                        },
                        "limit": {
                            "type": "number",
                            "description": "Maximum number of members to fetch",
                            "minimum": 1,
                            "maximum": 1000
                        }
                    },
                    "required": ["server_id"]
                }
            ),
    
            # Role Management Tools
            Tool(
                name="add_role",
                description="Add a role to a user",
                inputSchema={
                    "type": "object",
                    "properties": {
                        "server_id": {
                            "type": "string",
                            "description": "Discord server ID"
                        },
                        "user_id": {
                            "type": "string",
                            "description": "User to add role to"
                        },
                        "role_id": {
                            "type": "string",
                            "description": "Role ID to add"
                        }
                    },
                    "required": ["server_id", "user_id", "role_id"]
                }
            ),
            Tool(
                name="remove_role",
                description="Remove a role from a user",
                inputSchema={
                    "type": "object",
                    "properties": {
                        "server_id": {
                            "type": "string",
                            "description": "Discord server ID"
                        },
                        "user_id": {
                            "type": "string",
                            "description": "User to remove role from"
                        },
                        "role_id": {
                            "type": "string",
                            "description": "Role ID to remove"
                        }
                    },
                    "required": ["server_id", "user_id", "role_id"]
                }
            ),
    
            # Channel Management Tools
            Tool(
                name="create_text_channel",
                description="Create a new text channel",
                inputSchema={
                    "type": "object",
                    "properties": {
                        "server_id": {
                            "type": "string",
                            "description": "Discord server ID"
                        },
                        "name": {
                            "type": "string",
                            "description": "Channel name"
                        },
                        "category_id": {
                            "type": "string",
                            "description": "Optional category ID to place channel in"
                        },
                        "topic": {
                            "type": "string",
                            "description": "Optional channel topic"
                        }
                    },
                    "required": ["server_id", "name"]
                }
            ),
            Tool(
                name="delete_channel",
                description="Delete a channel",
                inputSchema={
                    "type": "object",
                    "properties": {
                        "channel_id": {
                            "type": "string",
                            "description": "ID of channel to delete"
                        },
                        "reason": {
                            "type": "string",
                            "description": "Reason for deletion"
                        }
                    },
                    "required": ["channel_id"]
                }
            ),
    
            # Message Reaction Tools
            Tool(
                name="add_reaction",
                description="Add a reaction to a message",
                inputSchema={
                    "type": "object",
                    "properties": {
                        "channel_id": {
                            "type": "string",
                            "description": "Channel containing the message"
                        },
                        "message_id": {
                            "type": "string",
                            "description": "Message to react to"
                        },
                        "emoji": {
                            "type": "string",
                            "description": "Emoji to react with (Unicode or custom emoji ID)"
                        }
                    },
                    "required": ["channel_id", "message_id", "emoji"]
                }
            ),
            Tool(
                name="add_multiple_reactions",
                description="Add multiple reactions to a message",
                inputSchema={
                    "type": "object",
                    "properties": {
                        "channel_id": {
                            "type": "string",
                            "description": "Channel containing the message"
                        },
                        "message_id": {
                            "type": "string",
                            "description": "Message to react to"
                        },
                        "emojis": {
                            "type": "array",
                            "items": {
                                "type": "string",
                                "description": "Emoji to react with (Unicode or custom emoji ID)"
                            },
                            "description": "List of emojis to add as reactions"
                        }
                    },
                    "required": ["channel_id", "message_id", "emojis"]
                }
            ),
            Tool(
                name="remove_reaction",
                description="Remove a reaction from a message",
                inputSchema={
                    "type": "object",
                    "properties": {
                        "channel_id": {
                            "type": "string",
                            "description": "Channel containing the message"
                        },
                        "message_id": {
                            "type": "string",
                            "description": "Message to remove reaction from"
                        },
                        "emoji": {
                            "type": "string",
                            "description": "Emoji to remove (Unicode or custom emoji ID)"
                        }
                    },
                    "required": ["channel_id", "message_id", "emoji"]
                }
            ),
            Tool(
                name="send_message",
                description="Send a message to a specific channel",
                inputSchema={
                    "type": "object",
                    "properties": {
                        "channel_id": {
                            "type": "string",
                            "description": "Discord channel ID"
                        },
                        "content": {
                            "type": "string",
                            "description": "Message content"
                        }
                    },
                    "required": ["channel_id", "content"]
                }
            ),
            Tool(
                name="read_messages",
                description="Read recent messages from a channel",
                inputSchema={
                    "type": "object",
                    "properties": {
                        "channel_id": {
                            "type": "string",
                            "description": "Discord channel ID"
                        },
                        "limit": {
                            "type": "number",
                            "description": "Number of messages to fetch (max 100)",
                            "minimum": 1,
                            "maximum": 100
                        }
                    },
                    "required": ["channel_id"]
                }
            ),
            Tool(
                name="get_user_info",
                description="Get information about a Discord user",
                inputSchema={
                    "type": "object",
                    "properties": {
                        "user_id": {
                            "type": "string",
                            "description": "Discord user ID"
                        }
                    },
                    "required": ["user_id"]
                }
            ),
            Tool(
                name="moderate_message",
                description="Delete a message and optionally timeout the user",
                inputSchema={
                    "type": "object",
                    "properties": {
                        "channel_id": {
                            "type": "string",
                            "description": "Channel ID containing the message"
                        },
                        "message_id": {
                            "type": "string",
                            "description": "ID of message to moderate"
                        },
                        "reason": {
                            "type": "string",
                            "description": "Reason for moderation"
                        },
                        "timeout_minutes": {
                            "type": "number",
                            "description": "Optional timeout duration in minutes",
                            "minimum": 0,
                            "maximum": 40320  # Max 4 weeks
                        }
                    },
                    "required": ["channel_id", "message_id", "reason"]
                }
            ),
            Tool(
                name="list_servers",
                description="Get a list of all Discord servers the bot has access to with their details such as name, id, member count, and creation date.",
                inputSchema={
                    "type": "object",
                    "properties": {},
                    "required": []
                }
            )
        ]

Latest Blog Posts

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/hanweg/mcp-discord'

If you have feedback or need assistance with the MCP directory API, please join our Discord server