Start Discord Daily Audit Job
Immutable Catalog Entry
This descriptor comes from the active versioned Portal catalog.
- Contract tier:
agent_ready - Risk:
write - Catalog version:
discord-2026.07.12.3 - Descriptor hash:
56fb80968fac44b2466b99c286dcc4b4e5605b408b43e6189c546912905ec24f
Use this when you need a resumable audit across multiple channels. This creates an in-memory audit cursor without changing Discord through Discord's API and returns task ID, channel totals, date, timezone, and status. It requires an authenticated MAD MCP Portal request, but does not contact Discord.
Request Body
{
"jsonrpc": "2.0",
"id": "discord-daily-audit-job-submit-example",
"method": "tools/call",
"params": {
"name": "discord.daily_audit_job_submit",
"arguments": {
"date": "date_example",
"channel_ids": "",
"timezone_name": "timezone_name_example"
}
}
}
Arguments Schema
{
"type": "object",
"title": "daily_audit_job_submit input",
"properties": {
"date": {
"type": "string",
"title": "Date",
"default": "",
"description": "Calendar date in YYYY-MM-DD; empty selects the current date in the chosen timezone."
},
"channel_ids": {
"anyOf": [
{
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
}
},
{
"type": "null"
}
],
"title": "Channel Ids",
"default": null,
"description": "Ordered Discord channel snowflakes for the resumable daily audit."
},
"timezone_name": {
"type": "string",
"title": "Timezone Name",
"default": "",
"description": "IANA timezone used for daily boundaries; empty uses configured audit timezone."
}
},
"description": "Validated input for the Discord MCP daily_audit_job_submit tool."
}
Output Schema
{
"oneOf": [
{
"type": "object",
"required": [
"ok",
"data",
"meta"
],
"properties": {
"ok": {
"const": true
},
"data": {
"type": "object",
"properties": {
"status": {
"type": [
"string",
"null"
],
"description": "Provider data field status returned by daily_audit_job_submit."
},
"task_id": {
"type": [
"string",
"null"
],
"description": "Provider data field task_id returned by daily_audit_job_submit."
},
"total_channels": {
"type": [
"integer",
"null"
],
"description": "Provider data field total_channels returned by daily_audit_job_submit."
}
},
"description": "task ID, channel totals, date, timezone, and status",
"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-daily-audit-job-submit-example",
"method": "tools/call",
"params": {
"name": "discord.daily_audit_job_submit",
"arguments": {
"date": "date_example",
"channel_ids": "",
"timezone_name": "timezone_name_example"
}
}
}'
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-daily-audit-job-submit-example",
"method": "tools/call",
"params": {
"name": "discord.daily_audit_job_submit",
"arguments": {
"date": "date_example",
"channel_ids": "",
"timezone_name": "timezone_name_example"
}
}
}),
});
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-daily-audit-job-submit-example",
"method": "tools/call",
"params": {
"name": "discord.daily_audit_job_submit",
"arguments": {
"date": "date_example",
"channel_ids": "",
"timezone_name": "timezone_name_example"
}
}
}
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.daily_audit_job_submit 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."
}