Discord Webhook

A TypeScript MCP server that sends messages and rich embeds to Discord via webhooks, with validation and per-message customization.
  • typescript

0

GitHub Stars

typescript

Language

6 months ago

First Indexed

3 months ago

Catalog Refreshed

Documentation & install

Readme and setup notes from the catalogue, plus a client-ready config you can copy for your MCP host.

Installation

Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "llmtooling-discord-webhook-mcp-server": {
      "command": "node",
      "args": [
        "/path/to/discord-webhook-mcp/dist/index.js"
      ],
      "env": {
        "DISCORD_WEBHOOK_URL": "https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN"
      }
    }
  }
}

You can use this MCP server to send plain messages and rich embeds to Discord via webhooks. It provides a simple, type-safe interface for guiding LLMs to post notifications, alerts, and structured data straight into your Discord channels.

How to use

You interact with the Discord Webhook MCP by running the MCP server locally and connecting it to a Discord webhook. From your MCP client, you call the available tools to send messages or embeds. The server handles formatting, validation, and dispatching content to Discord, including custom fields, images, timestamps, and per-message overrides for username and avatar.

How to install

Prerequisites: Node.js 18.0.0 or higher and a Discord webhook URL.

Step 1: Obtain a Discord webhook URL by opening your Discord server, going to Server Settings → Integrations → Webhooks, creating or selecting a webhook, and copying the URL. The URL format looks like: https://discord.com/api/webhooks/{id}/{token}.

Step 2: Install dependencies for the MCP server.

Step 3: Configure the environment with your webhook URL.

Step 4: Build the project so it is ready to run.

Configuration

You can configure the MCP server for Claude Desktop or other MCP clients. The example below shows how to wire the server into Claude Desktop using a local stdio setup.

{
  "mcpServers": {
    "discord-webhook": {
      "command": "node",
      "args": ["/path/to/discord-webhook-mcp/dist/index.js"],
      "env": {
        "DISCORD_WEBHOOK_URL": "https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN"
      }
    }
  }
}

Embed and message tools

The server exposes three tools to interact with Discord webhooks.

  • send_message: Send a simple text message to Discord. Parameters: content, username (optional), avatar_url (optional).

  • send_embed: Send a rich embed with title, description, color, images, and more. Parameters: content (optional), title, description, url, color, timestamp, footer_* fields, image_url, thumbnail_url, author_* fields, username, avatar_url.

  • send_embed_with_fields: Send an embed with custom fields for structured data. Parameters: fields (array of name/value/inline), plus all send_embed parameters.

Security and best practices

Keep your Discord webhook URL secret. Rotate webhooks if exposure occurs. Use per-message username/avatar overrides to distinguish automated messages from different sources.

Troubleshooting

If messages fail to arrive, verify the webhook URL is correct, the server is running, and the MCP client can reach the local stdio transport. Check characters within content to comply with Discord limits and ensure embeds stay within allowed totals.

Notes

The server is built with TypeScript and uses the official MCP SDK for a smooth, type-safe integration with Discord webhooks.

Available tools

send_message

Send a simple text message to Discord with optional username and avatar override.

send_embed

Send a rich embed with title, description, color, images, and more, with optional content above the embed.

send_embed_with_fields

Send an embed containing a structured set of fields for tabular data or metrics, while supporting all standard embed options.

Built by
VeilStrat
AI signals for GTM teams
© 2026 VeilStrat. All rights reserved.All systems operational