agent-webhook
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., "@agent-webhookSend a test webhook to the 'slack' endpoint with payload '{"text":"Hello"}'"
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.
Agent Webhook
Webhook management, delivery, and relay service for autonomous agents — MCP server + CLI
Built for the agentic economy — by Nyx Builds.
Features
Endpoint Management — Register, configure, and organize webhook endpoints with custom headers, secrets, and tags
Reliable Delivery — Send webhooks with automatic retries, exponential backoff, and HMAC signature verification
Delivery Tracking — Full execution history with status codes, response bodies, and timing
Relay Server — Forward incoming webhooks to registered endpoints using path-based routing rules
MCP Server — 17 tools for full webhook management from any MCP-compatible agent
Rich CLI — Beautiful terminal interface with tables, colors, and filtering
JSON Persistence — Simple file-based storage, easy to back up and migrate
Related MCP server: Tern MCP
Quick Start
pip install agent-webhook
# Register a webhook endpoint
agent-webhook endpoint add "Slack Notifications" https://hooks.slack.com/services/XXX --tag "notifications"
# Send a webhook
agent-webhook send <endpoint-id> '{"text": "Hello from agent-webhook!"}'
# List endpoints
agent-webhook endpoint list
# Check delivery stats
agent-webhook statsCLI Reference
Endpoint Management
# Add an endpoint
agent-webhook endpoint add <name> <url> [options]
--method, -m HTTP method (POST, PUT, PATCH, GET, DELETE) [default: POST]
--header, -H Custom header in 'Name: Value' format (repeatable)
--tag, -t Tag for filtering (repeatable)
--secret HMAC signing secret
--timeout Request timeout in seconds [default: 30]
--description, -d Description
--max-retries Max retry attempts [default: 3]
# List endpoints
agent-webhook endpoint list [--status active|paused|disabled] [--tag TAG]
# Show endpoint details
agent-webhook endpoint show <endpoint-id>
# Pause/Resume/Delete
agent-webhook endpoint pause <endpoint-id>
agent-webhook endpoint resume <endpoint-id>
agent-webhook endpoint delete <endpoint-id>Sending Webhooks
# Send a payload
agent-webhook send <endpoint-id> '<json-payload>'
agent-webhook send <endpoint-id> - < input.json # from stdin
--event-type, -e Event type tag
--header, -H Extra headers in 'Name: Value' formatDelivery Tracking
# List deliveries
agent-webhook delivery list [--endpoint ID] [--status STATUS] [--event-type TYPE] [--limit N]
# Show delivery details with attempts
agent-webhook delivery show <delivery-id>Relay Rules
# Add a relay rule (forward incoming webhooks to endpoints)
agent-webhook relay add <name> <path-pattern> --target <endpoint-id> [--tag TAG]
# List rules
agent-webhook relay list
# Delete a rule
agent-webhook relay delete <rule-id>Incoming Webhooks
# List received webhooks
agent-webhook incoming list [--path PATH] [--limit N]Statistics
# Stats for all endpoints
agent-webhook stats
# Stats for a specific endpoint
agent-webhook stats <endpoint-id>Process Pending
# Process all pending/ready deliveries
agent-webhook process-pendingMCP Server
Run the MCP server for agent integration:
agent-webhook-mcpOr configure in your MCP client:
{
"mcpServers": {
"agent-webhook": {
"command": "agent-webhook-mcp",
"args": []
}
}
}MCP Tools (17)
Tool | Description |
| Register a new webhook endpoint |
| List all webhook endpoints |
| Get endpoint details |
| Update an endpoint |
| Delete an endpoint |
| Send a webhook delivery |
| List deliveries |
| Get delivery details with attempts |
| Retry a failed delivery |
| Process all pending deliveries |
| Get delivery statistics |
| Add a relay rule |
| List relay rules |
| Delete a relay rule |
| List incoming webhooks |
| Receive & relay an incoming webhook |
Architecture
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ CLI / MCP │────▶│ Engine │────▶│ Endpoints │
│ Interface │ │ (delivery) │ │ (external) │
└──────────────┘ └──────────────┘ └──────────────┘
│ │
│ ┌────────┴────────┐
│ │ │
▼ ▼ ▼
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Store │ │ Relay │ │ Incoming │
│ (persist) │ │ Rules │ │ Webhooks │
└──────────────┘ └──────────────┘ └──────────────┘Key Concepts
Endpoint — A registered webhook target with URL, method, headers, secret, and retry policy
Delivery — An attempt to send a payload to an endpoint, with full attempt history
DeliveryAttempt — A single HTTP request, tracking status code, response, and timing
RelayRule — Routes incoming webhooks by path pattern to one or more endpoints
IncomingWebhook — A webhook received by the relay, with forwarding tracking
Retry Logic
Failed deliveries are automatically retried with exponential backoff:
Configurable max retries (default: 3)
Initial delay: 1s, doubles each attempt (2s, 4s, 8s...)
Max delay cap: 300s
Retry on status codes: 408, 429, 500, 502, 503, 504
Connection errors trigger retry
Non-retryable errors (4xx) are abandoned
HMAC Signatures
When a secret is configured on an endpoint, all deliveries include an X-Webhook-Signature header:
X-Webhook-Signature: sha256=<hex-digest>Receivers can verify the signature to authenticate the webhook source.
Python API
from agent_webhook.store import WebhookStore
from agent_webhook.engine import DeliveryEngine
from agent_webhook.models import WebhookEndpoint
# Setup
store = WebhookStore("webhooks.json")
engine = DeliveryEngine(store)
# Register endpoint
endpoint = WebhookEndpoint(
name="My Service",
url="https://api.example.com/webhook",
secret="shared-secret",
tags=["production"],
)
store.add_endpoint(endpoint)
# Send a webhook
import asyncio
result = asyncio.run(engine.send(
endpoint_id=endpoint.id,
payload={"event": "order.created", "order_id": "12345"},
event_type="order.created",
))
print(f"Status: {result.status}")Development
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest tests/ -v
# Run specific test
pytest tests/test_models.py -vLicense
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/nyx-builds/agent-webhook'
If you have feedback or need assistance with the MCP directory API, please join our Discord server