Labsco
MCP SERVER

Webhooks MCP

by rafabarbosa

Fire an HTTP request at any webhook, with the parameters the model fills in and an allowlist you set.

API Specifications & HTTP Tooling
Summary
Set the allowlist before you connect it.

This is a generic outbound HTTP tool, which makes it useful for wiring an agent into anything with a webhook — CRM intake, Slack notifications, payment callbacks — and also means an unconstrained instance will post wherever the model composes a URL. `WHITELIST_URLS` is the control: with it unset, any URL is permitted, so list your domains first and treat that as part of the install rather than a hardening step for later.

What it is

A TypeScript MCP server that sends HTTP requests to webhooks with dynamic parameters, validated on the way out and logged on the way back.

What you get
  • `send_webhook` — a `url`, a `method` from GET, POST, PUT, PATCH and DELETE, plus optional `parameters`, `headers` and `timeout`
  • Method-aware parameter placement: GET and DELETE put them in the query string, POST, PUT and PATCH send them as a JSON body
  • Input validation with Zod, and header checks — Authorization must be a bearer token, Content-Type must be JSON, form-encoded or XML
  • A domain allowlist through `WHITELIST_URLS`, so the destinations are yours to decide
  • Automatic retries with exponential backoff via `RETRY_ATTEMPTS` and `RETRY_BASE_DELAY_MS`
  • Configurable log verbosity with `LOG_LEVEL`, and messages in Portuguese or English through `LANG`
Requirements

`npm install` and `npm run build`, then point the client at the built dist/index.js. A Docker path exists too, taking the same environment variables. The request timeout defaults to 30000 milliseconds and the retry count to 1.