supabase
Handles the full Supabase workflow from schema changes to deployment, with built-in security guardrails that catch common traps like RLS...
discord-list-channels
List all channels in a Discord guild/server via the Discord API. Use this skill when the user wants to see all channels, find specific channels, or audit server structure.
Full skill instructions
List all channels in a Discord guild (server) using the Discord API v10. This skill retrieves all channels including text channels, voice channels, categories, announcement channels, and stage channels.
Use this skill when the user wants to:
DISCORD_BOT_TOKEN environment variable must be setChannels are returned with the following type values:
| Type | Value | Description |
|---|---|---|
| GUILD_TEXT | 0 | Text channel |
| GUILD_VOICE | 2 | Voice channel |
| GUILD_CATEGORY | 4 | Category (organizes channels) |
| GUILD_ANNOUNCEMENT | 5 | Announcement channel |
| GUILD_STAGE_VOICE | 13 | Stage channel |
| GUILD_FORUM | 15 | Forum channel |
When the user requests to list Discord channels:
Validate Requirements
DISCORD_BOT_TOKEN is set in environmentMake the API Request Use the following curl command structure:
curl -X GET "https://discord.com/api/v10/guilds/{GUILD_ID}/channels" \
-H "Authorization: Bot ${DISCORD_BOT_TOKEN}"
Replace {GUILD_ID} with the actual guild ID.
Process Response
Handle Response Codes
Present Results
Each channel object contains:
{
"id": "123456789012345678",
"type": 0,
"guild_id": "987654321098765432",
"position": 0,
"permission_overwrites": [],
"name": "general",
"topic": "General discussion",
"nsfw": false,
"last_message_id": "111222333444555666",
"parent_id": null
}
Additional fields for voice channels:
{
"bitrate": 64000,
"user_limit": 0,
"rtc_region": null
}
Filter channels to show only specific types:
# Get all channels then filter by type
curl -s "https://discord.com/api/v10/guilds/{GUILD_ID}/channels" \
-H "Authorization: Bot ${DISCORD_BOT_TOKEN}" | \
jq '.[] | select(.type == 0)' # Text channels only
Type filters:
.type == 0 - Text channels.type == 2 - Voice channels.type == 4 - Categories.type == 5 - Announcement channels.type == 13 - Stage channelsSearch for channels by name:
# Get channels and search by name
curl -s "https://discord.com/api/v10/guilds/{GUILD_ID}/channels" \
-H "Authorization: Bot ${DISCORD_BOT_TOKEN}" | \
jq '.[] | select(.name | contains("general"))'
List channels in a specific category:
# Get channels in category with parent_id
curl -s "https://discord.com/api/v10/guilds/{GUILD_ID}/channels" \
-H "Authorization: Bot ${DISCORD_BOT_TOKEN}" | \
jq '.[] | select(.parent_id == "category_id_here")'
Organize channels by their parent category:
# List all channels grouped by category
CHANNELS=$(curl -s "https://discord.com/api/v10/guilds/{GUILD_ID}/channels" \
-H "Authorization: Bot ${DISCORD_BOT_TOKEN}")
# Get categories
echo "$CHANNELS" | jq -r '.[] | select(.type == 4) | .name + " (ID: " + .id + ")"'
# Get channels in each category
for CATEGORY_ID in $(echo "$CHANNELS" | jq -r '.[] | select(.type == 4) | .id'); do
echo "Channels in category $CATEGORY_ID:"
echo "$CHANNELS" | jq -r ".[] | select(.parent_id == \"$CATEGORY_ID\") | \" - \" + .name"
done
Channels have a position field for sorting:
curl -s "https://discord.com/api/v10/guilds/{GUILD_ID}/channels" \
-H "Authorization: Bot ${DISCORD_BOT_TOKEN}" | \
jq 'sort_by(.position)'
Channels in server 123456789012345678:
- general (text)
- announcements (announcement)
- voice-chat (voice)
- Community (category)
=== Text Channels ===
general (ID: 111222333444555666)
Topic: General discussion
NSFW: No
announcements (ID: 111222333444555667)
Topic: Server updates
NSFW: No
=== Voice Channels ===
voice-chat (ID: 111222333444555668)
User Limit: None
Bitrate: 64kbps
=== Categories ===
Community (ID: 111222333444555669)
📁 Community (Category)
💬 general-chat (Text)
💬 help (Text)
🔊 Voice Room 1 (Voice)
📁 Administration (Category)
💬 mod-chat (Text)
💬 admin-only (Text)
💬 welcome (Text) - No category
📢 announcements (Announcement) - No category
Channel ID,Name,Type,Category,Topic
111222333444555666,general,text,Community,General discussion
111222333444555667,voice-chat,voice,Community,
111222333444555668,announcements,announcement,,Server updates
When displaying channels, use these labels:
| Type Value | Display Label | Emoji |
|---|---|---|
| 0 | Text | 💬 |
| 2 | Voice | 🔊 |
| 4 | Category | 📁 |
| 5 | Announcement | 📢 |
| 13 | Stage | 🎙️ |
| 15 | Forum | 💭 |
401 Unauthorized
DISCORD_BOT_TOKEN is set correctly403 Forbidden
404 Not Found
User wants to find a channel ID by its name.
User wants to see all channels organized by category.
User wants to see only voice channels or only text channels.
User wants to export all channel names and IDs for documentation.
User wants to see which channels the bot has access to.
See examples.md for detailed usage scenarios.
GET /guilds/{guild.id}/channelsHandles the full Supabase workflow from schema changes to deployment, with built-in security guardrails that catch common traps like RLS...
Comprehensive guides and best practices for Neon Serverless Postgres, covering setup, connection methods, authentication, and platform APIs.
Guide for setting up and using Firebase Authentication. Use this skill when the user's app requires user sign-in, user management, or secure data access using auth rules.
A skill to evaluate how secure Firestore security rules are. Use this when Firestore security rules are updated to ensure that the generated rules are extremely secure and robust.
Official skill for integrating Firebase AI Logic (Gemini API) into web applications. Covers setup, multimodal inference, structured output, and security.
Complete Better Auth server and client setup with database adapters, session management, plugins, and security configuration.
Deploy and manage projects on Vercel using token-based authentication. Use when working with Vercel CLI using access tokens rather than interactive login — e.g. "deploy to vercel", "set up vercel", "add environment variables to vercel".
Complete Cloudflare platform integration with decision trees for compute, storage, AI, networking, security, and infrastructure-as-code.
Run Azure compliance and security audits with azqr plus Key Vault expiration checks. Covers best-practice assessment, resource review, policy/compliance validation, and security posture checks. WHEN: compliance scan, security audit, BEFORE running azqr (compliance cli tool), Azure best practices, Key Vault expiration check, expired certificates, expiring secrets, orphaned resources, compliance assessment.
Send, read, and manage Gmail messages, drafts, labels, and account settings.
Comprehensive website auditing across 230+ rules in 21 categories including SEO, performance, security, and accessibility.
Shared authentication, CLI syntax, and output formatting patterns for gws Google Workspace commands.
Discover your celebrity doppelgänger with StarByFace!
GeoSpy: Pricing, Features, FAQs, and Alternatives for AI Teams
Detect AI-generated voices to protect against audio fraud.
Ensure Your Content's Originality with AI Plagiarism Checker
Upscale images by 400% without quality loss
Protect your social media from copyright disputes
Accurately Detect AI-Generated Content with TheChecker.AI
Chrome extension that detects and flags AI-generated content