A managed runtime for custom API integrations. Manage lines, endpoints, keys, logs and DLQ via MCP.
Dedotto dai trasporti dichiarati da questo annuncio (streamable-http). Un client che non compare qui non è escluso — semplicemente Forge non è in grado di confermarlo.
La verifica conferma l’identità del publisher (la proprietà del repo), non la sicurezza del codice. L’analisi di sicurezza copre i CVE noti e gli script di installazione sospetti.
Letto da un vero handshake MCP initialize → tools/list verso l’endpoint dichiarato. Nessuno strumento è stato invocato — tools/list è la chiamata di introspezione in sola lettura che il protocollo prevede a questo scopo. Riflette ciò che il server annunciava in quel momento; un endpoint ospitato non è vincolato ad alcuna versione e può cambiare senza preavviso.
https://mcp.echorelay.dev79 strumenti · 973 msget_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 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.
Per questo strumento non è stato pubblicato alcuno schema di input.
list_linesList the project's versioned API lines (e.g. v1, v2), each with its endpoint count.List the project's versioned API lines (e.g. v1, v2), each with its endpoint count.
Per questo strumento non è stato pubblicato alcuno schema di input.
list_endpointsList the endpoints under one line of the project.List the endpoints under one line of the project.
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | The line key, e.g. "v1". |
get_endpointGet the full JSON of one endpoint, including its targets, auth keys and attributes.Get the full JSON of one endpoint, including its targets, auth keys and attributes.
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | The line key, e.g. "v1". |
| endpointId* | string | The endpoint UUID. |
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 the project's published relay configuration — the exact JSON the EchoRelay Framework consumes. Includes pendingPublish with its frozen, redacted config when one is scheduled.
Per questo strumento non è stato pubblicato alcuno schema di input.
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. Outbound auth secrets are redacted the same as get_config.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. Outbound auth secrets are redacted the same as get_config.
Per questo strumento non è stato pubblicato alcuno schema di input.
list_config_revisionsList retained revisions for one line so a prior revision can be selected for rollback.List retained revisions for one line so a prior revision can be selected for rollback.
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | The line key, e.g. "v1". |
get_line_draftRead one line draft, its optimistic revision, preview, and schedule.Read one line draft, its optimistic revision, preview, and schedule.
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | The line key, e.g. "v1". |
preview_line_draftPreview one line draft without publishing it.Preview one line draft without publishing it.
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | The line key, e.g. "v1". |
publish_line_draftPublish one line draft now and clear only its schedule.Publish one line draft now and clear only its schedule.
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | — |
| draftRevision* | integer | — |
discard_line_draftDiscard every unpublished change and schedule for one line.Discard every unpublished change and schedule for one line.
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | — |
| draftRevision* | integer | — |
discard_draft_endpointDiscard one endpoint change from a line draft.Discard one endpoint change from a line draft.
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | — |
| endpointId* | string | — |
| draftRevision* | integer | — |
schedule_line_publishSchedule one non-empty line draft. Active subscribers required.Schedule one non-empty line draft. Active subscribers required.
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | — |
| draftRevision* | integer | — |
| scheduledAt* | string | — |
cancel_line_publishCancel one line schedule before its two-minute lock.Cancel one line schedule before its two-minute lock.
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | — |
| draftRevision* | integer | — |
rollback_configPublish a retained line revision immediately and clear any pending schedule.Publish a retained line revision immediately and clear any pending schedule.
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | — |
| revision* | integer | — |
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 empty/zero by design, not because it is out of credits). A ze…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/zero by design, not because it is out of credits). A ze…
Per questo strumento non è stato pubblicato alcuno schema di input.
set_burst_opt_inEnable 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) instead of being rejected. Sustained overage decays back to your st…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) instead of being rejected. Sustained overage decays back to your st…
| Parametro | Tipo | Descrizione |
|---|---|---|
| enabled* | boolean | true to enable the burst window; false to disable. |
set_rpm_ceilingSet 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 your plan/add-on rate, never raise it, and never touches billin…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 your plan/add-on rate, never raise it, and never touches billin…
| Parametro | Tipo | Descrizione |
|---|---|---|
| rpmCeiling* | integer | null | A positive integer to set the ceiling, or null to clear it. |
set_outbound_allowlistNarrow 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, or equal to, the current list, compared as exact strings…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, or equal to, the current list, compared as exact strings…
| Parametro | Tipo | Descrizione |
|---|---|---|
| patterns* | array | The full replacement list of allowed hosts, e.g. ["api.stripe.com", "*.internal.example.com"]. Must be a subset of the current outboundHostAllowlist. |
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.Create 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.
| Parametro | Tipo | Descrizione |
|---|---|---|
| name* | string | Human-readable line name. |
| lineKey* | string | URL key, lowercase letters/digits/hyphens, e.g. "v1". |
| commitMode | string | Defaults to publish. Draft writes require draftRevision. |
| draftRevision | integer | Current line draft revision, required for draft writes. |
delete_lineprivilegiatoDelete a line and every endpoint under it, publishing the removal immediately. Requires edit access.Delete a line and every endpoint under it, publishing the removal immediately. Requires edit access.
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | The line key, e.g. "v1". |
| commitMode | string | Defaults to publish. Draft writes require draftRevision. |
| draftRevision | integer | Current line draft revision, required for draft writes. |
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.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.
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | The line key, e.g. "v1". |
| commitMode | string | Defaults to publish. Draft writes require draftRevision. |
| draftRevision | integer | Current line draft revision, required for draft writes. |
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.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.
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | The line key, e.g. "v1". |
| commitMode | string | Defaults to publish. Draft writes require draftRevision. |
| draftRevision | integer | Current line draft revision, required for draft writes. |
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.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.
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | The source line key to copy. |
| newLineKey* | string | New line key for the copy, e.g. "v2". |
| name | string | Optional name for the copy (defaults to "<source name> (copy)"). |
| commitMode | string | Defaults to publish. Draft writes require draftRevision. |
| draftRevision | integer | Current line draft revision, required for draft writes. |
set_docs_sharedTurn 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) reflects the current state. Requires edit access.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) reflects the current state. Requires edit access.
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | The line key, e.g. "v1". |
| enabled* | boolean | true to publish the line's public docs; false to take them down. |
| commitMode | string | Defaults to publish. Draft writes require draftRevision. |
| draftRevision | integer | Current line draft revision, required for draft writes. |
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 an endpoint under a line. Defaults to immediate publish; draft mode requires draftRevision. scheduledAt stages the line draft then schedules it. Requires edit access.
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | The line key to create the endpoint under. |
| endpoint* | object | An EchoRelay endpoint. Round-trips with the JSON returned by get_endpoint. |
| scheduledAt | string | Compatibility alias: stage this endpoint in its line draft then schedule that line. |
| commitMode | string | Defaults to publish. Draft writes require draftRevision. |
| draftRevision | integer | Current line draft revision, required for draft writes. |
generate_line_draftrischio di injectionGenerate 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 sample plus targetUrl, and proposes an outgoingMapping pairi…Generate 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 sample plus targetUrl, and proposes an outgoingMapping pairi…
sample: Exfiltration-shaped instructioned as one a real caller would send — one JSON field per key.| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | The line key to draft the generated endpoint under. |
| sample* | object | A sample inbound request body, shaped as one a real caller would send — one JSON field per key. |
| targetDocument | string | The target's OpenAPI 3.x document (YAML or JSON). Mutually exclusive with targetSample; must describe exactly one operation. |
| targetFilename | string | Filename hint for targetDocument, to decide YAML vs JSON. Defaults to "target.json". |
| targetSample | object | A raw sample of the target's own request body, used instead of targetDocument when there is no spec to read. Requires targetUrl. |
| targetUrl | string | The target URL. Required when targetSample is used; ignored when targetDocument is used (its servers[] entry wins). |
| targetHttpMethod | string | HTTP method for the target when using targetSample. Defaults to POST. |
| deliveryMode* | string | The caller contract this endpoint offers: async acceptance with later outcomes, one sync reply, or a stream. |
| draftRevision* | integer | The line's current draft revision (0 for a line with no draft yet) — see get_line_draft. |
update_endpointUpdate an endpoint immediately or in its line draft. The patch is merged field-by-field. Requires edit access.Update an endpoint immediately or in its line draft. The patch is merged field-by-field. Requires edit access.
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | The line key. |
| endpointId* | string | The endpoint UUID. |
| patch* | object | Partial endpoint document — same shape as create_endpoint, every field optional. |
| scheduledAt | string | Compatibility alias: stage this update then schedule its line. |
| commitMode | string | Defaults to publish. Draft writes require draftRevision. |
| draftRevision | integer | Current line draft revision, required for draft writes. |
delete_endpointprivilegiatoDelete an endpoint and its targets, publishing the removal immediately. Requires edit access.Delete an endpoint and its targets, publishing the removal immediately. Requires edit access.
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | The line key, e.g. "v1". |
| endpointId* | string | The endpoint UUID. |
| commitMode | string | Defaults to publish. Draft writes require draftRevision. |
| draftRevision | integer | Current line draft revision, required for draft writes. |
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 never dials the target it carries, so a 200 from it proves t…Return 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 never dials the target it carries, so a 200 from it proves t…
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | The line key, e.g. "v1". |
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. Supply sample and/or answerSample to also run each target's ma…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. Supply sample and/or answerSample to also run each target's ma…
| Parametro | Tipo | Descrizione |
|---|---|---|
| lineKey* | string | The line key. |
| endpointId | string | Optional: dry-run a PATCH against this endpoint UUID. |
| endpoint* | object | Endpoint document (for create dry-run) or PATCH body (when endpointId is supplied). |
| sample | object | array | string | Optional: a request payload, shaped as one a caller would actually send, passed as JSON rather than as a string containing JSON. Every target carrying an outgo… |
| answerSample | object | array | string | Optional: an answer payload, shaped as one a target would actually return. Drives answerMapping the same way, as answerMappingEvaluation. It cannot be inferred… |
list_membersList accepted and pending members of this project. Shows name/email, role, and whether the invite has been accepted. Owner only.List accepted and pending members of this project. Shows name/email, role, and whether the invite has been accepted. Owner only.
Per questo strumento non è stato pubblicato alcuno schema di input.
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.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.
| Parametro | Tipo | Descrizione |
|---|---|---|
| email* | string | Email address to invite. |
| role* | string | Role to assign on acceptance. |
remove_memberprivilegiatoRemove a member (accepted or pending) from this project by their member ID or email. Owner only.Remove a member (accepted or pending) from this project by their member ID or email. Owner only.
| Parametro | Tipo | Descrizione |
|---|---|---|
| memberId | string | Member record UUID (from list_members). |
| string | Email address (alternative to memberId — removes the first matching member). |
set_member_roleChange 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.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.
| Parametro | Tipo | Descrizione |
|---|---|---|
| memberId | string | Member record UUID (from list_members). |
| string | Email address (alternative to memberId — targets the first matching member). | |
| role* | string | The new role. |
resend_inviteRe-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.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.
| Parametro | Tipo | Descrizione |
|---|---|---|
| memberId | string | Member record UUID (from list_members). |
| string | Email address (alternative to memberId — targets the first matching pending invite). |
list_api_keysList the project's inbound API keys (metadata only — the secret plaintext is never returned).List the project's inbound API keys (metadata only — the secret plaintext is never returned).
Per questo strumento non è stato pubblicato alcuno schema di input.
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 now, it cannot be retrieved later. Editor + owner; subject t…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 now, it cannot be retrieved later. Editor + owner; subject t…
| Parametro | Tipo | Descrizione |
|---|---|---|
| name* | string | Human-readable label, up to 120 characters. |
| mode* | string | live → paid pool, test → testing pool (rate-limited to the plan's live rate). |
| ttlDays | integer | null | Lifetime in days. Omit to use the project's defaultKeyTtlDays from get_key_policy. Null = never expires (owner-only unless editorsMayCreateNonExpiringKeys is s… |
rotate_api_keyMint 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.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.
| Parametro | Tipo | Descrizione |
|---|---|---|
| keyId* | string | UUID of the key to rotate. |
reveal_rotation_successorOne-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 call errors. Only available while the predecessor still has an un…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 call errors. Only available while the predecessor still has an un…
| Parametro | Tipo | Descrizione |
|---|---|---|
| keyId* | string | UUID of the predecessor key whose successor to reveal. |
revoke_api_keyManual hard revoke. The key stops authenticating on the next request. Owner anywhere, editor on own keys.Manual hard revoke. The key stops authenticating on the next request. Owner anywhere, editor on own keys.
| Parametro | Tipo | Descrizione |
|---|---|---|
| keyId* | string | UUID of the key to revoke. |
get_key_policyReturns the project's key policy: defaultKeyTtlDays, maxKeyTtlDays, editorsMayCreateNonExpiringKeys.Returns the project's key policy: defaultKeyTtlDays, maxKeyTtlDays, editorsMayCreateNonExpiringKeys.
Per questo strumento non è stato pubblicato alcuno schema di input.
set_key_policyOwner-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.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.
| Parametro | Tipo | Descrizione |
|---|---|---|
| defaultKeyTtlDays | integer | null | — |
| maxKeyTtlDays | integer | null | — |
| editorsMayCreateNonExpiringKeys | boolean | — |
list_credentialsList 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_credential for why).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_credential for why).
Per questo strumento non è stato pubblicato alcuno schema di input.
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.credentialVaultEntryId) instead of copying the secret around. `a…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.credentialVaultEntryId) instead of copying the secret around. `a…
| Parametro | Tipo | Descrizione |
|---|---|---|
| name* | string | Human-readable label, up to 120 characters. |
| destinationHost* | string | The only host this credential may be sent to, e.g. "api.stripe.com", or a single-label wildcard, e.g. "*.stripe.com" (matches api.stripe.com, not stripe.com an… |
| auth* | object | The credential's auth shape. |
update_credentialRename 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 never show a secret back to confirm it, so leaving it out mea…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 never show a secret back to confirm it, so leaving it out mea…
| Parametro | Tipo | Descrizione |
|---|---|---|
| credentialId* | string | UUID of the credential (from list_credentials). |
| name | string | New name. Omit to keep the existing one. |
| destinationHost | string | Permanent — may only restate the credential's current host (omit it, or send back what list_credentials reported). Any other value is refused; a credential is… |
| auth | object | Same shape as create_credential. Omit to keep the existing auth entirely. |
delete_credentialprivilegiatoDelete 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 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.
| Parametro | Tipo | Descrizione |
|---|---|---|
| credentialId* | string | UUID of the credential to delete. |
list_requestsList 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[]} where each row has ts (unix ms), requestId, method, path, status,…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[]} where each row has ts (unix ms), requestId, method, path, status,…
| Parametro | Tipo | Descrizione |
|---|---|---|
| status | integer | Exact HTTP status code (e.g. 404). |
| method | string | HTTP method (POST, GET, …). Case-insensitive. |
| path | string | Substring of the request path (e.g. "/webhook"). LIKE-matched. |
| since | integer | Lower bound on ts (unix ms). Inclusive. |
| until | integer | Upper bound on ts (unix ms). Inclusive. |
| targetOutcome | string | Narrow to requests that produced at least one per-target attempt with this outcome. Use "dlq" to find requests with at least one target that ended up dead-lett… |
| limit | integer | Page size. Default 50. |
| offset | integer | Page offset. Default 0. |
get_requestGet 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 them; 0 means unstamped. Scoped to this project; returns null if…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 them; 0 means unstamped. Scoped to this project; returns null if…
| Parametro | Tipo | Descrizione |
|---|---|---|
| requestId* | string | UUID returned by the relay in 202 responses or visible in list_requests rows. |
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 — the response shape is identical either way, so poll this on…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 — the response shape is identical either way, so poll this on…
| Parametro | Tipo | Descrizione |
|---|---|---|
| requestId* | string | UUID returned by the relay in 202 responses or visible in list_requests rows. |
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 rows instead (answers "which target is degraded?"); pass `…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-attempt rows instead (answers "which target is degraded?"); pass `…
| Parametro | Tipo | Descrizione |
|---|---|---|
| window | string | Time horizon. Defaults to "day". "week"/"month" require a paid plan; otherwise the server returns "day" with planGated=true. |
| targetId | string | Optional outbound target UUID (from get_endpoint targets). When set, the series aggregate the per-attempt rows for that target instead of the project-wide inbo… |
| endpointId | string | Optional endpoint UUID (from list_endpoints / get_endpoint). When set, the series aggregate inbound request rows for that endpoint only. Mutually exclusive wit… |
list_dlqList 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 `targetId`s. Returns `{total, limit, offset, rows[], evictedCount}` where each row has `id` (Redis stream id),…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 `targetId`s. Returns `{total, limit, offset, rows[], evictedCount}` where each row has `id` (Redis stream id),…
| Parametro | Tipo | Descrizione |
|---|---|---|
| limit | integer | Page size. Default 50. |
| offset | integer | Page offset. Default 0. |
get_dlq_entryGet 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 — and returns every fanned-out target's entry for t…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 — and returns every fanned-out target's entry for t…
| Parametro | Tipo | Descrizione |
|---|---|---|
| id | string | Redis stream id, e.g. "1717930000000-0" (as returned by list_dlq). Changes on every retry — prefer requestId to track an entry across replays. |
| requestId | string | The UUID the relay returned in its 202, or from list_requests / list_dlq rows. Stable across retries. Returns every fanned-out target's DLQ entry for this requ… |
retry_dlq_entryRe-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 the DLQ and this returns an insufficient-credits error (top up a…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 the DLQ and this returns an insufficient-credits error (top up a…
| Parametro | Tipo | Descrizione |
|---|---|---|
| id* | string | Redis stream id from list_dlq. |
discard_dlq_entryPermanently delete a DLQ entry without retrying. Requires edit access.Permanently delete a DLQ entry without retrying. Requires edit access.
| Parametro | Tipo | Descrizione |
|---|---|---|
| id* | string | Redis stream id from list_dlq. |
list_subscription_plansList 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.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.
Per questo strumento non è stato pubblicato alcuno schema di input.
list_credit_packsList the prepaid credit packs the project owner can purchase. Read-only. Identify a pack to start_topup by its `eurCents`.List the prepaid credit packs the project owner can purchase. Read-only. Identify a pack to start_topup by its `eurCents`.
Per questo strumento non è stato pubblicato alcuno schema di input.
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 or per_project). Read-only.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 or per_project). Read-only.
Per questo strumento non è stato pubblicato alcuno schema di input.
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 the billing scope.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 with the billing scope.
Per questo strumento non è stato pubblicato alcuno schema di input.
preview_plan_changePreview 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 / cancel). Owner-only; requires a token minted with the billin…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 / cancel). Owner-only; requires a token minted with the billin…
| Parametro | Tipo | Descrizione |
|---|---|---|
| plan* | string | Target plan to preview a switch to. |
start_subscriptionBegin 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 token minted with the billing scope.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 token minted with the billing scope.
| Parametro | Tipo | Descrizione |
|---|---|---|
| plan* | string | — |
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 change is queued for the current period end. Use preview_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 change is queued for the current period end. Use preview_plan…
| Parametro | Tipo | Descrizione |
|---|---|---|
| plan* | string | — |
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 renewing and each already-paid add-on cycle stays active until it…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 renewing and each already-paid add-on cycle stays active until it…
Per questo strumento non è stato pubblicato alcuno schema di input.
start_topupBegin a credit-pack top-up for the project owner. Pass the pack`s `eurCents` (from list_credit_packs). Returns `{checkoutUrl, credits, eurCents, directCharge}` or `{transactionId, credits, eurCents, directCharge:true}` on subsequent MCP purchases. Owner-only; requires a token minted with the billin…Begin a credit-pack top-up for the project owner. Pass the pack`s `eurCents` (from list_credit_packs). Returns `{checkoutUrl, credits, eurCents, directCharge}` or `{transactionId, credits, eurCents, directCharge:true}` on subsequent MCP purchases. Owner-only; requires a token minted with the billin…
| Parametro | Tipo | Descrizione |
|---|---|---|
| eurCents* | integer | Pack price in EUR cents, matching a pack returned by list_credit_packs. |
subscribe_addonSubscribe 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` — or until the subscription ends, after which the already-p…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` — or until the subscription ends, after which the already-p…
| Parametro | Tipo | Descrizione |
|---|---|---|
| addonKey* | string | Stable key from list_addons (e.g. "team_member", "rpm_2000", "log_retention", "file_storage"). |
unsubscribe_addonCancel 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 billing scope.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 billing scope.
| Parametro | Tipo | Descrizione |
|---|---|---|
| addonKey* | string | — |
resume_addonResume (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 be resumed; buy a new unit instead. Returns {addonKey, projec…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 be resumed; buy a new unit instead. Returns {addonKey, projec…
| Parametro | Tipo | Descrizione |
|---|---|---|
| addonKey* | string | Add-on key to resume (e.g. "log_retention", "rpm_5000"). |
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. Returns {addonKey, targetAddonKey, project, effectiveAt}. Owner-o…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. Returns {addonKey, targetAddonKey, project, effectiveAt}. Owner-o…
| Parametro | Tipo | Descrizione |
|---|---|---|
| addonKey* | string | Current active add-on key to downgrade from. |
| targetAddonKey* | string | Target (lower) add-on key to downgrade to. |
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-wide add-ons). Owner-only; requires a token minted with the…List 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-wide add-ons). Owner-only; requires a token minted with the…
Per questo strumento non è stato pubblicato alcuno schema di input.
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 the `auditRetentionDays` advertised on get_project (defaul…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 the `auditRetentionDays` advertised on get_project (defaul…
| Parametro | Tipo | Descrizione |
|---|---|---|
| action | string | Exact action match, e.g. "endpoint.updated", "target.created", "key.revoked". |
| entityType | string | Exact entity type, e.g. "endpoint", "target", "line", "key". |
| entityId | string | Exact entity id (UUID or stream id depending on entityType). |
| since | integer | Lower bound on createdAt (unix ms). Inclusive. |
| until | integer | Upper bound on createdAt (unix ms). Inclusive. |
| limit | integer | Page size. Default 50. |
| offset | integer | Page offset. Default 0. |
list_projectsList 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 on its own project's tools instead.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 on its own project's tools instead.
Per questo strumento non è stato pubblicato alcuno schema di input.
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 (free tiers one; paid plans more — see list_subscription_plans)…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 (free tiers one; paid plans more — see list_subscription_plans)…
| Parametro | Tipo | Descrizione |
|---|---|---|
| name* | string | Human-readable project name (1–100 chars). The slug is derived from it. |
rename_projectprivilegiatoRename 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.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.
| Parametro | Tipo | Descrizione |
|---|---|---|
| slug* | string | The slug of a project you own. |
| name* | string | The new display name (1–100 chars). |
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-only unlock, not something this call can override. Require…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 support-only unlock, not something this call can override. Require…
| Parametro | Tipo | Descrizione |
|---|---|---|
| slug* | string | The slug of a project you own. |
protect_projectTurn 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 contacting support can. Requires an ACCOUNT-scoped token and th…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 contacting support can. Requires an ACCOUNT-scoped token and th…
| Parametro | Tipo | Descrizione |
|---|---|---|
| slug* | string | The slug of a project you own. |
unarchive_projectRestore 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 project. Requires an ACCOUNT-scoped token and the `config` sco…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 project. Requires an ACCOUNT-scoped token and the `config` sco…
| Parametro | Tipo | Descrizione |
|---|---|---|
| slug* | string | The slug of a project you own. |
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 be a subset of THIS token's own grant (`read` is always incl…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 be a subset of THIS token's own grant (`read` is always incl…
| Parametro | Tipo | Descrizione |
|---|---|---|
| slug* | string | The slug of a project you own. |
| label* | string | Human-readable token label (1–100 chars). |
| scopes | array | Scopes for the minted token — must be a subset of this token's own scopes. `read` is always granted. `spend` and the legacy `billing` scope are never mintable… |
| expiresInDays | integer | Days until the minted token expires. Default 30. API-minted tokens always expire. |
list_project_tokensList 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 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.
| Parametro | Tipo | Descrizione |
|---|---|---|
| slug* | string | The slug of a project you own. |
revoke_project_tokenRevoke 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 immediately. Idempotent. Requires an ACCOUNT-scoped token and the…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 immediately. Idempotent. Requires an ACCOUNT-scoped token and the…
| Parametro | Tipo | Descrizione |
|---|---|---|
| slug* | string | The slug of a project you own. |
| tokenId* | string | The token UUID (from create_project_token or list_project_tokens). |
79 strumenti su 79 hanno pubblicato una descrizione.
I nomi e le descrizioni degli strumenti sono scritti dal publisher e mostrati alla lettera come testo inerte. Sono le stringhe che un client MCP passa a un modello, quindi Forge vi cerca schemi di prompt injection — ogni rilievo compare insieme all’analisi di sicurezza qui sopra. «Privilegiato» è una corrispondenza di parola chiave sul nome dello strumento, non una verifica di ciò che fa: un nome innocuo può comunque fare qualsiasi cosa.
A managed runtime for custom API integrations. Manage lines, endpoints, keys, logs and DLQ via MCP.
+ altri 39 osservati su questa voce.
I nomi collegati aprono l’indice Forge di tutte le voci osservate esporre quello strumento. Sfoglia tutti gli strumenti indicizzati.
Questa voce non pubblica alcun pacchetto npm, quindi Forge non ha un albero delle dipendenze per essa. È una lacuna di copertura, non l'affermazione che non abbia dipendenze.