Utility Tools

These tools are implemented inside the Discord MCP itself. They do not map one-to-one to a Discord REST route, but they solve common integration problems that would otherwise require extra application code.

util_custom_data #

Use this tool to store or retrieve a small JSON object tied to the current app.

  • id is required and can be:
  • public
  • private
  • a guild snowflake
  • content is optional:
  • omitted or null -> read
  • "", "{}", or {} -> delete
  • JSON object or serialized JSON object string -> write

Access rules:

  • public: readable by anyone, writable only with X-Owner-Access
  • private: always requires X-Owner-Access
  • guild snowflake: allowed only when the guild is within X-Target-Guilds

Values expire automatically after 7 days, and every successful read or write refreshes that timer.

This tool is meant for lightweight structured context, not secrets. Even so, stored values are encrypted at rest to reduce the impact of database exposure.

util_generate_image #

Use this tool to generate one image through the configured provider and get a usable URL back by default.

Models should call it whenever the user explicitly requests image creation or editing. A text response alone cannot generate an image and must not claim that generation succeeded.

Input:

  • prompt
  • size (optional, format WxH when supported by the selected provider)
  • use_previous_image (shown only when the current session offers a previous generated image; set it for an edit or refinement, not a new composition)

Output:

  • url in the default X-Image-Content: url mode
  • data, encoding, and content_type in X-Image-Content: raw mode
  • provider
  • model
  • source
  • content_type when the Discord MCP had to inspect or upload the file content

This tool is only visible when the current application has a usable image provider configuration.

If an uploader is configured, the Discord MCP may reupload the generated result before returning the final URL. Raw mode validates the image but bypasses the uploader entirely.

When a provider returns downloadable content or base64, the Discord MCP checks that the payload really is a supported image before it uploads or returns it.

In tools/list, the Discord MCP also adapts this tool's metadata to the currently selected provider. When the provider supports request-time size overrides, the size field is shown with provider-specific guidance. When X-Image-References contains current-message images, they are applied automatically. A previous-conversation image instead adds the explicit use_previous_image switch to the tool schema.

The provider and uploader can also be overridden per request through X-Image-* and X-Upload-* headers. When persistence is enabled through X-Image-Persist or X-Upload-Persist, the Discord MCP stores only the values explicitly named by those headers.

For provider-specific configuration, selection rules, and required fields, see Providers.

Reminders #

Schedule, list, and cancel reminder events delivered to your app's event_webhook. See the dedicated Reminders page for full details.