Index / MCP servers / EchoRelay

EchoRelay MCP server

Connect EchoRelay and your agent gets 79 tools, among them activate_line, archive_project, cancel_line_publish. It answers at https://mcp.echorelay.dev over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 6 of 6 times since 10 September 2026; the last check, on 19 October 2026, succeeded.

Status
Answering
Tools
79
Official
yes, served from echorelay.dev
Reliability
6 of 6 checks
Response time
234 ms
Transport
streamable HTTP
Last checked
19 October 2026

A managed runtime for custom API integrations. Manage lines, endpoints, keys, logs and DLQ via MCP.

Description as the publisher wrote it.

The 79 tools EchoRelay offers

ToolWhat it does
activate_lineActivate and immediately publish an inactive line so it serves traffic again. Blocked at the active-line cap — deactivate another line first. Requires edit access.
Inputs: lineKey, commitMode, draftRevision
archive_projectArchive a project you own. Reversible: the project + slug persist and credits are kept, but the data plane drops the tenant (callers get 404). Idempotent. Fails with an error if the project has archive protection enabled — that is a support
Inputs: slug
cancel_line_publishCancel one line schedule before its two-minute lock.
Inputs: lineKey, draftRevision
cancel_subscriptionSchedule the project owner's subscription for cancellation at the end of the current billing period. Returns `{kind: 'scheduled', newPlan: 'free', effectiveAt}`. Add-ons keep renewing while the plan is active; after it ends they stop renewi
change_planSwitch the project owner between Pro and Scale, or cancel the subscription (effectively dropping to Free at period end). Returns `{kind, newPlan, effectiveAt, applied}` — `applied=true` means Paddle was charged immediately, otherwise the ch
Inputs: plan
config_diffPreview what Save & Publish (or the pending scheduled publish, if one exists) would change: added/removed/changed lines, and within each changed line the added/removed/changed endpoints and targets, plus any project-level setting change. Ou
create_api_keyMint an inbound relay (data-plane) API key for callers to send traffic to this project. Its `er_live_` or `er_test_` secret authenticates relay requests; it cannot call management MCP or REST. Returns the plaintext exactly once — store it n
Inputs: name, mode, ttlDays
create_credentialSave a new reusable credential, sealed with the project's encryption key at write time. Neither this call nor any later read ever returns the secret back — reference it from a target by id (see create_endpoint/update_endpoint's target.crede
Inputs: name, destinationHost, auth
create_endpointCreate an endpoint under a line. Defaults to immediate publish; draft mode requires draftRevision. scheduledAt stages the line draft then schedules it. Requires edit access.
create_lineCreate a new versioned line. A new line has no endpoints, so creating one publishes nothing and serves no traffic yet — add an endpoint, which publishes the line with it. Draft mode requires draftRevision 0. Requires edit access.
Inputs: name, lineKey, commitMode, draftRevision
create_projectCreate a new project on your account so an agent can bootstrap from a fresh account. The slug is derived from the name and validated server-side (format, reserved words, uniqueness). Each plan includes a fixed number of active projects (fre
Inputs: name
create_project_tokenMint a PROJECT-scoped management token (`er_mcp_`) for MCP and REST; it cannot authenticate relay traffic. Use it after create_project to configure a fresh project, or for any project you already own. Attenuated by design: the scopes must b
Inputs: slug, label, scopes, expiresInDays
deactivate_lineTake a line off the data plane immediately (callers get 404) without deleting it — endpoints/targets/config are preserved and it can be reactivated later. A deliberate action; live traffic is never auto-disabled. Requires edit access.
Inputs: lineKey, commitMode, draftRevision
default_endpoint_templateReturn a canonical minimal-valid endpoint JSON for a fresh line. POST it verbatim to create_endpoint to land an immediately-working endpoint, then customise. It comes back with `mock: true`: it answers callers with its own canned body and n
Inputs: lineKey
delete_credentialDelete a saved credential. Blocked (not a permission or not-found error — a validation error) while any target still references it; repoint or remove those targets first.
Inputs: credentialId
delete_endpointDelete an endpoint and its targets, publishing the removal immediately. Requires edit access.
Inputs: lineKey, endpointId, commitMode, draftRevision
delete_lineDelete a line and every endpoint under it, publishing the removal immediately. Requires edit access.
Inputs: lineKey, commitMode, draftRevision
discard_dlq_entryPermanently delete a DLQ entry without retrying. Requires edit access.
Inputs: id
discard_draft_endpointDiscard one endpoint change from a line draft.
Inputs: lineKey, endpointId, draftRevision
discard_line_draftDiscard every unpublished change and schedule for one line.
Inputs: lineKey, draftRevision
downgrade_addonSchedule a tier downgrade for a non-stackable add-on (RPM tier). The current tier stays active until `nextRenewalAt`; at that point the lower tier is charged and activated. No mid-cycle charge. Use list_addons to find available keys. Return
Inputs: addonKey, targetAddonKey
dry_run_endpointValidate an endpoint document without writing it. Returns either {ok: true, resolved: <Framework config slice>} or {ok: false, errors: {...}}. Pass endpointId to dry-run a PATCH against an existing endpoint; omit it to dry-run a create. Sup
duplicate_lineCopy a line and all its endpoints/targets/rules into a new line key — build v2 from v1. The copy is saved inactive and remains off the data plane; edit it, then activate_line when ready. Requires edit access.
Inputs: lineKey, newLineKey, name, commitMode, draftRevision
generate_line_draftGenerate a draft endpoint under a line from a sample inbound request and a description of the target: infers the inbound body schema from the sample, reads the target's method/URL/fields from an OpenAPI document (targetDocument) or a bare s
Inputs: lineKey, sample, targetDocument, targetFilename, targetSample, targetUrl
get_billingGet the project's credit balances (paid + testing) and which ledger it settles on. `billingModel` is `prepaid` (metered against the credit balance) or `invoiceable` (an Enterprise account, settled on the contract — its credit fields read em
get_configGet the project's published relay configuration — the exact JSON the EchoRelay Framework consumes. Includes pendingPublish with its frozen, redacted config when one is scheduled.
get_dlq_entryGet DLQ entries by entry id (`{ms}-{seq}`, as returned by list_dlq's `id`) or by `requestId`. `requestId` is the durable handle — stable across a retry, unlike `id`, which changes every time an entry is replayed and later dead-letters again
Inputs: id, requestId
get_endpointGet the full JSON of one endpoint, including its targets, auth keys and attributes.
Inputs: lineKey, endpointId
get_key_policyReturns the project's key policy: defaultKeyTtlDays, maxKeyTtlDays, editorsMayCreateNonExpiringKeys.
get_line_draftRead one line draft, its optimistic revision, preview, and schedule.
Inputs: lineKey
get_metricsAggregate request metrics for this project over a time window — volume, error rate and p50/p95/p99 latency, bucketed for charting. By default the series cover inbound requests; pass `targetId` to slice over one outbound target's per-attempt
Inputs: window, targetId, endpointId
get_projectGet the EchoRelay project this token is scoped to: id, slug, name, caller-facing API base URL, whether the token has edit access, and the request-log hot-tier retention window.
get_receiptsGet every target this request fanned out to, each with its delivery receipt or the reason it has none. A still-moving delivery (queued/retrying) answers from the live tracking copy, a terminal one (delivered/failed) from durable storage — t
Inputs: requestId
get_requestGet one inbound request envelope + every per-target delivery attempt made on the way out (success / permanent_failure / retry_scheduled / dlq). The request and each attempt carry configVersion, the published config that authorised them; 0 m
Inputs: requestId
get_subscriptionGet the project owner's current subscription: plan, active flag, period start/end, cancel-at-period-end flag, external Paddle subscription id, and whether a payment method is on file at the provider. Owner-only; requires a token minted with
invite_memberInvite a person by email to collaborate on this project. Returns the new invitation record; the invitee receives an email with an accept link. Enforces the seat cap for the plan tier. Owner only.
Inputs: email, role
list_active_addonsList the project owner`s currently-active add-ons. Returns `[{addonKey, project, monthlyEurCents, activatedAt, nextRenewalAt, consecutiveFailures}, ...]`. RPM upgrades are per-project; `project` is the slug they apply to (null for account-w
list_addonsList the optional add-on subscriptions (RPM upgrades, extra team seats, extended log retention, extra file-delivery storage in +5 GB blocks, …). Each entry is monthly, renews every 30 days until cancelled, and carries `scope` (per_account o
list_api_keysList the project's inbound API keys (metadata only — the secret plaintext is never returned).
list_audit_eventsList project audit-log entries, newest first. Captures who changed what — lines, endpoints, targets, API keys. Outbound-target `auth.token` / `auth.password` are redacted in the diff per the same policy used for endpoint reads. Retention is
Inputs: action, entityType, entityId, since, until, limit
39 more tools

list_config_revisions, list_credentials, list_credit_packs, list_dlq, list_endpoints, list_lines, list_members, list_project_tokens, list_projects, list_requests, list_subscription_plans, preview_line_draft, preview_plan_change, protect_project, publish_line_draft, remove_member, rename_project, resend_invite, resume_addon, retry_dlq_entry, reveal_rotation_successor, revoke_api_key, revoke_project_token, rollback_config, rotate_api_key, schedule_line_publish, set_burst_opt_in, set_docs_shared, set_key_policy, set_member_role, set_outbound_allowlist, set_rpm_ceiling, start_subscription, start_topup, subscribe_addon, unarchive_project, unsubscribe_addon, update_credential, update_endpoint

Add EchoRelay to your AI client

Every block below points at https://mcp.echorelay.dev. Pick your client and copy.

Claude Code: one command in your terminal
claude mcp add --transport http echorelay https://mcp.echorelay.dev
Claude Desktop: claude_desktop_config.json
{
  "mcpServers": {
    "echorelay": {
      "command": "npx",
      "args": ["-y", "mcp-remote", "https://mcp.echorelay.dev"]
    }
  }
}
Cursor: ~/.cursor/mcp.json, or .cursor/mcp.json in a project
{
  "mcpServers": {
    "echorelay": {
      "url": "https://mcp.echorelay.dev"
    }
  }
}
VS Code and GitHub Copilot: .vscode/mcp.json
{
  "servers": {
    "echorelay": {
      "type": "http",
      "url": "https://mcp.echorelay.dev"
    }
  }
}
Zed: Zed settings.json
{
  "context_servers": {
    "echorelay": {
      "url": "https://mcp.echorelay.dev"
    }
  }
}
Windsurf: ~/.codeium/mcp_config.json
{
  "mcpServers": {
    "echorelay": {
      "serverUrl": "https://mcp.echorelay.dev"
    }
  }
}
JetBrains AI Assistant: Settings, Tools, AI Assistant, MCP, New MCP Server, as JSON
{
  "mcpServers": {
    "echorelay": {
      "url": "https://mcp.echorelay.dev"
    }
  }
}
Continue: .continue/mcpServers/neuronto.yaml
name: EchoRelay
version: 0.0.1
schema: v1
mcpServers:
  - name: EchoRelay
    type: streamable-http
    url: https://mcp.echorelay.dev
Gemini CLI: ~/.gemini/settings.json
{
  "mcpServers": {
    "echorelay": {
      "httpUrl": "https://mcp.echorelay.dev"
    }
  }
}
Codex CLI: MCP server config
{
  "mcpServers": {
    "echorelay": {
      "type": "http",
      "url": "https://mcp.echorelay.dev"
    }
  }
}
Warp: MCP servers, + Add, paste JSON
{
  "mcpServers": {
    "echorelay": {
      "url": "https://mcp.echorelay.dev"
    }
  }
}
Goose: a one-click extension link
goose://extension?url=https%3A%2F%2Fmcp.echorelay.dev&type=streamable_http&id=echorelay&name=EchoRelay

Is EchoRelay up right now?

It answered our last check on 19 October 2026 in 234 ms. Over 6 checks since 10 September 2026 it answered 6. Status here comes from Neuronto's own probes, not from the publisher.

MCP servers similar to EchoRelay

Questions about EchoRelay

Is there an official EchoRelay MCP server?

Yes. It is published by echorelay.dev and served from mcp.echorelay.dev, the vendor's own domain: https://mcp.echorelay.dev.

How many tools does EchoRelay have?

79, as returned by the server's own tools/list on 11 September 2026: activate_line, archive_project, cancel_line_publish, cancel_subscription, change_plan, config_diff, create_api_key, create_credential, and 71 more.

Is EchoRelay down?

It answered our last check on 19 October 2026 in 234 ms. Over 6 checks since 10 September 2026 it answered 6.

How do I add EchoRelay to Cursor?

Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://mcp.echorelay.dev. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.

Does EchoRelay need an API key?

It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.

Where this comes from

Publisher: dev.echorelay. Endpoint host: mcp.echorelay.dev. ARD identifier: urn:air:dev.echorelay:mcp:management. First indexed 10 September 2026. The tools are exactly what the server returned; nothing on this page is inferred from its name. Ranking in Neuronto search is never for sale.

Is this your server? Get a message the day it stops answering or its tools change: monitoring, 14 days free. Or claim the domain to manage how it is listed.