# EchoRelay MCP server

Agent View of the PolicyLayer registry record for EchoRelay: identity, probed posture, risk grade, and all 78 tools classified. HTML page: https://policylayer.com/tools/dev-echorelay-management

## Facts

- Server id: `https://mcp.echorelay.dev`
- Homepage: https://github.com/https://mcp.echorelay.dev
- Registry record: grade F, identity unverified
- Lifecycle: active
- Auth posture: open
- Rate-limited: no
- Tools: 78 (62 with introspected schema)
- Tool categories present: Destructive, Execute, Read, Write
- Context-window cost: 20913 tokens per request — https://policylayer.com/token-cost/dev-echorelay-management
- Tags: dev echorelay management, admin, automation
- Record last modified: 2026-08-18T00:05:33.748Z

## Tools (78)

| Tool | Category | Risk | Record |
| --- | --- | --- | --- |
| `cancel_line_publish` | Destructive | Critical | https://policylayer.com/tools/dev-echorelay-management/cancel-line-publish.md |
| `delete_credential` | Destructive | Critical | https://policylayer.com/tools/dev-echorelay-management/delete-credential.md |
| `delete_endpoint` | Destructive | Critical | https://policylayer.com/tools/dev-echorelay-management/delete-endpoint.md |
| `delete_line` | Destructive | Critical | https://policylayer.com/tools/dev-echorelay-management/delete-line.md |
| `discard_dlq_entry` | Destructive | Critical | https://policylayer.com/tools/dev-echorelay-management/discard-dlq-entry.md |
| `discard_draft_endpoint` | Destructive | Critical | https://policylayer.com/tools/dev-echorelay-management/discard-draft-endpoint.md |
| `discard_line_draft` | Destructive | Critical | https://policylayer.com/tools/dev-echorelay-management/discard-line-draft.md |
| `remove_member` | Destructive | Critical | https://policylayer.com/tools/dev-echorelay-management/remove-member.md |
| `revoke_api_key` | Destructive | Critical | https://policylayer.com/tools/dev-echorelay-management/revoke-api-key.md |
| `revoke_project_token` | Destructive | Critical | https://policylayer.com/tools/dev-echorelay-management/revoke-project-token.md |
| `rollback_config` | Destructive | Critical | https://policylayer.com/tools/dev-echorelay-management/rollback-config.md |
| `dry_run_endpoint` | Execute | High | https://policylayer.com/tools/dev-echorelay-management/dry-run-endpoint.md |
| `duplicate_line` | Execute | High | https://policylayer.com/tools/dev-echorelay-management/duplicate-line.md |
| `cancel_subscription` | Financial | Critical | https://policylayer.com/tools/dev-echorelay-management/cancel-subscription.md |
| `change_plan` | Financial | Critical | https://policylayer.com/tools/dev-echorelay-management/change-plan.md |
| `downgrade_addon` | Financial | Critical | https://policylayer.com/tools/dev-echorelay-management/downgrade-addon.md |
| `retry_dlq_entry` | Financial | Critical | https://policylayer.com/tools/dev-echorelay-management/retry-dlq-entry.md |
| `start_subscription` | Financial | Critical | https://policylayer.com/tools/dev-echorelay-management/start-subscription.md |
| `start_topup` | Financial | Critical | https://policylayer.com/tools/dev-echorelay-management/start-topup.md |
| `subscribe_addon` | Financial | Critical | https://policylayer.com/tools/dev-echorelay-management/subscribe-addon.md |
| `unsubscribe_addon` | Financial | Critical | https://policylayer.com/tools/dev-echorelay-management/unsubscribe-addon.md |
| `default_endpoint_template` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/default-endpoint-template.md |
| `get_billing` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/get-billing.md |
| `get_config` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/get-config.md |
| `get_dlq_entry` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/get-dlq-entry.md |
| `get_endpoint` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/get-endpoint.md |
| `get_key_policy` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/get-key-policy.md |
| `get_line_draft` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/get-line-draft.md |
| `get_metrics` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/get-metrics.md |
| `get_project` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/get-project.md |
| `get_receipts` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/get-receipts.md |
| `get_request` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/get-request.md |
| `get_subscription` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/get-subscription.md |
| `list_active_addons` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/list-active-addons.md |
| `list_addons` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/list-addons.md |
| `list_api_keys` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/list-api-keys.md |
| `list_audit_events` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/list-audit-events.md |
| `list_config_revisions` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/list-config-revisions.md |
| `list_credentials` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/list-credentials.md |
| `list_credit_packs` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/list-credit-packs.md |
| `list_dlq` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/list-dlq.md |
| `list_endpoints` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/list-endpoints.md |
| `list_lines` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/list-lines.md |
| `list_members` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/list-members.md |
| `list_project_tokens` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/list-project-tokens.md |
| `list_projects` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/list-projects.md |
| `list_requests` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/list-requests.md |
| `list_subscription_plans` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/list-subscription-plans.md |
| `preview_plan_change` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/preview-plan-change.md |
| `reveal_rotation_successor` | Read | Low | https://policylayer.com/tools/dev-echorelay-management/reveal-rotation-successor.md |
| `activate_line` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/activate-line.md |
| `archive_project` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/archive-project.md |
| `config_diff` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/config-diff.md |
| `create_api_key` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/create-api-key.md |
| `create_credential` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/create-credential.md |
| `create_endpoint` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/create-endpoint.md |
| `create_line` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/create-line.md |
| `create_project` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/create-project.md |
| `create_project_token` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/create-project-token.md |
| `deactivate_line` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/deactivate-line.md |
| `invite_member` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/invite-member.md |
| `preview_line_draft` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/preview-line-draft.md |
| `protect_project` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/protect-project.md |
| `publish_line_draft` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/publish-line-draft.md |
| `rename_project` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/rename-project.md |
| `resend_invite` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/resend-invite.md |
| `resume_addon` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/resume-addon.md |
| `rotate_api_key` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/rotate-api-key.md |
| `schedule_line_publish` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/schedule-line-publish.md |
| `set_burst_opt_in` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/set-burst-opt-in.md |
| `set_docs_shared` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/set-docs-shared.md |
| `set_key_policy` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/set-key-policy.md |
| `set_member_role` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/set-member-role.md |
| `set_outbound_allowlist` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/set-outbound-allowlist.md |
| `set_rpm_ceiling` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/set-rpm-ceiling.md |
| `unarchive_project` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/unarchive-project.md |
| `update_credential` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/update-credential.md |
| `update_endpoint` | Write | Medium | https://policylayer.com/tools/dev-echorelay-management/update-endpoint.md |

## Tool descriptions

- `cancel_line_publish` — Cancel one line schedule before its two-minute lock.
- `delete_credential` — Delete 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.
- `delete_endpoint` — Delete an endpoint and its targets, publishing the removal immediately. Requires edit access.
- `delete_line` — Delete a line and every endpoint under it, publishing the removal immediately. Requires edit access.
- `discard_dlq_entry` — Permanently delete a DLQ entry without retrying. Requires edit access.
- `discard_draft_endpoint` — Discard one endpoint change from a line draft.
- `discard_line_draft` — Discard every unpublished change and schedule for one line.
- `remove_member` — Remove a member (accepted or pending) from this project by their member ID or email. Owner only.
- `revoke_api_key` — Manual hard revoke. The key stops authenticating on the next request. Owner anywhere, editor on own keys.
- `revoke_project_token` — Revoke a PROJECT-scoped API token on a project you own — any holder's, not just your own (the account-owner kill switch for a leaked or retired integration token). Soft-revoke: the row stays for traceability and the token is rejected imm…
- `rollback_config` — Publish a retained line revision immediately and clear any pending schedule.
- `dry_run_endpoint` — Validate 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. …
- `duplicate_line` — Copy 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.
- `cancel_subscription` — Schedule 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 renew…
- `change_plan` — Switch 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 cha…
- `downgrade_addon` — Schedule 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. Retur…
- `retry_dlq_entry` — Re-enqueue a DLQ entry to the main relay stream and delete it from the DLQ. A replay is billed like any relay — it charges the entry's original credit cost to the project before re-sending; if the balance is too low the entry stays in th…
- `start_subscription` — Begin a new Pro or Scale subscription for the project owner. Returns {checkoutUrl, plan} — surface the URL to the human for approval. Errors if the owner is already on an active paid plan (use change_plan instead). Owner-only; requires a…
- `start_topup` — Begin a credit-pack top-up for the project owner. Pass the packs eurCents (from list_credit_packs). Returns {checkoutUrl, credits, eurCents, directCharge} or {transactionId, credits, eurCents, directCharge:true} on subsequent MCP purchas…
- `subscribe_addon` — Subscribe the project owner to a monthly add-on (RPM upgrade, team seat, extended log retention, extra file storage in +5 GB blocks, …). Charges the saved payment method immediately, then auto-renews every 30 days until unsubscribe_addon…
- `unsubscribe_addon` — Cancel an active add-on subscription. Stops future charges; the current cycle stays active until expiry. RPM upgrades are cancelled for THIS project. Returns {addonKey, project, cancelledAt}. Owner-only; requires a token minted with the …
- `default_endpoint_template` — Return a canonical minimal-valid endpoint JSON for a fresh line. POST it verbatim to create_endpoint to land an immediately-working mock endpoint, then customise. Read-only.
- `get_billing` — Get 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 empty…
- `get_config` — Get 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_entry` — Get DLQ entries by Redis stream 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…
- `get_endpoint` — Get the full JSON of one endpoint, including its targets, auth keys and attributes.
- `get_key_policy` — Returns the project's key policy: defaultKeyTtlDays, maxKeyTtlDays, editorsMayCreateNonExpiringKeys.
- `get_line_draft` — Read one line draft, its optimistic revision, preview, and schedule.
- `get_metrics` — Aggregate 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-attemp…
- `get_project` — Get 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_receipts` — Get 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 …
- `get_request` — Get one inbound request envelope + every per-target attempt the Consumer made on the way out (success / permanent_failure / retry_scheduled / dlq). The request and each attempt carry configVersion, the published config that authorised th…
- `get_subscription` — Get 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 w…
- `list_active_addons` — List the project owners 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-wid…
- `list_addons` — List 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 …
- `list_api_keys` — List the project's inbound API keys (metadata only — the secret plaintext is never returned).
- `list_audit_events` — List 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 …
- `list_config_revisions` — List retained revisions for one line so a prior revision can be selected for rollback.
- `list_credentials` — List the project's saved credentials — reusable target-auth secrets that can be referenced from any number of targets instead of entering auth inline per target. auth is redacted (secret fields never returned, even encrypted — see create…
- `list_credit_packs` — List the prepaid credit packs the project owner can purchase. Read-only. Identify a pack to start_topup by its eurCents.
- `list_dlq` — List entries currently in this project's dead-letter queue, newest first. One inbound request fans out per-target, so a single failed request may produce several DLQ entries with different targetIds. Returns {total, limit, offset, rows[]…
- `list_endpoints` — List the endpoints under one line of the project.
- `list_lines` — List the project's versioned API lines (e.g. v1, v2), each with its endpoint count.
- `list_members` — List accepted and pending members of this project. Shows name/email, role, and whether the invite has been accepted. Owner only.
- `list_project_tokens` — List the API tokens scoped to a project you own (any holder): id, label, scopes, createdAt, lastUsedAt, expiresAt, revokedAt — never the secret (only its hash is stored). Requires an ACCOUNT-scoped token and the read scope.
- `list_projects` — List the projects on your account (archived included), each with id, slug, name, apiBaseUrl and archived. Requires an ACCOUNT-scoped token (one minted with no project) and the read scope. A project-scoped token cannot call this — use it …
- `list_requests` — List inbound API requests the relay has processed for this project, newest first. Hot-tier window is the project's requestLogRetentionDays (see get_project). Optional filters narrow the result. Returns {total, limit, offset, rows[]} wher…
- `list_subscription_plans` — List the available subscription plans (Free, Pro, Scale) with monthly EUR price, credit allowance, per-project RPM cap, and how many active projects the plan includes. Read-only.
- `preview_plan_change` — Preview what would happen if change_plan were called with this plan: the immediate-charge amount (cents), the next-invoice amount, the effective date, and the kind (applied for in-cycle upgrade, scheduled for at-period-end downgrade / ca…
- `reveal_rotation_successor` — One-shot retrieval of the plaintext for a successor minted by the auto-rotation scheduler (not by rotate_api_key — that returns its own plaintext directly). Decrypts the at-rest ciphertext, returns it once, then destroys it; a second cal…
- `activate_line` — Activate and immediately publish an inactive line so it serves traffic again. Blocked at the active-line cap — deactivate another line first. Requires edit access.
- `archive_project` — Archive 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 supp…
- `config_diff` — Preview 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.…
- `create_api_key` — Mint 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 no…
- `create_credential` — Save 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.cr…
- `create_endpoint` — Create 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_line` — Create a new versioned line. Defaults to immediate publish; draft mode requires draftRevision 0. Requires edit access.
- `create_project` — Create 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 (…
- `create_project_token` — Mint 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 …
- `deactivate_line` — Take 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.
- `invite_member` — Invite 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.
- `preview_line_draft` — Preview one line draft without publishing it.
- `protect_project` — Turn on archive protection for a project you own: archive_project (on every surface — panel, REST, and this tool) then refuses until it is lifted. Idempotent. Permanent from here — there is no tool or API call to turn it back off; only c…
- `publish_line_draft` — Publish one line draft now and clear only its schedule.
- `rename_project` — Rename a project you own (the display name only — the slug, which is the identity in URLs / Redis, never changes). Requires an ACCOUNT-scoped token and the config scope. 404-equivalent error when you do not own the slug.
- `resend_invite` — Re-send the invitation email for a still-pending invite, by member ID or email (from list_members). The original accept link is reused. Already-accepted members are rejected. Owner only.
- `resume_addon` — Resume (un-cancel) a pending-cancel add-on whose paid-through cycle has not yet ended. Clears the cancellation so the add-on renews normally at the next cycle boundary. No new charge — the cycle was already paid. Stackable add-ons cannot…
- `rotate_api_key` — Mint a linked successor for an existing key. Returns the successor plaintext exactly once — store it now. The predecessor stays valid through its overlap window so callers can swap without downtime. Owner anywhere, editor on own keys.
- `schedule_line_publish` — Schedule one non-empty line draft. Active subscribers required.
- `set_burst_opt_in` — Enable or disable the auto-decaying burst window for live traffic and publish the change immediately. When enabled, brief spikes a little above your steady RPM cap are absorbed at the normal credit rate (no surcharge, no burst SKU) inste…
- `set_docs_shared` — Turn the line's public OpenAPI docs on or off. When enabled, the line's spec is published at docs.{baseDomain}/{slug}/{lineKey} (and …/openapi.json); when disabled those URLs return 404. The docsShared field on each line read (list_lines…
- `set_key_policy` — Owner-only. Edit the project's key policy. Only fields present in the patch are touched. Editors calling this get an error — use get_key_policy to read.
- `set_member_role` — Change a member's role between editor, viewer, and billing. Identify the member by their member ID or email (from list_members); the project owner's own role cannot be changed. Returns the updated member record. Owner only.
- `set_outbound_allowlist` — Narrow the project's outbound host allowlist — the hosts a target may point at. The current list is on get_project as outboundHostAllowlist (empty means any public host). This tool may only narrow it: patterns must be a strict subset of,…
- `set_rpm_ceiling` — Set or clear a self-set ceiling on this project's own effective live-traffic RPM (Traffic shaping) — for when your origin can't take the throughput your plan grants. Never plan-gated: the ceiling can only LOWER your effective RPM below y…
- `unarchive_project` — Restore an archived project you own to the data plane. Restoring consumes one of your plan's active-project slots, so at the limit this returns an error telling you to archive another project or upgrade. Idempotent for an already-active …
- `update_credential` — Rename a credential and/or rotate its secret, publishing the change immediately so every target that uses this credential picks it up right away. Omit a secret field (or the whole auth object) to keep the existing value — the vault can n…
- `update_endpoint` — Update an endpoint immediately or in its line draft. The patch is merged field-by-field. Requires edit access.

## Related servers

- UnClick (1662 tools) — https://policylayer.com/tools/io-github-malamutemayhem-unclick-mcp-server.md
- Delx Mcp A2a (1076 tools) — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-a2a.md
- Delx Protocol — Agent Recovery & Continuity (1076 tools) — https://policylayer.com/tools/io-github-davidmosiah-delx-protocol.md
- Nodebench (824 tools) — https://policylayer.com/tools/io-github-homenshum-nodebench.md
- MCP Framework Personal (790 tools) — https://policylayer.com/tools/inggerman-mcps.md
- Delx MCP Server (740 tools) — https://policylayer.com/tools/io-github-davidmosiah-delx-mcp-server.md
- Binance MCP Server (734 tools) — https://policylayer.com/tools/nirholas-binance-mcp.md
- Eda Agent (726 tools) — https://policylayer.com/tools/eda-agent.md

## For agents

This record is a snapshot. Live verdicts and the full registry:

- Check every server in your MCP config at once: `npx -y policylayer stack`
- Vet a server before you add it: install the mcp-precheck skill — `npx skills add https://policylayer.com` (skill text: https://policylayer.com/skill.md)
- Query the registry over MCP: endpoint `https://api.policylayer.com/mcp` — tools `check_mcp_server`, `check_mcp_stack`, `check_tool`, `search_registry`, `get_change_events`

---

Source: the PolicyLayer MCP registry — one continuously verified record per MCP server. Full record: https://policylayer.com/registry?q=dev-echorelay-management · API: https://policylayer.com/registry/api · Recommended policies for every tool: https://policylayer.com/policies/dev-echorelay-management
