authority-webhook-mcp

authority-webhook-mcp

Publishes normalized release notices to a configured webhook via MCP, with built-in validation, deterministic dry-run mode, and a clear boundary for authority gates.

Category
Visit Server

README

Authority Webhook MCP

A small, public-ready Node.js MCP server with one consequential boundary: publishing a normalized release notice to a configured webhook.

The server deliberately separates four concerns:

  1. MCP input validation.
  2. Exact action and target normalization.
  3. The host-owned ReleaseProvider boundary.
  4. Provider result evidence.

With no configuration it uses a deterministic dry-run provider. Set RELEASE_WEBHOOK_URL to use the HTTP provider; HTTPS is required except for localhost test endpoints. No production credential is needed to run or test the project.

Why this repository exists

Agent tools often place review or approval logic too early, before the final target and payload are known. Here the exact seam is explicit in ReleasePublisher.publish():

MCP request
  -> validate
  -> normalize action class + webhook target + exact input
  -> ReleaseProvider.send(action)   <-- consequential provider call
  -> correlate provider result

That seam makes the project suitable for evaluating a single-use authority gate without using a live external service.

Requirements

  • Node.js 20 or newer
  • npm

Run the checks

npm install
npm run ci

Run as an MCP server

Dry-run mode:

npm run build
npm start

Local webhook sandbox:

RELEASE_WEBHOOK_URL=http://127.0.0.1:8787/releases npm start

The exposed tool is publish_release_notice:

{
  "repository": "example/agent-tools",
  "tag": "v1.2.0",
  "summary": "Add a sandboxed release-notification tool."
}

Run a deterministic evidence demo

The demo exercises the real normalization and provider boundary with the in-memory dry-run provider. It performs no network request and prints the exact action, its SHA-256 fingerprint, and the correlated provider result:

npm run demo

The dry-run provider request ID is derived from the action fingerprint, making the output reproducible and easy to compare without exposing credentials.

Current safety properties

  • Repository identifiers are normalized to owner/name.
  • Release tags and summaries have bounded formats.
  • Webhook URLs reject embedded credentials and non-HTTPS remote targets.
  • The action fingerprint covers the action class, exact target, and exact normalized input.
  • Invalid input fails before the provider runs.
  • Tests use an injected recording provider and make no external calls.

This baseline does not yet implement human approval, single-use consumption, tamper rejection, or replay protection. Those controls belong immediately before ReleaseProvider.send() and should be added only as a deliberate authority-gate integration, with tests that prove the provider remains untouched on every rejected path.

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured