Skip to content

guild_get_widget_image_url

Guild Read only

Synthesize a public widget PNG URL. No REST call is performed - the agent decides whether to fetch.

  • Embed a guild widget image on a webpage or in markdown.
  • Want JSON data → use guild_get_widget. Want admin settings → use guild_get_widget_settings.
{
"name": "guild_get_widget_image_url",
"arguments": {
"guild_id": "123456789012345678"
}
}
Field Type Required Constraints Description
guild_id string yes pattern: ^\d{17,20}$ Guild to render
style “shield” | “banner1” | “banner2” | “banner3” | “banner4” no one of shield, banner1, banner2, banner3, banner4 Widget style: ‘shield’ (default, compact) or ‘banner1’..‘banner4’ (large banner variants)
Complete input JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"guild_id": {
"type": "string",
"pattern": "^\\d{17,20}$",
"description": "Guild to render"
},
"style": {
"description": "Widget style: 'shield' (default, compact) or 'banner1'..'banner4' (large banner variants)",
"type": "string",
"enum": [
"shield",
"banner1",
"banner2",
"banner3",
"banner4"
]
}
},
"required": [
"guild_id"
]
}

{url, style}. The URL is https://discord.com/api/guilds/{id}/widget.png?style={style}.

{
"url": "https://example.com/resource",
"style": "shield"
}
Field Type Required Constraints Description
url string yes format: uri
style “shield” | “banner1” | “banner2” | “banner3” | “banner4” yes one of shield, banner1, banner2, banner3, banner4
Complete output JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"style": {
"type": "string",
"enum": [
"shield",
"banner1",
"banner2",
"banner3",
"banner4"
]
}
},
"required": [
"url",
"style"
],
"additionalProperties": false
}
Property Value
Read-only yes
Destructive no
Idempotent yes
Open-world no
Confirmation required no
  • The guild category must be enabled by MCP_CATEGORIES when an allowlist is set.
  • Access contract: scope=guild; this tool uses the public widget anonymously and is scoped to the target guild.
  • No named Discord permission bit is asserted by this contract.
  • Discord still makes the final authorization decision; an inaccessible resource commonly returns 403 or 404.

packages/mcp-core/src/tools/guild/get_widget_image_url.ts