List Discord Category Channels
Immutable Catalog Entry
This descriptor comes from the active versioned Portal catalog.
- Contract tier:
agent_ready - Risk:
read - Catalog version:
discord-2026.07.12.3 - Descriptor hash:
013bbbf54fbc684be9d8a2fa3bcd3117653802b2a951715fb6990b7b03bc09f8
Use this when you need readable children of one category. This reads category membership without changing state through Discord's API and returns category ID plus channel IDs, names, types, and count. It requires a configured Discord bot and guild with the relevant permissions.
Request Body
{
"jsonrpc": "2.0",
"id": "discord-list-channels-in-category-example",
"method": "tools/call",
"params": {
"name": "discord.list_channels_in_category",
"arguments": {
"category_id": "category_id_123",
"guild_id": "guild_id_123"
}
}
}
Arguments Schema
{
"type": "object",
"title": "list_channels_in_category input",
"required": [
"category_id"
],
"properties": {
"guild_id": {
"type": "string",
"title": "Guild Id",
"default": "",
"description": "Optional Discord guild snowflake override; otherwise uses request-scoped configuration."
},
"category_id": {
"type": "string",
"title": "Category Id",
"description": "Discord category snowflake identifying the parent category or target category."
}
},
"description": "Validated input for the Discord MCP list_channels_in_category tool."
}
Output Schema
{
"oneOf": [
{
"type": "object",
"required": [
"ok",
"data",
"meta"
],
"properties": {
"ok": {
"const": true
},
"data": {
"type": "object",
"properties": {
"count": {
"type": [
"integer",
"null"
],
"description": "Provider data field count returned by list_channels_in_category."
},
"channels": {
"type": "array",
"items": {},
"description": "Provider data field channels returned by list_channels_in_category."
}
},
"description": "category ID plus channel IDs, names, types, and count",
"additionalProperties": true
},
"meta": {
"type": "object",
"required": [
"duration_ms",
"rate_limit",
"warnings"
],
"properties": {
"guild_id": {
"type": "string"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"thread_id": {
"type": "string"
},
"channel_id": {
"type": "string"
},
"rate_limit": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string"
},
"duration_ms": {
"type": "integer",
"minimum": 0
}
},
"description": "Safe execution metadata containing no credentials or raw headers.",
"additionalProperties": true
}
},
"additionalProperties": false
},
{
"type": "object",
"required": [
"ok",
"error",
"meta"
],
"properties": {
"ok": {
"const": false
},
"meta": {
"type": "object",
"required": [
"duration_ms",
"rate_limit",
"warnings"
],
"properties": {
"guild_id": {
"type": "string"
},
"warnings": {
"type": "array",
"items": {
"type": "string"
}
},
"thread_id": {
"type": "string"
},
"channel_id": {
"type": "string"
},
"rate_limit": {
"type": "object",
"additionalProperties": true
},
"request_id": {
"type": "string"
},
"duration_ms": {
"type": "integer",
"minimum": 0
}
},
"description": "Safe execution metadata containing no credentials or raw headers.",
"additionalProperties": true
},
"error": {
"type": "object",
"required": [
"type",
"message"
],
"properties": {
"type": {
"type": "string"
},
"message": {
"type": "string"
},
"diagnostics": {
"type": "object",
"additionalProperties": true
},
"required_perms": {
"type": "array",
"items": {
"type": "string"
}
},
"discord_error_code": {
"type": "integer"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
],
"title": "Discord MCP provider result",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"description": "Normalized success or semantic-error response; ok=false is a failed call."
}
Code Examples
- cURL
- Node.js
- Python
curl -X POST 'https://portal.madpanda3d.com/api/mcp' \
-H 'Authorization: Bearer mad_live_***' \
-H 'Content-Type: application/json' \
-d '{
"jsonrpc": "2.0",
"id": "discord-list-channels-in-category-example",
"method": "tools/call",
"params": {
"name": "discord.list_channels_in_category",
"arguments": {
"category_id": "category_id_123",
"guild_id": "guild_id_123"
}
}
}'
const response = await fetch('https://portal.madpanda3d.com/api/mcp', {
method: 'POST',
headers: {
Authorization: 'Bearer mad_live_***',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"jsonrpc": "2.0",
"id": "discord-list-channels-in-category-example",
"method": "tools/call",
"params": {
"name": "discord.list_channels_in_category",
"arguments": {
"category_id": "category_id_123",
"guild_id": "guild_id_123"
}
}
}),
});
const data = await response.json();
console.log(data);
import requests
url = 'https://portal.madpanda3d.com/api/mcp'
headers = {
'Authorization': 'Bearer mad_live_***',
'Content-Type': 'application/json',
}
payload = {
"jsonrpc": "2.0",
"id": "discord-list-channels-in-category-example",
"method": "tools/call",
"params": {
"name": "discord.list_channels_in_category",
"arguments": {
"category_id": "category_id_123",
"guild_id": "guild_id_123"
}
}
}
response = requests.post(url, headers=headers, json=payload, timeout=60)
print(response.json())
Example Responses
- 200 Success
- 502 Upstream Error
{
"ok": true,
"message": "Tool discord.list_channels_in_category executed successfully.",
"note": "Response shape varies by MCP tool. Inspect live responses for exact fields."
}
{
"ok": false,
"classification": "upstream_http_error",
"message": "Upstream MCP returned a non-success status."
}