MCP Webhook Server
The MCP Webhook Server allows you to send messages to webhook endpoints with customizable features.
Send Messages: Send messages to any webhook endpoint
Custom Username: Set a custom display name for the message
Custom Avatar: Include an avatar URL for the message
MCP Integration: Compatible with Dive and other MCP-enabled LLMs for automation
Easy Configuration: Simple setup via Smithery or manual installation
Enables sending messages to Discord channels via webhooks, allowing AI agents to post notifications, alerts, and automated messages.
Enables sending messages to Mattermost channels through webhook endpoints, facilitating automated messaging and system notifications.
Enables sending messages to Slack channels using incoming webhooks for real-time notifications, status updates, and automated team alerts.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Webhook Serversend a notification to the team channel: 'Daily standup in 15 minutes'"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
🪝 mcp-webhook
A powerful MCP server that enables webhook messaging capabilities for your AI agents
Send messages to any webhook endpoint through Claude, Dive, and other MCP-compatible AI systems. Perfect for notifications, alerts, and automated messaging.
Features • Installation • Tools • Usage • Configuration
✨ Features
🌐 Generic Webhook Support
Works with any webhook endpoint
Compatible with Discord, Slack, Mattermost
Custom HTTP POST requests
JSON payload formatting
🎨 Customization
Custom display name (username)
Avatar URL support
Flexible message content
Easy integration with any platform
🔌 MCP Integration
Works with Dive Desktop
Claude Desktop compatible
Cursor, VS Code support
Any MCP-compatible LLM
🛡️ Simple & Secure
Minimal configuration
Environment variable support
No tracking or analytics
MIT licensed
Related MCP server: notify_me_mcp
🚀 Installation
Getting Started
Add the following config to your MCP client:
{
"mcpServers": {
"webhook": {
"command": "npx",
"args": ["-y", "@kevinwatt/mcp-webhook"],
"env": {
"WEBHOOK_URL": "your-webhook-url"
}
}
}
}MCP Client Configuration
Open Dive Desktop
Click "+ Add MCP Server"
Paste the config provided above
Click "Save" and you're ready!
Use the Claude Code CLI to add the webhook MCP server (guide):
claude mcp add webhook -- npx @kevinwatt/mcp-webhookThen set the webhook URL in your environment or config.
Add to your claude_desktop_config.json:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.jsonLinux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"webhook": {
"command": "npx",
"args": ["-y", "@kevinwatt/mcp-webhook"],
"env": {
"WEBHOOK_URL": "your-webhook-url"
}
}
}
}Go to Cursor Settings -> MCP -> New MCP Server. Use the config provided above.
Install via the VS Code CLI:
code --add-mcp '{"name":"webhook","command":"npx","args":["-y","@kevinwatt/mcp-webhook"],"env":{"WEBHOOK_URL":"your-webhook-url"}}'Or follow the MCP install guide with the standard config from above.
Follow the configure MCP guide using the standard config from above.
Follow Cline MCP configuration guide and use the config provided above.
Go to Settings | AI | Manage MCP Servers -> + Add to add an MCP Server. Use the config provided above.
Go to Settings | Tools | AI Assistant | Model Context Protocol (MCP) -> Add. Use the config provided above.
Installing via Smithery
To install MCP Webhook Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @kevinwatt/mcp-webhook --client claudeManual Installation
npm install -g @kevinwatt/mcp-webhook🛠️ Available Tools
Send a message to the configured webhook endpoint
Parameters:
content(string, required): Message content to sendusername(string, optional): Custom display nameavatar_url(string, optional): Custom avatar URL
Returns: Success/failure status
💡 Usage Examples
Basic Messages
"Send a message to webhook: Hello World!"
"Send 'Build completed successfully' to the webhook"
"Notify the team: Deployment finished"Custom Username
"Send a message with username 'Deploy Bot': Production update complete"
"Send content='Server restarted', username='System Monitor'"With Avatar
"Send a message with custom avatar: content='Alert!', avatar_url='https://example.com/alert.png'"Automation Examples
"Send a webhook message when the build completes"
"Notify via webhook: All tests passed!"
"Send deployment status to the webhook channel"🔧 Configuration
Environment Variables
Variable | Description | Required |
| The webhook endpoint URL | Yes |
Example Configurations
Discord Webhook:
{
"env": {
"WEBHOOK_URL": "https://discord.com/api/webhooks/..."
}
}Slack Incoming Webhook:
{
"env": {
"WEBHOOK_URL": "https://hooks.slack.com/services/..."
}
}Mattermost Webhook:
{
"env": {
"WEBHOOK_URL": "https://your-mattermost.com/hooks/..."
}
}🏗️ Architecture
Built With
MCP SDK - Model Context Protocol
Axios - HTTP client
TypeScript - Type safety and developer experience
Key Features
✅ Simple: Minimal setup, just provide a webhook URL
✅ Flexible: Works with any webhook-compatible service
✅ Type-Safe: Full TypeScript support
✅ Lightweight: Minimal dependencies
🤝 Contributing
Contributions are welcome!
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
📚 Related Projects
MCP Servers - Official MCP server implementations
Dive Desktop - AI agent platform
Available Tools
2 toolssend_jsonC
Send arbitrary JSON object to webhook endpoint
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | JSON object to send as the POST body |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior but only says 'send', implying a POST request. It omits important details like authentication, rate limits, side effects, or the nature of the webhook endpoint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with one sentence, no filler words. It is front-loaded with the core action but may be too minimal for completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks essential context such as expected output, error handling, or endpoint configuration. Without output schema, the agent has no information on what the tool returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no meaning beyond the input schema's parameter description, which already states 'JSON object to send as the POST body'. Schema coverage is 100%, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Send' and the resource 'arbitrary JSON object to webhook endpoint', making the tool's basic function obvious. However, it does not differentiate from the sibling 'send_message' explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'send_message'. The description simply states the action without any context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_messageC
Send message to webhook endpoint
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | Message content to send | |
| username | No | Display name (optional) | |
| avatar_url | No | Avatar URL (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as authentication needs, rate limits, or side effects. It only states the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the core purpose without unnecessary words. It is appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with three parameters and no output schema, the description is adequate but lacks details on expected webhook format or error handling. It could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters are already described in the input schema (100% coverage), so the description adds no additional meaning. Baseline score is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('send message') and destination ('webhook endpoint'), providing a specific verb and resource. However, it does not differentiate from the sibling tool 'send_json'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives, nor any prerequisites or conditions. The description lacks usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Both tools send data to a webhook endpoint, but 'send_json' is specific to JSON objects while 'send_message' is for general messages. Some overlap exists as JSON could be sent via 'send_message', but descriptions help differentiate.
Both tools follow a clear verb_noun pattern ('send_json', 'send_message'), making the naming consistent and predictable.
With only 2 tools, the server feels too minimal for typical webhook interactions. Even basic functionality like managing endpoints or checking delivery status is missing, suggesting the scope is too narrow.
The tool surface is severely incomplete for a webhook server. There are no tools for configuration, validation, or testing of webhooks, which are essential for real-world use.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Build, deploy, and operate hosted web apps on VibeKit (vibekit.bot) from any MCP client.
WhatsApp (Web + Business API), SMS, contacts, and call records via 2Chat's MCP server.
Hosted MCP messaging across owners, tools, and machines, with readable transcripts.
Drive WhatsApp from any MCP client: pair devices, send text and media, manage contacts and groups.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server that enables posting messages to Discord webhooks, allowing customization of content, username, and avatar URL.117MIT
- AlicenseBqualityDmaintenanceEnables sending rich notifications to Discord and/or Slack webhooks with automatic service detection, retry logic, and support for embeds, blocks, and attachments. Provides secure webhook management with comprehensive input validation and rate limiting.3TypeScriptMIT
- FlicenseNot gradedqualityNot gradedmaintenanceAn MCP server that enables sending data to webhooks via HTTP POST for both local and remote team environments. It provides a tool for relaying task descriptions, custom metadata, and automated notifications to external services.4
- AlicenseNot gradedqualityDmaintenanceEnables sending messages, managing templates, uploading media, and configuring webhooks for WhatsApp Business via the MCP protocol.125MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/kevinwatt/mcp-webhook'
If you have feedback or need assistance with the MCP directory API, please join our Discord server