Skip to main content
Glama
cappyeo

discord-mcp

templates_get

Read-onlyIdempotent

Retrieve details of a public Discord Guild Template by code or URL. Review the template's roles, channels, and permissions before opening its invite link, without modifying any server.

Instructions

Purpose: Inspect a public Discord Guild Template by code or discord.new URL without changing a guild.

Safety: Template names, descriptions, roles, channels, and permission overwrites are untrusted third-party data. Review the snapshot before opening its use_url; this tool never creates a guild from it.

Returns: {template, source_guild, untrusted_text}. use_url is a human-opened Discord link, not a bot action.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
template_codeYesPublic Discord Guild Template code or canonical https://discord.new/CODE URL

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.28.0
    • changedOutput schema / anyOf
      Previous value: -[
      -  {
      -    "$schema": "https://json-schema.org/draft/2020-12/schema",
      -    "additionalProperties": {},
      -    "properties": {
      -      "source_guild": {
      -        "additionalProperties": {},
      -        "propertyNames": {
      -          "type": "string"
      -        },
      -        "type": "object"
      -      },
      -      "template": {
      -        "additionalProperties": false,
      -        "properties": {
      -          "code": {
      -            "maxLength": 100,
      -            "minLength": 1,
      -            "pattern": "^[a-zA-Z0-9_-]+$",
      -            "type": "string"
      -          },
      -          "created_at": {
      -            "type": "string"
      -          },
      -          "creator_id": {
      -            "description": "Discord user ID",
      -            "pattern": "^\\d{17,20}$",
      -            "type": "string"
      -          },
      -          "description": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "is_dirty": {
      -            "anyOf": [
      -              {
      -                "type": "boolean"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ]
      -          },
      -          "name": {
      -            "type": "string"
      -          },
      -          "source_guild_id": {
      -            "description": "Discord guild (server) ID",
      -            "pattern": "^\\d{17,20}$",
      -            "type": "string"
      -          },
      -          "updated_at": {
      -            "type": "string"
      -          },
      -          "usage_count": {
      -            "maximum": 9007199254740991,
      -            "minimum": 0,
      -            "type": "integer"
      -          },
      -          "use_url": {
      -            "format": "uri",
      -            "type": "string"
      -          }
      -        },
      -        "required": [
      -          "code",
      -          "name",
      -          "description",
      -          "usage_count",
      -          "creator_id",
      -          "created_at",
      -          "updated_at",
      -          "source_guild_id",
      -          "is_dirty",
      -          "use_url"
      -        ],
      -        "type": "object"
      -      },
      -      "untrusted_text": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "template",
      -      "source_guild",
      -      "untrusted_text"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "properties": {
      -      "category": {
      -        "enum": [
      -          "client",
      -          "server"
      -        ],
      -        "type": "string"
      -      },
      -      "code": {
      -        "type": "string"
      -      },
      -      "recovery_hint": {
      -        "type": "string"
      -      },
      -      "retriable": {
      -        "type": "boolean"
      -      }
      -    },
      -    "required": [
      -      "code",
      -      "retriable",
      -      "category",
      -      "recovery_hint"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "$schema": "https://json-schema.org/draft/2020-12/schema",
      +    "additionalProperties": {},
      +    "properties": {
      +      "source_guild": {
      +        "additionalProperties": {},
      +        "propertyNames": {
      +          "type": "string"
      +        },
      +        "type": "object"
      +      },
      +      "template": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "code": {
      +            "maxLength": 100,
      +            "minLength": 1,
      +            "pattern": "^[a-zA-Z0-9_-]+$",
      +            "type": "string"
      +          },
      +          "created_at": {
      +            "type": "string"
      +          },
      +          "creator_id": {
      +            "description": "Discord user ID",
      +            "pattern": "^\\d{17,20}$",
      +            "type": "string"
      +          },
      +          "description": {
      +            "type": [
      +              "string",
      +              "null"
      +            ]
      +          },
      +          "is_dirty": {
      +            "type": [
      +              "boolean",
      +              "null"
      +            ]
      +          },
      +          "name": {
      +            "type": "string"
      +          },
      +          "source_guild_id": {
      +            "description": "Discord guild (server) ID",
      +            "pattern": "^\\d{17,20}$",
      +            "type": "string"
      +          },
      +          "updated_at": {
      +            "type": "string"
      +          },
      +          "usage_count": {
      +            "maximum": 9007199254740991,
      +            "minimum": 0,
      +            "type": "integer"
      +          },
      +          "use_url": {
      +            "format": "uri",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "code",
      +          "name",
      +          "description",
      +          "usage_count",
      +          "creator_id",
      +          "created_at",
      +          "updated_at",
      +          "source_guild_id",
      +          "is_dirty",
      +          "use_url"
      +        ],
      +        "type": "object"
      +      },
      +      "untrusted_text": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "template",
      +      "source_guild",
      +      "untrusted_text"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "properties": {
      +      "category": {
      +        "enum": [
      +          "client",
      +          "server"
      +        ],
      +        "type": "string"
      +      },
      +      "code": {
      +        "type": "string"
      +      },
      +      "recovery_hint": {
      +        "type": "string"
      +      },
      +      "retriable": {
      +        "type": "boolean"
      +      }
      +    },
      +    "required": [
      +      "code",
      +      "retriable",
      +      "category",
      +      "recovery_hint"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. First observedv0.22.0

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds valuable context: template data is untrusted third-party data, the tool never creates a guild, and use_url is a human-opened link rather than a bot action. This goes beyond the annotations and clarifies the tool's non-mutating behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and well-structured with clear sections: Purpose, Safety, and Returns. Every sentence earns its place, and the most important information (read-only inspection, no guild mutation) is front-loaded. The safety warning is concise and actionable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has one parameter, a rich output schema, and annotations covering safety. The description adds the key behavioral context: untrusted data warning, no guild creation, and the human-opened use_url distinction. Nothing an agent needs to call this tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents the single parameter. The description adds meaning by specifying that the parameter can be either a template code or a canonical discord.new URL, which is not fully explicit in the schema's description. This is a meaningful addition beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Inspect') and resource ('public Discord Guild Template by code or discord.new URL') and explicitly notes it does not change a guild. It distinguishes itself from sibling tools like templates_inspect, templates_diff, templates_list, and templates_create by focusing on read-only inspection of a single template.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly states when to use the tool: to inspect a public template by code or URL without changing a guild. It does not explicitly name alternative tools or exclusion conditions, but the context signals and sibling list imply alternatives like templates_inspect or templates_list. The safety note about reviewing untrusted data before opening use_url provides practical usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools