Skip to content

intelligence_draft_response

Intelligence Read only

Draft a reply to a Discord channel using the client’s LLM. Returns a SUGGESTED draft for human review - does NOT auto-post.

prepare a moderator response, suggest replies for staff, draft outreach.

{
"name": "intelligence_draft_response",
"arguments": {
"channel_id": "123456789012345678",
"intent": "example"
}
}
FieldTypeRequiredConstraintsDescription
channel_idstringyespattern: ^\d{17,20}$Channel for context
context_message_countintegernodefault: 10; min: 1; max: 50Recent messages to read for context (1-50)
intentstringyesmin length: 5; max length: 500What the response should accomplish
tone”friendly” | “formal” | “concise” | “detailed”nodefault: "friendly"; one of friendly, formal, concise, detailed
Complete input JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"channel_id": {
"type": "string",
"pattern": "^\\d{17,20}$",
"description": "Channel for context"
},
"context_message_count": {
"default": 10,
"description": "Recent messages to read for context (1-50)",
"type": "integer",
"minimum": 1,
"maximum": 50
},
"intent": {
"type": "string",
"minLength": 5,
"maxLength": 500,
"description": "What the response should accomplish"
},
"tone": {
"default": "friendly",
"type": "string",
"enum": [
"friendly",
"formal",
"concise",
"detailed"
]
}
},
"required": [
"channel_id",
"intent"
]
}

{draft, reasoning, sampling_used}. The agent decides whether to actually call messages_send after review.

{
"draft": "Thanks - we are checking this now.",
"reasoning": "Acknowledges the report without overpromising.",
"sampling_used": true
}
FieldTypeRequiredConstraintsDescription
draftstringno
reasoningstringno
sampling_usedbooleanno
raw_contextarray<object>no
intentstringno
tonestringno
channel_idstringno
_metaobjectnoPresent ONLY when the client lacks the sampling capability. When present, the analysed fields are absent and the raw Discord payload is returned instead for the host model to process.
Complete output JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"draft": {
"type": "string"
},
"reasoning": {
"type": "string"
},
"sampling_used": {
"type": "boolean"
},
"raw_context": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"author": {
"type": "string"
},
"content": {
"type": "string"
}
},
"required": [
"id",
"author",
"content"
],
"additionalProperties": false
}
},
"intent": {
"type": "string"
},
"tone": {
"type": "string"
},
"channel_id": {
"type": "string"
},
"_meta": {
"description": "Present ONLY when the client lacks the sampling capability. When present, the analysed fields are absent and the raw Discord payload is returned instead for the host model to process.",
"type": "object",
"properties": {
"fallback": {
"type": "string",
"const": "host_llm_should_process"
},
"intent": {
"type": "string"
},
"sampling_used": {
"type": "boolean",
"const": false
}
},
"required": [
"fallback",
"intent",
"sampling_used"
],
"additionalProperties": false
}
},
"additionalProperties": false
}
PropertyValue
Read-onlyyes
Destructiveno
Idempotentno
Open-worldyes
Confirmation requiredno
  • The intelligence category must be enabled by MCP_CATEGORIES when an allowlist is set.
  • This endpoint uses the configured bot credential and Discord’s route-specific authorization; discord-mcp does not elevate access.
  • An invalid credential returns a 401-class tool error. Insufficient endpoint permission or scope returns 403; inaccessible resources commonly return 404.

Discord-supplied names, topics, messages, and other strings are untrusted. Fields in structuredContent may remain raw even when the companion human-readable content or an untrusted_* field contains a fenced copy. Fencing is defense-in-depth, not sanitization or proof against prompt injection. Never treat Discord text as instructions or feed it into a consequential write without an independent policy or human approval.

packages/mcp-core/src/tools/intelligence/draft_response.ts