# Relin (remote · relin.app)

Inspect webhook health, investigate delivery failures, configure sources, and replay events.

- Trust score: 60/100 (medium)
- Change this week: +2
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `relin.app`: 60/100 (this document), [markdown](https://verifymcp.io/servers/earonesty-relin/relin.md), [page](https://verifymcp.io/servers/earonesty-relin/relin)

## Channel facts

- Endpoint: `https://relin.app/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.1.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 46/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation check failed: no authorisation is required to call this server, and it exposes a tool marked destructive (revoke_api_key).
  - HTTPS check failed: the endpoint is reachable over plaintext HTTP.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 81/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 2485 tokens (~44/item across 56 items; 52 tools + 4 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 68/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 3% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http earonesty-relin https://relin.app/mcp
```

### Codex

```toml
[mcp_servers.earonesty-relin]
url = "https://relin.app/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "earonesty-relin": {
      "type": "remote",
      "url": "https://relin.app/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add earonesty-relin --url https://relin.app/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  earonesty-relin:
    url: "https://relin.app/mcp"
```

### Other

```json
{
  "mcpServers": {
    "earonesty-relin": {
      "type": "http",
      "url": "https://relin.app/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-02 (score 60, +1)

No change was recorded against any check on this day. Stability & Change Management went from 20 to 23. That category is still filling its 30-day observation window: 6 days of observed history at the previous scan, 7 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 59, −1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 60, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 59, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 58, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 57)

First indexed and scored.

## MCP tools (52)

### `describe_relin` (~32 tokens)

Describe Relin

Explain what Relin does and how agents should use it for webhook intake, delivery, replay, and anomaly review.

### `list_supported_webhook_shapes` (~29 tokens)

List Supported Webhook Shapes

List the vendor webhook shapes Relin understands for event identity, ordering, and gap checks.

### `get_setup_guide` (~29 tokens)

Get Setup Guide

Return concise setup guidance for connecting a webhook source and destination.

Input parameters:

- `provider` (string)

### `list_api_keys` (~17 tokens)

List API Keys

Authenticated tool to list API keys.

### `create_api_key` (~31 tokens)

Create API Key

Authenticated tool to create API key.

Input parameters:

- `name` (string, required)
- `scopes` (array)

### `revoke_api_key` (~26 tokens)

Revoke API Key

Authenticated tool to revoke API key.

Input parameters:

- `apiKeyId` (string, required)

### `list_sources` (~15 tokens)

List Sources

Authenticated tool to list sources.

### `create_source` (~37 tokens)

Create Source

Authenticated tool to create source.

Input parameters:

- `name` (string, required)
- `signingSecret` (string)
- `vendor` (string)

### `rotate_source_token` (~32 tokens)

Rotate Source Token

Authenticated tool for rotating an ingest token and returning the replacement URL once.

Input parameters:

- `sourceId` (string, required)

### `archive_source` (~44 tokens)

Delete Source

Authenticated tool for deleting a source, disabling its routing, cancelling queued retries, clearing event-stream coordinator state, and pruning stored source records.

Input parameters:

- `sourceId` (string, required)

### `list_destinations` (~28 tokens)

List Destinations

Authenticated tool for listing outbound destinations and retry policy.

Input parameters:

- `sourceId` (string)

### `create_destination` (~138 tokens)

Create Destination

Authenticated tool for creating an outbound destination and connection with retry policy and optional filters.

Input parameters:

- `endpointUrl` (string, required)
- `filterBodyPath` (string)
- `filterBodyValue` (string)
- `filterEntityKey` (string)
- `filterEventTypes` (string)
- `name` (string, required)
- `rateLimitPerMinute` (integer)
- `retryBackoffSeconds` (string)
- `retryMaxAttempts` (integer)
- `signingSecret` (string)
- `sourceId` (string, required)
- `transformBodyPath` (string)
- `transformExpression` (string)

### `list_apps` (~15 tokens)

List Apps

Authenticated tool to list apps.

### `create_app` (~41 tokens)

Create App

Authenticated tool to create app.

Input parameters:

- `name` (string, required)
- `routingKeyBodyPath` (string)
- `routingKeyHeader` (string)

### `get_app` (~23 tokens)

Get App

Authenticated tool to get app.

Input parameters:

- `appId` (string, required)

### `list_recipients` (~25 tokens)

List Recipients

Authenticated tool to list recipients.

Input parameters:

- `appId` (string, required)

### `upsert_recipient` (~42 tokens)

Upsert Recipient

Authenticated tool for creating or updating a recipient.

Input parameters:

- `appId` (string, required)
- `name` (string)
- `recipient` (string, required)

### `list_endpoints` (~32 tokens)

List Endpoints

Authenticated tool to list recipient endpoints.

Input parameters:

- `appId` (string, required)
- `recipient` (string)

### `create_endpoint` (~60 tokens)

Create Endpoint

Authenticated tool to create endpoint.

Input parameters:

- `appId` (string, required)
- `eventTypes` (array)
- `name` (string)
- `recipient` (string, required)
- `recipientName` (string)
- `url` (string, required)

### `get_endpoint` (~31 tokens)

Get Endpoint

Authenticated tool to get endpoint.

Input parameters:

- `appId` (string, required)
- `endpointId` (string, required)

### `update_endpoint` (~81 tokens)

Update Endpoint

Authenticated tool to update endpoint.

Input parameters:

- `appId` (string, required)
- `enabled` (boolean)
- `endpointId` (string, required)
- `name` (string)
- `rateLimitPerMinute` (integer)
- `retryBackoffSeconds` (string)
- `retryMaxAttempts` (integer)
- `url` (string)

### `delete_endpoint` (~31 tokens)

Delete Endpoint

Authenticated tool to disable endpoint.

Input parameters:

- `appId` (string, required)
- `endpointId` (string, required)

### `rotate_endpoint_secret` (~37 tokens)

Rotate Endpoint Secret

Authenticated tool for rotating the signing secret for one endpoint.

Input parameters:

- `appId` (string, required)
- `endpointId` (string, required)

### `list_messages` (~37 tokens)

List Messages

Authenticated tool to list messages.

Input parameters:

- `appId` (string, required)
- `limit` (integer)
- `q` (string)

### `send_message` (~60 tokens)

Send Message

Authenticated tool to send message.

Input parameters:

- `appId` (string, required)
- `data`
- `idempotencyKey` (string)
- `messageId` (string)
- `recipient` (string, required)
- `type` (string, required)

### `get_message` (~31 tokens)

Get Message

Authenticated tool to get message.

Input parameters:

- `appId` (string, required)
- `messageId` (string, required)

### `list_message_attempts` (~41 tokens)

List Message Attempts

Authenticated tool to list message attempts.

Input parameters:

- `appId` (string, required)
- `limit` (integer)
- `messageId` (string, required)

### `replay_message` (~31 tokens)

Replay Message

Authenticated tool to replay message.

Input parameters:

- `appId` (string, required)
- `messageId` (string, required)

### `list_event_types` (~25 tokens)

List Event Types

Authenticated tool to list event types.

Input parameters:

- `appId` (string, required)

### `upsert_event_type` (~53 tokens)

Upsert Event Type

Authenticated tool to upsert event type.

Input parameters:

- `appId` (string, required)
- `description` (string)
- `eventType` (string, required)
- `examplePayload`
- `schema`

### `delete_event_type` (~33 tokens)

Delete Event Type

Authenticated tool to archive event type.

Input parameters:

- `appId` (string, required)
- `eventType` (string, required)

### `create_portal_session` (~72 tokens)

Create Portal Session

Authenticated tool to create portal session.

Input parameters:

- `appId` (string, required)
- `capabilities` (array)
- `expiresInSeconds` (integer)
- `recipient` (string, required)
- `recipientName` (string)
- `returnUrl` (string)
- `theme` (object)

### `get_portal_settings` (~33 tokens)

Get Portal Settings

Authenticated tool for reading portal branding defaults and host setup for an app.

Input parameters:

- `appId` (string, required)

### `save_portal_settings` (~78 tokens)

Save Portal Settings

Authenticated tool for saving portal branding defaults for an app.

Input parameters:

- `accentColor` (string)
- `appId` (string, required)
- `backgroundColor` (string)
- `brandName` (string)
- `logoUrl` (string)
- `primaryColor` (string)
- `surfaceColor` (string)

### `list_portal_hosts` (~30 tokens)

List Portal Hosts

Authenticated tool for listing stable portal hosts for an app.

Input parameters:

- `appId` (string, required)

### `create_portal_host` (~111 tokens)

Create Portal Host

Authenticated tool for creating a stable portal host with OIDC sign-in.

Input parameters:

- `allowedEmailDomain` (string)
- `appId` (string, required)
- `emailClaim` (string)
- `hostname` (string, required)
- `nameClaim` (string)
- `oidcClientId` (string, required)
- `oidcClientSecret` (string, required)
- `oidcIssuer` (string, required)
- `oidcScopes` (string)
- `recipientClaim` (string)

### `check_portal_host` (~38 tokens)

Check Portal Host

Authenticated tool for refreshing hostname, certificate, and OIDC readiness for a stable portal host.

Input parameters:

- `portalHostId` (string, required)

### `ensure_webhook_setup` (~174 tokens)

Ensure Webhook Setup

Authenticated tool for idempotently setting up a vendor source and destination, returning the ingest URL when a new source is created.

Input parameters:

- `destinationName` (string)
- `destinationSigningSecret` (string)
- `destinationUrl` (string, required)
- `filterBodyPath` (string)
- `filterBodyValue` (string)
- `filterEntityKey` (string)
- `filterEventTypes` (string)
- `rateLimitPerMinute` (integer)
- `retryBackoffSeconds` (string)
- `retryMaxAttempts` (integer)
- `signingSecret` (string)
- `sourceId` (string)
- `sourceName` (string)
- `transformBodyPath` (string)
- `transformExpression` (string)
- `vendor` (string, required)

### `list_recent_events` (~63 tokens)

List Recent Events

Authenticated tool for inspecting recent received events, duplicates, and signature status.

Input parameters:

- `failedDeliveryOnly` (boolean)
- `limit` (integer)
- `q` (string)
- `signatureStatus` (string)
- `sourceId` (string)

### `get_event_detail` (~42 tokens)

Get Event Detail

Authenticated tool for reading one event with attempts, deliveries, and optional raw payload.

Input parameters:

- `eventId` (string, required)
- `includePayload` (boolean)

### `list_open_issues` (~139 tokens)

List Open Issues

Authenticated tool for listing open anomaly and delivery issues. Use q for smart lookup by anom_, dst_, evt_, or src_ IDs, or plain text like a status code or error message.

Input parameters:

- `destinationId` (string): Only include failed delivery issues for this destination ID.
- `limit` (integer): Maximum number of issues to return.
- `q` (string): Smart query. Recognizes anom_, dst_, evt_, and src_ IDs as exact filters; otherwise matches issue text, kind, status, destination name, IDs, and response status.
- `sourceId` (string): Only include issues for this source ID.

### `list_delivery_attempts` (~59 tokens)

List Delivery Attempts

Authenticated tool for listing fanout delivery attempts with filters.

Input parameters:

- `destinationId` (string)
- `eventId` (string)
- `limit` (integer)
- `since` (string)
- `status` (string)

### `list_retry_jobs` (~31 tokens)

List Retry Jobs

Authenticated tool to list retry jobs.

Input parameters:

- `limit` (integer)
- `status` (string)

### `get_metrics_summary` (~34 tokens)

Get Metrics Summary

Authenticated tool for delivery, failure, duplicate, and open-issue rollups.

Input parameters:

- `windowHours` (integer)

### `list_alert_channels` (~17 tokens)

List Alert Channels

Authenticated tool to list alert channels.

### `create_alert_channel` (~54 tokens)

Create Alert Channel

Authenticated tool to create alert channel.

Input parameters:

- `kinds` (array)
- `name` (string, required)
- `targetEmail` (string)
- `targetUrl` (string)
- `type` (string, required)

### `get_slack_connect_url` (~27 tokens)

Get Slack Connect URL

Authenticated tool for returning the dashboard Slack OAuth connect URL and expected redirect URL.

### `replay_event` (~30 tokens)

Replay Event

Authenticated tool for queueing a replay of a single received event.

Input parameters:

- `eventId` (string, required)

### `replay_events` (~79 tokens)

Replay Events

Authenticated tool for queueing replay by source, query, signature status, failed-delivery state, and time window.

Input parameters:

- `failedDeliveryOnly` (boolean)
- `limit` (integer)
- `q` (string)
- `signatureStatus` (string)
- `sourceId` (string)
- `windowHours` (integer)

### `retry_failed_deliveries` (~46 tokens)

Retry Failed Deliveries

Authenticated tool for queueing immediate retries for failed fanout deliveries.

Input parameters:

- `destinationId` (string)
- `limit` (integer)
- `windowHours`

### `cancel_queued_retries` (~33 tokens)

Cancel Queued Retries

Authenticated tool for cancelling queued retry jobs for a workspace or destination.

Input parameters:

- `destinationId` (string)

### `resolve_anomalies` (~33 tokens)

Resolve Anomalies

Authenticated tool for marking one or more open anomalies resolved by anomaly_id.

Input parameters:

- `anomalyIds` (array, required)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/earonesty-relin/relin#diagnostics

## Score history

- 2026-08-03: 60
- 2026-08-02: 60
- 2026-08-01: 59
- 2026-07-31: 59
- 2026-07-30: 60
- 2026-07-29: 59
- 2026-07-28: 58
- 2026-07-27: 58
- 2026-07-26: 57

## Links

- Remote endpoint: https://relin.app/mcp
- Repository: https://github.com/earonesty/relin
- Website: https://relin.app/
- Changelog RSS feed: https://verifymcp.io/servers/earonesty-relin/relin/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/earonesty-relin/relin/changelog.json
- HTML version of this page: https://verifymcp.io/servers/earonesty-relin/relin
