Skip to main content
Glama
wowjinxy
by wowjinxy

ban_member

Remove a user from a Discord server to enforce moderation policies. Specify user ID, optional server ID, message deletion timeframe, and reason for the ban.

Instructions

Ban a user from the server.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
user_idYes
server_idNo
delete_message_secondsNo
reasonNo

Implementation Reference

  • The handler function that executes the ban_member tool: fetches guild and user, bans the user with optional reason and message deletion, returns confirmation message.
    async def handle_ban_member(discord_client, arguments: Dict[str, Any]) -> List[TextContent]:
        """Ban a member from the server"""
        guild = await discord_client.fetch_guild(int(arguments["server_id"]))
        user = await discord_client.fetch_user(int(arguments["user_id"]))
        
        kwargs = {
            "reason": arguments.get("reason", "Banned via MCP")
        }
        
        if "delete_message_days" in arguments:
            kwargs["delete_message_days"] = min(arguments["delete_message_days"], 7)
        elif "delete_message_seconds" in arguments:
            kwargs["delete_message_seconds"] = arguments["delete_message_seconds"]
        
        await guild.ban(user, **kwargs)
        
        return [TextContent(
            type="text",
            text=f"Banned user {user.name} from {guild.name}\nReason: {kwargs['reason']}"
        )]
  • The Tool definition including name, description, and inputSchema for the ban_member tool, which registers it with the MCP server.
        name="ban_member",
        description="Ban a member from the server with options",
        inputSchema={
            "type": "object",
            "properties": {
                "server_id": {"type": "string", "description": "Server ID"},
                "user_id": {"type": "string", "description": "User ID to ban"},
                "reason": {"type": "string", "description": "Reason for ban"},
                "delete_message_days": {"type": "number", "description": "Days of messages to delete (0-7)"},
                "delete_message_seconds": {"type": "number", "description": "Seconds of messages to delete"}
            },
            "required": ["server_id", "user_id"]
        }
    ),
  • The dispatch logic in call_tool that registers and routes 'ban_member' calls to AdvancedToolHandlers.handle_ban_member.
    advanced_tool_names = [
        "edit_server_settings", "create_server_template", "create_channel_category",
        "create_voice_channel", "create_stage_channel", "create_forum_channel",
        "create_announcement_channel", "edit_channel", "set_channel_permissions",
        "create_role", "edit_role", "delete_role", "create_role_hierarchy",
        "create_emoji", "create_webhook", "send_webhook_message",
        "ban_member", "kick_member", "timeout_member", "bulk_delete_messages",
        "create_scheduled_event", "create_invite", "create_thread", "create_automod_rule"
    ]
    
    if name in advanced_tool_names:
        handler_method = f"handle_{name}"
        if hasattr(AdvancedToolHandlers, handler_method):
            return await getattr(AdvancedToolHandlers, handler_method)(discord_client, arguments)

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

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