MCP Webhook Server
# 🪝 mcp-webhook
<div align="center">
**A powerful MCP server that enables webhook messaging capabilities for your AI agents**
[](https://www.npmjs.com/package/@kevinwatt/mcp-webhook)
[](https://smithery.ai/server/@kevinwatt/mcp-webhook)
[](https://opensource.org/licenses/MIT)
[](https://nodejs.org/)
[](https://mseep.ai/app/kevinwatt-mcp-webhook)
Send messages to any webhook endpoint through Claude, Dive, and other MCP-compatible AI systems. Perfect for notifications, alerts, and automated messaging.
[Features](#-features) • [Installation](#-installation) • [Tools](#-available-tools) • [Usage](#-usage-examples) • [Configuration](#-configuration)
</div>
---
## ✨ Features
<table>
<tr>
<td width="50%">
### 🌐 **Generic Webhook Support**
- Works with any webhook endpoint
- Compatible with Discord, Slack, Mattermost
- Custom HTTP POST requests
- JSON payload formatting
</td>
<td width="50%">
### 🎨 **Customization**
- Custom display name (username)
- Avatar URL support
- Flexible message content
- Easy integration with any platform
</td>
</tr>
<tr>
<td width="50%">
### 🔌 **MCP Integration**
- Works with Dive Desktop
- Claude Desktop compatible
- Cursor, VS Code support
- Any MCP-compatible LLM
</td>
<td width="50%">
### 🛡️ **Simple & Secure**
- Minimal configuration
- Environment variable support
- No tracking or analytics
- MIT licensed
</td>
</tr>
</table>
<a href="https://glama.ai/mcp/servers/ijmd1ia5zg"><img width="380" height="200" src="https://glama.ai/mcp/servers/ijmd1ia5zg/badge" alt="Webhook Server MCP server" /></a>
---
## 🚀 Installation
### Getting Started
Add the following config to your MCP client:
```json
{
"mcpServers": {
"webhook": {
"command": "npx",
"args": ["-y", "@kevinwatt/mcp-webhook"],
"env": {
"WEBHOOK_URL": "your-webhook-url"
}
}
}
}
```
### MCP Client Configuration
<details open>
<summary><strong>Dive</strong></summary>
1. Open [Dive Desktop](https://github.com/OpenAgentPlatform/Dive)
2. Click **"+ Add MCP Server"**
3. Paste the config provided above
4. Click **"Save"** and you're ready!
</details>
<details>
<summary><strong>Claude Code</strong></summary>
Use the Claude Code CLI to add the webhook MCP server ([guide](https://docs.anthropic.com/en/docs/claude-code/mcp)):
```bash
claude mcp add webhook -- npx @kevinwatt/mcp-webhook
```
Then set the webhook URL in your environment or config.
</details>
<details>
<summary><strong>Claude Desktop</strong></summary>
Add to your `claude_desktop_config.json`:
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
- Linux: `~/.config/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"webhook": {
"command": "npx",
"args": ["-y", "@kevinwatt/mcp-webhook"],
"env": {
"WEBHOOK_URL": "your-webhook-url"
}
}
}
}
```
</details>
<details>
<summary><strong>Cursor</strong></summary>
Go to `Cursor Settings` -> `MCP` -> `New MCP Server`. Use the config provided above.
</details>
<details>
<summary><strong>VS Code / Copilot</strong></summary>
Install via the VS Code CLI:
```bash
code --add-mcp '{"name":"webhook","command":"npx","args":["-y","@kevinwatt/mcp-webhook"],"env":{"WEBHOOK_URL":"your-webhook-url"}}'
```
Or follow the [MCP install guide](https://code.visualstudio.com/docs/copilot/chat/mcp-servers#_add-an-mcp-server) with the standard config from above.
</details>
<details>
<summary><strong>Windsurf</strong></summary>
Follow the [configure MCP guide](https://docs.windsurf.com/windsurf/cascade/mcp#mcp-config-json) using the standard config from above.
</details>
<details>
<summary><strong>Cline</strong></summary>
Follow [Cline MCP configuration guide](https://docs.cline.bot/mcp/configuring-mcp-servers) and use the config provided above.
</details>
<details>
<summary><strong>Warp</strong></summary>
Go to `Settings | AI | Manage MCP Servers` -> `+ Add` to [add an MCP Server](https://docs.warp.dev/knowledge-and-collaboration/mcp#adding-an-mcp-server). Use the config provided above.
</details>
<details>
<summary><strong>JetBrains AI Assistant</strong></summary>
Go to `Settings | Tools | AI Assistant | Model Context Protocol (MCP)` -> `Add`. Use the config provided above.
</details>
### Installing via Smithery
To install MCP Webhook Server for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@kevinwatt/mcp-webhook):
```bash
npx -y @smithery/cli install @kevinwatt/mcp-webhook --client claude
```
### Manual Installation
```bash
npm install -g @kevinwatt/mcp-webhook
```
---
## 🛠️ Available Tools
<table>
<tr>
<th width="30%">Tool</th>
<th width="70%">Description</th>
</tr>
<tr>
<td><code>send_message</code></td>
<td>
Send a message to the configured webhook endpoint
- **Parameters**:
- `content` (string, required): Message content to send
- `username` (string, optional): Custom display name
- `avatar_url` (string, optional): Custom avatar URL
- **Returns**: Success/failure status
</td>
</tr>
</table>
---
## 💡 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 |
|----------|-------------|----------|
| `WEBHOOK_URL` | The webhook endpoint URL | Yes |
### Example Configurations
**Discord Webhook:**
```json
{
"env": {
"WEBHOOK_URL": "https://discord.com/api/webhooks/..."
}
}
```
**Slack Incoming Webhook:**
```json
{
"env": {
"WEBHOOK_URL": "https://hooks.slack.com/services/..."
}
}
```
**Mattermost Webhook:**
```json
{
"env": {
"WEBHOOK_URL": "https://your-mattermost.com/hooks/..."
}
}
```
---
## 🏗️ Architecture
### Built With
- **[MCP SDK](https://github.com/modelcontextprotocol/typescript-sdk)** - Model Context Protocol
- **[Axios](https://github.com/axios/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!
1. Fork the repository
2. Create a feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request
---
## 📝 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
---
## 🙏 Acknowledgments
- [Anthropic](https://www.anthropic.com/) - For the Model Context Protocol
- [Dive](https://github.com/OpenAgentPlatform/Dive) - MCP-compatible AI platform
---
## 📚 Related Projects
- [MCP Servers](https://github.com/modelcontextprotocol/servers) - Official MCP server implementations
- [Dive Desktop](https://github.com/OpenAgentPlatform/Dive) - AI agent platform
---
<div align="center">
[⬆ Back to Top](#-mcp-webhook)
</div>
TDQS
Scored across 2 tools
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.