mcpbeat Sign in

Discord Bot Skill for Claude

Discord bot development - community management, moderation, notifications, and AI integration

3k tokens
context cost
the whole folder, loaded on every use
1
files
instructions only
0
copies elsewhere
how many repositories repackaged it
353
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/claude-office-skills/skills --skill discord-bot

The instruction itself

22 sections, as written by the author

Discord Bot

Build Discord bots for community management, moderation, notifications, and AI integration. Based on n8n's Discord workflow templates.

Overview

This skill covers:

  • Bot setup and configuration
  • Slash commands and interactions
  • Moderation automation
  • Notification workflows
  • AI-powered features

Bot Setup

Creating a Discord Bot

setup_steps:
  1. create_application:
      url: https://discord.com/developers/applications
      action: "New Application"
      
  2. create_bot:
      section: "Bot"
      action: "Add Bot"
      copy: token
      
  3. configure_intents:
      enable:
        - PRESENCE_INTENT
        - SERVER_MEMBERS_INTENT
        - MESSAGE_CONTENT_INTENT
        
  4. invite_bot:
      section: "OAuth2 > URL Generator"
      scopes: [bot, applications.commands]
      permissions: [based_on_needs]
      generate: invite_link

Slash Commands

slash_commands:
  - name: help
    description: "Show bot help"
    
  - name: ping
    description: "Check bot latency"
    
  - name: poll
    description: "Create a poll"
    options:
      - name: question
        type: STRING
        required: true
      - name: options
        type: STRING
        required: true
        
  - name: remind
    description: "Set a reminder"
    options:
      - name: time
        type: STRING
        required: true
      - name: message
        type: STRING
        required: true

Moderation Bot

Auto-Moderation

auto_moderation:
  spam_detection:
    triggers:
      - repeated_messages: 5_in_10_seconds
      - mass_mentions: more_than_5
      - link_spam: multiple_links_no_text
    actions:
      - delete_messages
      - timeout: 5_minutes
      - log_to_mod_channel
      
  word_filter:
    blocked_words: [list_of_words]
    action:
      - delete_message
      - warn_user
      
  link_filter:
    allowed_domains: [youtube.com, github.com]
    action: delete_if_not_allowed
    
  raid_protection:
    triggers:
      - join_rate: 10_per_minute
    actions:
      - enable_verification
      - notify_mods
      - slow_mode: enable

Moderation Commands

mod_commands:
  /warn:
    permission: MODERATE_MEMBERS
    action: |
      1. Record warning
      2. DM user with reason
      3. Log to mod channel
      
  /timeout:
    permission: MODERATE_MEMBERS
    options: [user, duration, reason]
    action: |
      1. Apply timeout
      2. DM user
      3. Log action
      
  /ban:
    permission: BAN_MEMBERS
    options: [user, reason, delete_messages]
    action: |
      1. Ban user
      2. Log to mod channel
      3. Optional: post to #bans
      
  /warnings:
    permission: MODERATE_MEMBERS
    action: show_user_warning_history

Community Features

Welcome System

welcome_system:
  on_member_join:
    actions:
      - assign_role: "New Member"
      - send_dm:
          template: |
            ๐Ÿ‘‹ Welcome to {server_name}!
            
            Here's how to get started:
            1. Read #rules
            2. Grab roles in #roles
            3. Introduce yourself in #introductions
            
            Need help? Ask in #support
            
      - post_welcome:
          channel: "#welcome"
          template: |
            ๐ŸŽ‰ Welcome {user_mention} to the server!
            
            They are member #{member_count}
            
  on_member_leave:
    channel: "#logs"
    template: "{user} left the server. Duration: {time_since_join}"

Role Management

reaction_roles:
  channel: "#roles"
  message: |
    React to get roles:
    
    ๐ŸŽฎ - Gamer
    ๐Ÿ’ป - Developer
    ๐ŸŽจ - Artist
    ๐Ÿ“š - Student
    
  mappings:
    "๐ŸŽฎ": role_id_gamer
    "๐Ÿ’ป": role_id_developer
    "๐ŸŽจ": role_id_artist
    "๐Ÿ“š": role_id_student
    
level_roles:
  system: xp_based
  roles:
    - level: 5
      role: "Active Member"
    - level: 10
      role: "Regular"
    - level: 25
      role: "Veteran"
    - level: 50
      role: "Legend"

Ticket System

ticket_system:
  create_ticket:
    trigger: button_click OR /ticket
    action:
      - create_channel: "ticket-{user}-{number}"
      - set_permissions: [user, support_team]
      - send_initial_message:
          template: |
            ๐ŸŽซ **Support Ticket**
            
            User: {user_mention}
            Created: {timestamp}
            
            Please describe your issue and a team member will assist you shortly.
            
            React with โœ… to close this ticket.
            
  close_ticket:
    trigger: reaction OR /close
    action:
      - save_transcript: to_logs_channel
      - delete_channel: after_5_seconds
      - dm_user: transcript_link

Notification Workflows

n8n Integration

workflow: "Discord Notifications"

triggers:
  github_release:
    action:
      channel: "#releases"
      embed:
        title: "๐Ÿš€ New Release: {version}"
        description: "{release_notes}"
        color: 0x00ff00
        fields:
          - name: "Download"
            value: "[Link]({download_url})"
            
  twitch_live:
    action:
      channel: "#streams"
      message: "@everyone {streamer} is now live!"
      embed:
        title: "{stream_title}"
        image: "{thumbnail}"
        
  youtube_video:
    action:
      channel: "#videos"
      embed:
        title: "{video_title}"
        description: "{description}"
        thumbnail: "{thumbnail}"

Scheduled Posts

scheduled_posts:
  daily_question:
    schedule: "10am daily"
    channel: "#daily-discussion"
    template: |
      ๐Ÿค” **Question of the Day**
      
      {random_question}
      
      Share your thoughts below! ๐Ÿ‘‡
      
  weekly_recap:
    schedule: "Sunday 6pm"
    channel: "#announcements"
    template: |
      ๐Ÿ“Š **Weekly Server Recap**
      
      New members: {new_members}
      Messages: {message_count}
      Most active channel: {top_channel}
      Top contributor: {top_user}
      
      Thanks for being part of our community! โค๏ธ

AI Integration

AI Chat Bot

ai_bot:
  trigger: mention OR dm
  
  configuration:
    model: gpt-4
    system_prompt: |
      You are a helpful Discord bot assistant.
      - Be friendly and use Discord-appropriate language
      - Use emojis naturally
      - Keep responses concise
      - Help with server-related questions
      
  features:
    - conversation_memory: per_channel
    - rate_limiting: 10_per_minute
    - content_filter: enabled
    
  commands:
    /ask:
      description: "Ask the AI a question"
      action: ai_response
      
    /summarize:
      description: "Summarize recent messages"
      action: summarize_channel_history

Image Generation

image_generation:
  command: /imagine
  
  options:
    - prompt: STRING (required)
    - style: CHOICE [realistic, anime, cartoon, abstract]
    - size: CHOICE [square, portrait, landscape]
    
  workflow:
    1. receive_command
    2. send_generating_message
    3. call_dalle_api
    4. send_result_with_buttons:
        - Regenerate
        - Upscale
        - Variations

Embeds & Components

Rich Embed

embed:
  title: "Server Information"
  description: "Welcome to our community!"
  color: 0x5865F2  # Discord blurple
  
  thumbnail:
    url: "{server_icon}"
    
  fields:
    - name: "๐Ÿ“Š Members"
      value: "{member_count}"
      inline: true
    - name: "๐Ÿ’ฌ Channels"
      value: "{channel_count}"
      inline: true
    - name: "๐ŸŽญ Roles"
      value: "{role_count}"
      inline: true
    - name: "๐Ÿ“… Created"
      value: "{creation_date}"
      inline: false
      
  footer:
    text: "Last updated"
    icon_url: "{bot_avatar}"
    
  timestamp: "{current_time}"

Button Components

buttons:
  row_1:
    - type: button
      style: primary
      label: "Accept Rules"
      custom_id: "accept_rules"
      
    - type: button
      style: secondary
      label: "View Rules"
      custom_id: "view_rules"
      
  row_2:
    - type: button
      style: link
      label: "Website"
      url: "https://example.com"
      
    - type: button
      style: danger
      label: "Leave"
      custom_id: "leave_confirm"

Output Example

Request: "Create a Discord welcome bot"

Output:

# Discord Welcome Bot

## Configuration

events:

  • guildMemberAdd
  • guildMemberRemove

## Welcome Message

// On member join

const welcomeEmbed = {

title: '๐Ÿ‘‹ Welcome to the Server!',

description: Hey ${member.user}, welcome to ${guild.name}!,

color: 0x00ff00,

fields: [

{ name: '๐Ÿ“œ Rules', value: 'Check <#rules-channel>', inline: true },

{ name: '๐ŸŽญ Roles', value: 'Get roles in <#roles>', inline: true },

{ name: '๐Ÿ’ฌ Chat', value: 'Say hi in <#general>', inline: true }

],

thumbnail: { url: member.user.displayAvatarURL() },

footer: { text: Member #${guild.memberCount} }

};

welcomeChannel.send({ embeds: [welcomeEmbed] });


## Auto-Role

// Assign "New Member" role

await member.roles.add(newMemberRole);


## DM Welcome

// Send DM with server info

await member.send({

content: Welcome to ${guild.name}! Here's everything you need to know...,

embeds: [infoEmbed]

});


## n8n Workflow

trigger: Discord - On Member Join

actions:

  • Discord - Send Channel Message (welcome)
  • Discord - Add Role
  • Discord - Send DM
  • Google Sheets - Log new member

*Discord Bot Skill - Part of Claude Office Skills*

Other skills for the same job

different authors, same section of the catalogue
Meeting Insights Analyzer
by frostant
ร—8

Analyzes meeting transcripts and recordings to uncover behavioral patterns, communication insights, and actionable feedback. Identifies when you avoid conflict, use filler words, dominate conversations, or miss opportunities to listen. Perfect for professionals seeking to improve their communication and leadership skills.

3k tokens
Slack Gif Creator
by JayZeeDesign
ร—7

Toolkit for creating animated GIFs optimized for Slack, with validators for size constraints and composable animation primitives. This skill applies when users request animated GIFs or emoji animations for Slack from descriptions like "make me a GIF for Slack of X doing Y".

53k tokens scripts
Developer Growth Analysis
by frostant
ร—6

Analyzes your recent Claude Code chat history to identify coding patterns, development gaps, and areas for improvement, curates relevant learning resources from HackerNews, and automatically sends a personalized growth report to your Slack DMs.

4k tokens
Slack Gif Creator
by anthropics
vendor ร—5

Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like "make me a GIF of X doing Y for Slack.

11k tokens scripts
Skill Share
by frostant
ร—4

A skill that creates new Claude skills and automatically shares them on Slack using Rube for seamless team collaboration and skill discovery.

728 tokens
Electron
by vercel-labs
vendor ร—2

Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using agent-browser via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include "automate Slack app", "control VS Code", "interact with Discord app", "test this Electron app", "connect to desktop app", or any task requiring automation of a native Electron application.

2k tokens
Notion Meeting Intelligence
by openai
vendor ร—2

Prepare meeting materials with Notion context and Codex research; use when gathering context, drafting agendas/pre-reads, and tailoring materials to attendees.

18k tokens
Daily Meeting Update
by softaworks
ร—2

Interactive daily standup/meeting update generator. Use when user says 'daily', 'standup', 'scrum update', 'status update', 'what did I do yesterday', 'prepare for meeting', 'morning update', or 'team sync'. Pulls activity from GitHub, Jira, and Claude Code session history. Conducts 4-question interview (yesterday, today, blockers, discussion topics) and generates formatted Markdown update.

8k tokens scripts

How to use it

Copy the folder

Take claude-office-skills/discord-bot from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side โ€” one of them will be ignored.