Skip to main content
Glama
kevinwatt

MCP Webhook Server

by kevinwatt

🪝 mcp-webhook

A powerful MCP server that enables webhook messaging capabilities for your AI agents

npm version License: MIT Node.js Version

Send messages to any webhook endpoint through Claude, Dive, and other MCP-compatible AI systems. Perfect for notifications, alerts, and automated messaging.

FeaturesInstallationToolsUsageConfiguration


✨ 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

  1. Open Dive Desktop

  2. Click "+ Add MCP Server"

  3. Paste the config provided above

  4. 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-webhook

Then set the webhook URL in your environment or config.

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

{
  "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 claude

Manual Installation

npm install -g @kevinwatt/mcp-webhook

🛠️ Available Tools

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


💡 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:

{
  "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!

  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 file for details.


🙏 Acknowledgments

  • Anthropic - For the Model Context Protocol

  • Dive - MCP-compatible AI platform



⬆ Back to Top

Available Tools

2 tools
send_jsonC

Send arbitrary JSON object to webhook endpoint

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesJSON object to send as the POST body

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesMessage content to send
usernameNoDisplay name (optional)
avatar_urlNoAvatar URL (optional)

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

C2.9/5.0
Disambiguation3/5

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.

Naming Consistency5/5

Both tools follow a clear verb_noun pattern ('send_json', 'send_message'), making the naming consistent and predictable.

Tool Count2/5

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.

Completeness2/5

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

ActivityInactive
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables 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.
    3
    TypeScript
    MIT
  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    An 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

Latest Blog Posts

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