webhook-mcp
by keshav-k3
README.md
# webhook-mcp
[](https://www.npmjs.com/package/@keshav-k3/webhook-mcp)
A Bun-based MCP server that exposes two tools for sending POST requests to a configured webhook URL.
Zero bloat. Built for automations and agent workflows(WIP)
## Installation
```bash
npm install @keshav-k3/webhook-mcp
```
## Configuration
The server automatically detects the webhook service from the URL, or you can explicitly set `WEBHOOK_SERVICE`:
| Service | Format | Example Payload |
|---------|--------|----------------|
| **Discord** | `content` field | `{ "content": "Hello", "username": "Bot" }` |
| **Teams** | Adaptive Card | `{ "type": "message", "attachments": [{ "contentType": "application/vnd.microsoft.card.adaptive", "content": { "type": "AdaptiveCard", "body": [{ "type": "TextBlock", "text": "Hello" }] } }] }` |
| **Slack** | `text` field | `{ "text": "Hello" }` |
| **Telegram** | `text` field | `{ "text": "Hello" }` |
| **Generic** | `text` field | `{ "text": "Hello", "username": "Bot" }` |
### MCP Configuration
**Discord:**
```json
{
"mcpServers": {
"webhook-discord": {
"command": "bun",
"args": ["-y", "@keshav-k3/webhook-mcp"],
"env": {
"WEBHOOK_URL": "https://discord.com/api/webhooks/YOUR_WEBHOOK_ID/YOUR_WEBHOOK_TOKEN"
}
}
}
}
```
**Teams (Power Automate):**
```json
{
"mcpServers": {
"webhook-teams": {
"command": "bun",
"args": ["-y", "@keshav-k3/webhook-mcp"],
"env": {
"WEBHOOK_URL": "https://...powerplatform.com/.../workflows/.../triggers/manual/paths/invoke?..."
}
}
}
}
```
**Slack / Telegram / Generic:**
```json
{
"mcpServers": {
"webhook-slack": {
"command": "bun",
"args": ["-y", "@keshav-k3/webhook-mcp"],
"env": {
"WEBHOOK_URL": "https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
}
}
}
}
```
## Tools
### `send_message`
Send a text message to the configured webhook endpoint. The message format adapts based on the detected service.
**Parameters:**
- `content` (string, required): Message content to send
- `username` (string, optional): Display name (supported by Discord and generic webhooks)
- `avatar_url` (string, optional): Avatar URL (supported by Discord and generic webhooks)
### `send_json`
Send an arbitrary JSON object to the configured webhook endpoint. Use this for full control over the payload format.
**Parameters:**
- `body` (object, required): JSON object to POST
## License
MIT
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues