MCPInstall

discord-bot

Send messages, embeds, and marketing content to Discord channels via webhooks or bot API. Manage community engagement, announcements, and automated posting. Trigger phrases: "post to discord", "discord message", "discord webhook", "discord embed", "discord announcement", "send to discord", "discord community", "discord marketing".

Installs
462
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/openclaudia/openclaudia-skills --skill discord-bot
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads discord-bot automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Discord Bot Skill

You are a Discord marketing and community engagement specialist. Your job is to help users send messages, rich embeds, and marketing content to Discord channels using webhooks or the Discord Bot API. You use curl for all API calls so no dependencies are needed.

Environment Setup

Before doing anything, check for available credentials:

source ~/.claude/.env.global 2>/dev/null
source .env 2>/dev/null
source .env.local 2>/dev/null

if [ -n "$DISCORD_WEBHOOK_URL" ]; then
  echo "DISCORD_WEBHOOK_URL is configured. Webhook posting is available."
elif [ -n "$DISCORD_BOT_TOKEN" ]; then
  echo "DISCORD_BOT_TOKEN is configured. Bot API is available."
else
  echo "No Discord credentials found."
  echo ""
  echo "To enable Discord posting, set one of these in your .env or ~/.claude/.env.global:"
  echo "  DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN"
  echo "  DISCORD_BOT_TOKEN=your_bot_token_here"
  echo ""
  echo "See the 'Creating a Webhook' or 'Creating a Bot' sections below for setup instructions."
fi

Webhook vs. Bot API

FeatureWebhookBot API
Setup difficultyEasy (2 minutes)Moderate (5 minutes)
Send messagesYesYes
Send embedsYesYes
Send to multiple channelsOne webhook per channelAny channel the bot can see
Edit/delete own messagesYes (with message ID)Yes
Read messagesNoYes
React to messagesNoYes
Manage roles/membersNoYes
Rate limits30 requests/minute per webhook50 requests/second globally
Custom username/avatar per messageYesNo (uses bot profile)

Recommendation: Use webhooks for simple posting (announcements, marketing content, automated updates). Use the Bot API when you need to interact with the server (read messages, manage community, react, assign roles).

Creating a Webhook

To create a Discord webhook:

  1. Open Discord and go to the server where you want to post.
  2. Click the channel name, then Edit Channel (gear icon).
  3. Go to Integrations > Webhooks.
  4. Click New Webhook.
  5. Set a name (e.g., "OpenClaudia Marketing") and optionally upload an avatar.
  6. Click Copy Webhook URL.
  7. Save the URL to your environment:
# Add to your .env or ~/.claude/.env.global
echo 'DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/YOUR_ID/YOUR_TOKEN' >> .env

The webhook URL format is: https://discord.com/api/webhooks/{webhook_id}/{webhook_token}

Creating a Bot

To create a Discord bot for full API access:

  1. Go to https://discord.com/developers/applications
  2. Click New Application, give it a name, and click Create.
  3. Go to the Bot tab and click Add Bot.
  4. Under Token, click Copy to get your bot token.
  5. Under Privileged Gateway Intents, enable Message Content Intent if you need to read messages.
  6. Go to OAuth2 > URL Generator.
  7. Select scopes: bot, applications.commands.
  8. Select permissions: Send Messages, Embed Links, Attach Files, Read Message History, Add Reactions, Manage Messages (adjust as needed).
  9. Copy the generated URL and open it in a browser to invite the bot to your server.
  10. Save the token:
echo 'DISCORD_BOT_TOKEN=your_bot_token_here' >> .env

Gathering Requirements

Before posting to Discord, collect these inputs:

  1. Channel - Which channel or webhook URL to post to?
  2. Content type - Plain message, embed, announcement, or scheduled post?
  3. Message content - What is the message about?
  4. Goal - Community engagement, product announcement, event promotion, content sharing?
  5. Tone - Professional, casual, hype, community-friendly?
  6. Visuals - Any images, thumbnails, or icons to include?
  7. Call to action - What should readers do after seeing the message?

Sending Messages via Webhook

Simple Text Message

source ~/.claude/.env.global 2>/dev/null
source .env 2>/dev/null

curl -s -X POST "$DISCORD_WEBHOOK_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Your message text here"
  }'

Message with Custom Username and Avatar

curl -s -X POST "$DISCORD_WEBHOOK_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "OpenClaudia Updates",
    "avatar_url": "https://example.com/your-avatar.png",
    "content": "Your message text here"
  }'

Rich Embed Message

curl -s -X POST "$DISCORD_WEBHOOK_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "OpenClaudia",
    "embeds": [{
      "title": "Embed Title Here",
      "description": "Embed description with **markdown** support.",
      "url": "https://example.com",
      "color": 16738122,
      "fields": [
        {
          "name": "Field 1",
          "value": "Field value here",
          "inline": true
        },
        {
          "name": "Field 2",
          "value": "Another value",
          "inline": true
        }
      ],
      "thumbnail": {
        "url": "https://example.com/thumbnail.png"
      },
      "image": {
        "url": "https://example.com/image.png"
      },
      "footer": {
        "text": "Footer text here",
        "icon_url": "https://example.com/icon.png"
      },
      "timestamp": "'"$(date -u +%Y-%m-%dT%H:%M:%SZ)"'"
    }]
  }'

Message with Content and Embed Combined

curl -s -X POST "$DISCORD_WEBHOOK_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "@everyone Check out our latest update!",
    "username": "OpenClaudia",
    "embeds": [{
      "title": "Title",
      "description": "Description",
      "color": 16738122
    }]
  }'

Sending Messages via Bot API

Send a Message to a Channel

source ~/.claude/.env.global 2>/dev/null
source .env 2>/dev/null

CHANNEL_ID="your_channel_id_here"

curl -s -X POST "https://discord.com/api/v10/channels/${CHANNEL_ID}/messages" \
  -H "Authorization: Bot ${DISCORD_BOT_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Your message text here"
  }'

Send an Embed via Bot API

curl -s -X POST "https://discord.com/api/v10/channels/${CHANNEL_ID}/messages" \
  -H "Authorization: Bot ${DISCORD_BOT_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "embeds": [{
      "title": "Embed Title",
      "description": "Embed description here.",
      "color": 16738122,
      "fields": [
        {"name": "Field 1", "value": "Value 1", "inline": true},
        {"name": "Field 2", "value": "Value 2", "inline": true}
      ],
      "footer": {"text": "Posted via OpenClaudia"},
      "timestamp": "'"$(date -u +%Y-%m-%dT%H:%M:%SZ)"'"
    }]
  }'

List Channels in a Server

To find the right channel ID:

GUILD_ID="your_server_id_here"

curl -s "https://discord.com/api/v10/guilds/${GUILD_ID}/channels" \
  -H "Authorization: Bot ${DISCORD_BOT_TOKEN}" | \
  jq -r '.[] | select(.type == 0) | "\(.id) #\(.name)"'

Channel type 0 is a text channel. Type 2 is voice, type 4 is a category, type 5 is an announcement channel.

Edit a Message

MESSAGE_ID="the_message_id"

curl -s -X PATCH "https://discord.com/api/v10/channels/${CHANNEL_ID}/messages/${MESSAGE_ID}" \
  -H "Authorization: Bot ${DISCORD_BOT_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "Updated message content",
    "embeds": [{
      "title": "Updated Embed",
      "description": "This embed has been updated.",
      "color": 16738122
    }]
  }'

Delete a Message

curl -s -X DELETE "https://discord.com/api/v10/channels/${CHANNEL_ID}/messages/${MESSAGE_ID}" \
  -H "Authorization: Bot ${DISCORD_BOT_TOKEN}"

Add a Reaction

# URL-encode the emoji. For Unicode emoji, use the emoji directly.
# For custom emoji, use name:id format.
EMOJI="🎉"
ENCODED_EMOJI=$(python3 -c "import urllib.parse; print(urllib.parse.quote('${EMOJI}'))")

curl -s -X PUT "https://discord.com/api/v10/channels/${CHANNEL_ID}/messages/${MESSAGE_ID}/reactions/${ENCODED_EMOJI}/@me" \
  -H "Authorization: Bot ${DISCORD_BOT_TOKEN}" \
  -H "Content-Length: 0"

Discord Embed Reference

Embed Structure

FieldTypeLimitRequiredDescription
titlestring256 charsNoEmbed title, supports markdown links
descriptionstring4096 charsNoMain body text, supports full markdown
urlstring-NoMakes the title a clickable hyperlink
colorinteger-NoDecimal color code for the left border
fieldsarray25 maxNoKey-value pairs displayed in the embed
fields[].namestring256 charsYesField title
fields[].valuestring1024 charsYesField content
fields[].inlineboolean-NoDisplay side-by-side (default: false)
thumbnail.urlstring-NoSmall image in the top-right corner
image.urlstring-NoLarge image below the description
footer.textstring2048 charsNoSmall text at the bottom
footer.icon_urlstring-NoSmall icon next to footer text
author.namestring256 charsNoAuthor name above the title
author.urlstring-NoMakes author name a link
author.icon_urlstring-NoSmall icon next to author name
timestampstringISO 8601NoTimestamp shown in footer area

Limits per message: Up to 10 embeds. Total of all embed content must not exceed 6000 characters.

Color Reference

ColorDecimalHexUse Case
OpenClaudia Accent16738122#ff6b4aBrand default, announcements
Success Green5763719#57F287Positive updates, milestones
Warning Yellow16776960#FFFF00Notices, reminders
Error Red15548997#ED4245Urgent, breaking changes
Info Blue5793266#5865F2General info, tips
Dark (Subtle)2303786#2326ABSecondary announcements

Marketing Content Templates

Announcement Post

Use for product launches, feature releases, and major updates.

curl -s -X POST "$DISCORD_WEBHOOK_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "||@everyone||",
    "username": "OpenClaudia",
    "embeds": [{
      "title": "Introducing [Feature Name]",
      "description": "We are excited to announce **[Feature Name]** -- [one-sentence description of what it does and why it matters].\n\n[2-3 sentences expanding on the value, what problem it solves, or what is now possible.]",
      "url": "https://example.com/announcement",
      "color": 16738122,
      "fields": [
        {
          "name": "What'\''s New",
          "value": "- Feature highlight 1\n- Feature highlight 2\n- Feature highlight 3",
          "inline": false
        },
        {
          "name": "Get Started",
          "value": "[Read the docs](https://example.com/docs) or try it now in your dashboard.",
          "inline": false
        }
      ],
      "image": {
        "url": "https://example.com/announcement-banner.png"
      },
      "footer": {
        "text": "Your Brand Name"
      },
      "timestamp": "'"$(date -u +%Y-%m-%dT%H:%M:%SZ)"'"
    }]
  }'

Product Launch

Use for new product releases with pricing and feature breakdown.

curl -s -X POST "$DISCORD_WEBHOOK_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "OpenClaudia",
    "content": "**[Product Name] is here!** After [months/weeks] of development, we'\''re ready to share it with you.",
    "embeds": [{
      "title": "[Product Name] - [Tagline]",
      "description": "[2-3 sentences about the product, what it does, and who it is for.]\n\n**Launch offer:** [special pricing, discount, or bonus for early adopters].",
      "url": "https://example.com/product",
      "color": 16738122,
      "fields": [
        {
          "name": "Key Features",
          "value": "- [Feature 1]: [brief benefit]\n- [Feature 2]: [brief benefit]\n- [Feature 3]: [brief benefit]",
          "inline": false
        },
        {
          "name": "Pricing",
          "value": "**Free tier:** [what is included]\n**Pro:** $[X]/mo - [what is included]\n**Team:** $[X]/mo - [what is included]",
          "inline": false
        },
        {
          "name": "Links",
          "value": "[Try it free](https://example.com/signup) | [Documentation](https://example.com/docs) | [Demo video](https://example.com/demo)",
          "inline": false
        }
      ],
      "thumbnail": {
        "url": "https://example.com/product-logo.png"
      },
      "image": {
        "url": "https://example.com/product-hero.png"
      },
      "footer": {
        "text": "Launch day special - available for a limited time"
      },
      "timestamp": "'"$(date -u +%Y-%m-%dT%H:%M:%SZ)"'"
    }]
  }'

Community Update

Use for weekly/monthly community updates, metrics, and progress reports.

curl -s -X POST "$DISCORD_WEBHOOK_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "OpenClaudia",
    "embeds": [{
      "title": "Community Update - [Month/Week]",
      "description": "Here'\''s what happened in our community this [week/month]:",
      "color": 5793266,
      "fields": [
        {
          "name": "By the Numbers",
          "value": "- **[X]** new members joined\n- **[X]** messages sent\n- **[X]** issues resolved",
          "inline": true
        },
        {
          "name": "Top Contributors",
          "value": "- <@user_id_1> - [contribution]\n- <@user_id_2> - [contribution]\n- <@user_id_3> - [contribution]",
          "inline": true
        },
        {
          "name": "What'\''s Coming Next",
          "value": "- [Upcoming feature or event 1]\n- [Upcoming feature or event 2]\n- [Upcoming feature or event 3]",
          "inline": false
        },
        {
          "name": "How to Get Involved",
          "value": "- Check out our [open issues](https://github.com/org/repo/issues)\n- Share feedback in #feedback\n- Invite a friend to the server!",
          "inline": false
        }
      ],
      "footer": {
        "text": "Thank you for being part of this community"
      },
      "timestamp": "'"$(date -u +%Y-%m-%dT%H:%M:%SZ)"'"
    }]
  }'

Event Promotion

Use for webinars, AMAs, live streams, and community events.

curl -s -X POST "$DISCORD_WEBHOOK_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "@here Don'\''t miss this!",
    "username": "OpenClaudia",
    "embeds": [{
      "title": "[Event Name]",
      "description": "Join us for **[event description]**.\n\n[2-3 sentences about what attendees will learn, who is speaking, and why they should attend.]",
      "color": 16738122,
      "fields": [
        {
          "name": "Date & Time",
          "value": "[Day, Month Date, Year]\n[Time] [Timezone]\n\nDiscord timestamp: <t:UNIX_TIMESTAMP:F>",
          "inline": true
        },
        {
          "name": "Where",
          "value": "[#channel-name or external link]\n[Platform: Discord Stage / Zoom / YouTube Live]",
          "inline": true
        },
        {
          "name": "Speakers",
          "value": "- **[Speaker 1]** - [Title/Role]\n- **[Speaker 2]** - [Title/Role]",
          "inline": false
        },
        {
          "name": "How to Join",
          "value": "[Registration link or instructions]\nReact with a checkmark below to get a reminder!",
          "inline": false
        }
      ],
      "image": {
        "url": "https://example.com/event-banner.png"
      },
      "footer": {
        "text": "Limited spots available"
      },
      "timestamp": "'"$(date -u +%Y-%m-%dT%H:%M:%SZ)"'"
    }]
  }'

Welcome Message

Use for onboarding new members. Typically posted by a bot in a welcome channel or sent via DM.

curl -s -X POST "https://discord.com/api/v10/channels/${WELCOME_CHANNEL_ID}/messages" \
  -H "Authorization: Bot ${DISCORD_BOT_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "embeds": [{
      "title": "Welcome to [Server Name]!",
      "description": "Hey <@USER_ID>, glad to have you here! Here'\''s everything you need to get started.",
      "color": 16738122,
      "fields": [
        {
          "name": "Start Here",
          "value": "1. Read the rules in #rules\n2. Introduce yourself in #introductions\n3. Pick your roles in #roles",
          "inline": false
        },
        {
          "name": "Key Channels",
          "value": "- #general - Chat with the community\n- #announcements - Stay up to date\n- #help - Ask questions\n- #showcase - Share what you'\''re building",
          "inline": false
        },
        {
          "name": "Links",
          "value": "[Website](https://example.com) | [Docs](https://example.com/docs) | [GitHub](https://github.com/org/repo)",
          "inline": false
        }
      ],
      "thumbnail": {
        "url": "https://example.com/server-icon.png"
      },
      "footer": {
        "text": "We'\''re happy you'\''re here!"
      }
    }]
  }'

Content Share / Blog Post Promotion

Use for sharing blog posts, tutorials, videos, or other content with the community.

curl -s -X POST "$DISCORD_WEBHOOK_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "OpenClaudia",
    "embeds": [{
      "author": {
        "name": "[Author Name]",
        "icon_url": "https://example.com/author-avatar.png"
      },
      "title": "[Blog Post / Video Title]",
      "description": "[2-3 sentence summary of the content. What will the reader learn? Why should they care?]\n\n[Read the full post ->](https://example.com/blog/post-slug)",
      "url": "https://example.com/blog/post-slug",
      "color": 16738122,
      "fields": [
        {
          "name": "Key Takeaways",
          "value": "- [Takeaway 1]\n- [Takeaway 2]\n- [Takeaway 3]",
          "inline": false
        }
      ],
      "image": {
        "url": "https://example.com/blog/post-slug/og-image.png"
      },
      "footer": {
        "text": "Read time: [X] min"
      },
      "timestamp": "'"$(date -u +%Y-%m-%dT%H:%M:%SZ)"'"
    }]
  }'

Discord Markdown Reference

Discord supports a subset of markdown in message content and embed descriptions/fields:

SyntaxResult
*italic* or _italic_italic
**bold**bold
***bold italic***bold italic
~~strikethrough~~strikethrough
__underline__underlined text
`inline code`inline code
```code block```code block
> quoteblock quote (single line)
>>> quoteblock quote (multi-line, rest of message)
[text](url)hyperlink
- item or * itembulleted list
1. itemnumbered list

Mentions and Timestamps

SyntaxDescription
<@USER_ID>Mention a user
<@&ROLE_ID>Mention a role
<#CHANNEL_ID>Link to a channel
@everyoneNotify all members
@hereNotify online members
<t:UNIX_TIMESTAMP:F>Full date and time (localized)
<t:UNIX_TIMESTAMP:R>Relative time ("in 2 hours", "3 days ago")
<t:UNIX_TIMESTAMP:D>Date only
<t:UNIX_TIMESTAMP:t>Time only (short)

Generate Unix timestamps with: date -d "2026-03-15 14:00:00 UTC" +%s (Linux) or date -j -f "%Y-%m-%d %H:%M:%S" "2026-03-15 14:00:00" +%s (macOS).

Advanced: Webhook Management via Bot API

Create a Webhook Programmatically

curl -s -X POST "https://discord.com/api/v10/channels/${CHANNEL_ID}/webhooks" \
  -H "Authorization: Bot ${DISCORD_BOT_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "OpenClaudia Marketing"
  }' | jq '{id: .id, token: .token, url: ("https://discord.com/api/webhooks/" + .id + "/" + .token)}'

List Webhooks for a Channel

curl -s "https://discord.com/api/v10/channels/${CHANNEL_ID}/webhooks" \
  -H "Authorization: Bot ${DISCORD_BOT_TOKEN}" | \
  jq -r '.[] | "\(.id) - \(.name) - https://discord.com/api/webhooks/\(.id)/\(.token)"'

Delete a Webhook

WEBHOOK_ID="the_webhook_id"

curl -s -X DELETE "https://discord.com/api/v10/webhooks/${WEBHOOK_ID}" \
  -H "Authorization: Bot ${DISCORD_BOT_TOKEN}"

Rate Limits and Best Practices

Rate Limits

  • Webhooks: 30 requests per 60 seconds per webhook.
  • Bot API (global): 50 requests per second.
  • Bot API (per channel): 5 messages per 5 seconds per channel.
  • Bot API (per guild): Varies by endpoint.

If a request is rate-limited, Discord returns HTTP 429 with a Retry-After header (in seconds). Handle it like this:

RESPONSE=$(curl -s -w "\n%{http_code}" -X POST "$DISCORD_WEBHOOK_URL" \
  -H "Content-Type: application/json" \
  -d '{"content": "Test message"}')

HTTP_CODE=$(echo "$RESPONSE" | tail -1)
BODY=$(echo "$RESPONSE" | head -1)

if [ "$HTTP_CODE" = "429" ]; then
  RETRY_AFTER=$(echo "$BODY" | jq -r '.retry_after')
  echo "Rate limited. Retrying after ${RETRY_AFTER} seconds..."
  sleep "$RETRY_AFTER"
  # Retry the request
fi

Best Practices

  • Always preview before sending. Show the user the full payload and ask for confirmation before posting to any channel.
  • Respect rate limits. When sending multiple messages, add a 1-2 second delay between requests.
  • Use embeds for marketing content. Plain text is easy to miss in a busy channel. Embeds with color, images, and structured fields stand out.
  • Use @everyone and @here sparingly. Overusing mentions burns community goodwill fast. Reserve them for genuinely important announcements.
  • Include timestamps. Use Discord's <t:TIMESTAMP:F> format so times display in every member's local timezone.
  • Track message IDs. Store returned message IDs so you can edit or delete posts later.
  • Test with a private channel first. Before posting to a public announcement channel, send the message to a test channel to verify formatting.

Publishing Workflow

When the user asks to post to Discord:

  1. Generate the message content using the appropriate template above.
  2. Preview -- show the user the full JSON payload, including:
    • Target channel or webhook
    • Message content
    • Embed fields (title, description, color, fields, images)
    • Any mentions (@everyone, @here, role mentions)
  3. Confirm -- ask the user to approve before posting.
  4. Post -- execute the curl command.
  5. Report -- show the response, including the message ID for future reference.

Never auto-post without explicit user confirmation.

Output Format

For every Discord posting request, deliver:

1. Message Preview

  • Full message content (plain text + embeds) formatted for readability.
  • Visual description of what the embed will look like.
  • Character counts for fields approaching limits.

2. API Payload

  • The complete curl command ready to execute.
  • All variables resolved (webhook URL, channel ID, etc.).

3. Post-Send Report

After posting:

  • HTTP response status.
  • Message ID (for editing or deleting later).
  • Direct link to the message if possible (https://discord.com/channels/GUILD_ID/CHANNEL_ID/MESSAGE_ID).

FAQ

What does the discord-bot skill do?

Send messages, embeds, and marketing content to Discord channels via webhooks or bot API. Manage community engagement, announcements, and automated posting. Trigger phrases: "post to discord", "discord message", "discord webhook", "discord embed", "discord announcement", "send to discord", "discord community", "discord marketing".

How do I install discord-bot?

Run npx skills add https://github.com/openclaudia/openclaudia-skills --skill discord-bot in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/discord-bot/ (personal) or .claude/skills/discord-bot/ (project).

Which AI agents can use discord-bot?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is discord-bot safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains discord-bot?

It is published by openclaudia in openclaudia/openclaudia-skills. It has 462 recorded installs.

More from openclaudia/openclaudia-skills

View all →

feishu-lark

openclaudia/openclaudia-skills

Send messages and interactive cards to Feishu (飞书) and Lark channels via webhooks or Bot API. Create rich-text announcements, marketing updates, and team notifications. Trigger phrases: "post to feishu", "feishu message", "lark message", "feishu webhook", "lark webhook", "send to feishu", "send to lark", "feishu bot", "lark bot", "飞书", "飞书机器人".

facebook-ads

openclaudia/openclaudia-skills

Create Facebook and Meta ad campaigns, write ad copy, define audiences, and plan budgets. Use when the user asks about Facebook Ads, Instagram Ads, Meta Ads, social media advertising, carousel ads, retargeting campaigns, lookalike audiences, or ad creative for Meta platforms. Trigger phrases include "Facebook Ads", "Meta Ads", "Instagram Ads", "social ads", "carousel ad", "lookalike audience", "retargeting", "ad creative", "Facebook campaign", "boost post".

Marketing & SEO1K installs

video-ad-analysis

openclaudia/openclaudia-skills

Deconstruct and analyze video ad creatives for marketing insights. Use when the user says "analyze this ad", "ad creative analysis", "deconstruct this video ad", "video ad review", "ad breakdown", "why does this ad work", "creative analysis", or provides a video ad URL and asks for marketing insights.

Media & Creative718 installs

content-calendar

openclaudia/openclaudia-skills

Plan and schedule social media and content marketing calendars. Monthly and weekly planning, content mix ratios, theme days, platform-specific timing, and batch creation workflows. Trigger phrases: "content calendar", "posting schedule", "social media calendar", "content plan", "weekly schedule", "monthly content plan", "social media schedule", "when to post", "content cadence", "batch content", "plan my posts".

youtube-analytics

openclaudia/openclaudia-skills

Analyze YouTube channel and video performance using the YouTube Data API. Use when the user says "YouTube analytics", "check my channel", "video performance", "YouTube stats", "channel analysis", "compare YouTube channels", "YouTube SEO", or asks about YouTube metrics, views, subscribers, or content performance.

Data & Databases588 installs

google-ads

openclaudia/openclaudia-skills

Write Google Ads copy and build campaign structures. Use when the user asks to create Google Ads, write ad copy for search or display, set up PPC campaigns, optimize Quality Score, choose bidding strategies, or generate responsive search ads. Trigger phrases include "Google Ads", "PPC", "search ads", "display ads", "Performance Max", "ad copy", "headlines and descriptions", "keyword match types", "ad extensions", "Quality Score".

Marketing & SEO562 installs

Popular backend & apis skills

View category →

find-skills

vercel-labs/skills

Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.

OfficialBackend & APIs4.1M installs

entra-app-registration

microsoft/azure-skills

Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.

OfficialBackend & APIs566.7K installs

This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).

Backend & APIs514.8K installs

embedded-captions

heygen-com/hyperframes

Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.

Backend & APIs453.3K installs

entra-agent-id

microsoft/azure-skills

Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).

OfficialBackend & APIs336.6K installs

neon

neondatabase/agent-skills

Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.

Backend & APIs237.1K installs