Skip to main content
Glama

svix

Server Details

Send and debug webhooks — applications, endpoints, messages, delivery attempts and replays.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
m190/usefulapi-mcp
GitHub Stars
0

TDQS

A3.6/5.0

Scored across 19 tools

Disambiguation4/5

Each tool pairs a distinct resource with an action, and the three 'list_attempts/list_messages' variants are scoped clearly by endpoint vs message vs application. The only mild overlap is between the several message- and attempt-listing tools, but descriptions disambiguate them well.

Naming Consistency5/5

Every tool follows the same svix_<verb>_<noun> snake_case pattern (create_application, get_endpoint, list_attempts_by_message, etc.) with no deviations. Verbs are used consistently and predictably across resources.

Tool Count4/5

19 tools is at the heavier end but justified by the domain breadth (applications, endpoints, event types, messages, attempts, background tasks, health). Each tool maps to a distinct operation, though a few read tools could arguably be consolidated.

Completeness3/5

Core lifecycle is present (create/get/list for applications and endpoints, send/resend/get/list for messages), but there is no update or delete for applications, endpoints, or messages, and event types are read-only. These missing mutations are notable gaps for a management surface.

Available Tools

19 tools
svix_create_applicationCreate an applicationC
Destructive
Inspect

Create a new application (one tenant/customer of yours) in the Svix environment. Svix REST: POST /api/v1/app.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidNoYour own stable id for this application, unique per environment.
nameYesHuman-readable application name.
metadataNoArbitrary string key/value metadata.
rate_limitNoOptional throttle rate, messages per second.

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only supply destructiveHint=true, so the description carries most of the behavioral burden. It says nothing about idempotency, what happens on duplicate name/uid, whether the call is retry-safe, or what the response contains for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the core purpose; the trailing REST path adds orientation for API-aware agents without bloating the text. Nothing is wasted.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a create/mutation tool with no output schema and thin annotations, the description omits what the call returns (e.g., the new application's id), error behavior on duplicate uid/name, and idempotency semantics. These gaps matter for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with all four parameters documented, so the schema already handles parameter meaning. The description adds no syntax, format, or interpretation detail beyond that baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a new application') and clarifies the domain concept via the parenthetical 'one tenant/customer of yours.' This clearly separates it from siblings like svix_get_application and svix_list_applications, though it does not name any alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to use this versus alternatives, nor any prerequisites (auth/API key, environment context, or whether an equivalent uid should be checked first). The REST path is context, not usage guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

svix_create_endpointCreate an endpointA
Destructive
Inspect

Register a webhook endpoint URL for one application, optionally scoped to specific event types and channels. Svix REST: POST /api/v1/app/{app_id}/endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
uidNoYour own stable id for this endpoint.
urlYesThe HTTPS URL Svix should deliver webhooks to.
app_idYesThe application's Svix id or uid.
channelsNoOnly deliver messages on these channels.
disabledNoCreate the endpoint in a disabled state.
descriptionNoHuman-readable note about this endpoint.
event_typesNoOnly deliver these event types. Omit to receive all of them.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The destructiveHint annotation already signals a mutating write, and the description's 'Register' is consistent with that. Beyond restating the mutation, it discloses nothing about idempotency, uid uniqueness, what happens to an existing endpoint at the same URL, or required auth — so it adds only modest value over the annotation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the core action and scope; the REST path is a useful, compact addition. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a creation tool with fully documented parameters, no output schema, and a safety annotation already present, the description covers what it must: what is created, against which app, and the optional scoping. It would be stronger with a note on application prerequisites or duplicate-URL behavior, but nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all seven parameters are already documented in the schema (url as HTTPS, uid as stable id, event_types omit-to-receive-all, etc.). The description's mention of event types and channels roughly mirrors the schema without adding format or constraint detail, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('Register a webhook endpoint URL') plus the scoping constraints (one application, optional event types/channels), and even names the underlying REST route. An agent can distinguish it immediately from siblings like svix_get_endpoint or svix_list_endpoints.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It never states when to use this tool versus alternatives such as svix_create_application or the get/list endpoint variants, nor any prerequisites (e.g., the application must exist first). Usage is only implied by the verb 'Register'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

svix_get_applicationGet one applicationB
Read-only
Inspect

Fetch a single application by its Svix id or your own uid. Svix REST: GET /api/v1/app/{app_id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesThe application's Svix id (app_...) or your uid.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe non-mutating read, so the description's burden is reduced. It adds the underlying REST mapping (GET /api/v1/app/{app_id}), but says nothing about error behavior for unknown ids or the shape of the returned application.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, purpose front-loaded, with the REST route as a compact trailing detail. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter read tool whose safety profile is covered by annotations, the description is nearly sufficient. The only gap is that no output schema exists, so a hint about what the returned application contains would have closed the loop.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so app_id's dual Svix-id-or-uid semantics are already captured in the schema. The description restates the same duality without adding format or validation detail, making this a baseline case.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Fetch) and resource (single application) plus the two accepted identifier forms. It implicitly contrasts with svix_list_applications via 'single', but never names the sibling to disambiguate explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, no prerequisites, and no routing to alternatives such as svix_list_applications when the id is unknown. The agent must infer usage from the name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

svix_get_endpointGet one endpointA
Read-only
Inspect

Fetch a single webhook endpoint, including its URL, subscribed event types and channels. Svix REST: GET /api/v1/app/{app_id}/endpoint/{endpoint_id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesThe application's Svix id or uid.
endpoint_idYesThe endpoint's Svix id (ep_...) or uid.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes this as a safe read, but the description adds real value by disclosing the return contents (URL, event types, channels) and the underlying REST route. This is meaningful behavioral context absent from structured fields, though nothing is said about auth scoping or error behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the action and payload scope, followed by a compact API reference. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully enumerates the returned fields, and annotations cover the safety profile. It is nearly complete for a two-param read tool; only auth/scope notes are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both app_id and endpoint_id are already documented in the schema. The REST path in the description reinforces where each id sits, but adds no new format or constraint detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a precise verb and resource ('Fetch a single webhook endpoint') and immediately scopes the payload ('including its URL, subscribed event types and channels'). This clearly separates it from svix_list_endpoints and svix_get_endpoint_stats without the agent needing to open a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'single' implies the lookup use case versus the list sibling, but the description never states when to prefer this over svix_list_endpoints or what prerequisites apply. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

svix_get_endpoint_statsGet endpoint delivery statsA
Read-only
Inspect

Read delivery statistics for one endpoint — counts of success, pending, sending and fail. The fastest way to see whether an endpoint is healthy. Svix REST: GET /api/v1/app/{app_id}/endpoint/{endpoint_id}/stats.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceNoISO-8601 start of the window, e.g. 2026-08-01T00:00:00Z.
untilNoISO-8601 end of the window.
app_idYesThe application's Svix id or uid.
endpoint_idYesThe endpoint's Svix id or uid.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds useful context — the exact REST resource path and the four counter buckets returned — but says nothing about the default time window when since/until are omitted or whether counts are windowed or all-time, which materially affects interpretation of the numbers.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences — what it returns first, health-check framing second, REST path last — with no filler. Every clause carries information an agent can use.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description does the right thing by naming the returned counters. The remaining gap is the time-window behavior of the optional since/until parameters, which an agent must guess before calling.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so app_id, endpoint_id, since and until are all documented in the schema itself. The description adds nothing about the since/until semantics (defaults, maximum range, required pairing), so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read delivery statistics for one endpoint') and enumerates the returned metrics (success, pending, sending, fail), which no sibling tool offers — svix_list_attempts_by_endpoint returns attempt-level records, not aggregates. An agent can distinguish this from every sibling without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'The fastest way to see whether an endpoint is healthy' gives a clear situation in which to reach for this tool, but offers no exclusions and never names the alternative (e.g. listing attempts) for when per-attempt detail is actually needed. Context is present; routing guidance is not.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

svix_get_event_typeGet one event typeA
Read-only
Inspect

Fetch a single event type by name, including its description and JSON schema. Svix REST: GET /api/v1/event-type/{event_type_name}.

ParametersJSON Schema
NameRequiredDescriptionDefault
event_type_nameYesThe event type name, e.g. invoice.paid.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe read, so the annotation carries the safety profile. The description adds that the response includes the event type's description and JSON schema, plus the underlying REST path, but says nothing about error behavior for a missing/unknown name or about auth requirements.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no filler; the action and the returned content are front-loaded, and the REST mapping is a compact trailing detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully discloses that the result contains a description and JSON schema, which is the key completeness gap it needed to fill for a single-param read. It is nearly complete for such a simple tool; only failure/error semantics for an unknown name are missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already supplies the meaning plus a concrete example ('invoice.paid.'). The description only restates that lookup is by name, adding no format, casing, or naming-convention guidance beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb and resource ('Fetch a single event type by name') and states the returned payload (description and JSON schema), which implicitly separates it from the sibling svix_list_event_types. It does not name that sibling explicitly, so it falls short of full sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent infers this is the tool to call when it already knows the event type name and wants one record's detail. There is no explicit when-to-use, when-not-to-use, or named alternative such as svix_list_event_types.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

svix_get_messageGet one messageA
Read-only
Inspect

Fetch a single message, including its event type and payload. Svix REST: GET /api/v1/app/{app_id}/msg/{msg_id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesThe application's Svix id or uid.
msg_idYesThe message's Svix id (msg_...) or your eventId.
with_contentNoInclude the payload. Defaults to true.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes this as a safe read. The description adds that the response includes the event type and payload, and the schema notes with_content defaults to true, but it does not cover error behavior for a missing msg_id or any auth/lookup-failure context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste, with the substance front-loaded ahead of the REST path reference. Nothing to trim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully signals the return contents (event type and payload), which is what an agent needs to decide between full and content-less retrieval. Permissions and not-found behavior are unaddressed but are minor for a read-only fetch.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (including the with_content default) are already documented. The description adds no syntax or format detail beyond the schema; the mention of 'payload' only loosely maps to with_content. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Fetch a single message') and names what comes back (event type and payload), which separates it from list-style siblings. It does not explicitly name svix_list_messages as the alternative, but 'a single message' is clear enough to route correctly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the required app_id/msg_id pair and the REST path, so an agent can infer this is the by-id retrieval tool. There is no explicit when-to-use vs. svix_list_messages or svix_list_attempts_by_message guidance, and no stated prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

svix_healthCheck API healthA
Read-only
Inspect

Check that the Svix API is reachable and the API key works. Returns 200 with an empty body when healthy. Svix REST: GET /api/v1/health.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds real behavioral context beyond that: it validates the API key (an auth check) and specifies the success response as 200 with an empty body, rather than just restating the read-only nature.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences with zero waste, front-loading the core purpose before the response behavior and REST detail. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless health check with no output schema, the description is complete: it explains what is verified and what a successful response looks like (200, empty body). Nothing an agent needs to call it correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters and schema coverage is 100%, so per the rubric this is a baseline 4. The description correctly adds nothing about parameters because there is nothing to describe.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: verifying that the Svix API is reachable and that the API key works. This is clearly distinct from every sibling, which are all CRUD operations on applications, endpoints, messages, and event types.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description communicates the use case directly (verify API reachability and key validity) and even surfaces the underlying REST call. There is no competing alternative to exclude, so exclusions are unnecessary, though it never explicitly says when to call this versus normal operations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

svix_list_applicationsList applicationsB
Read-only
Inspect

List the applications (your tenants/customers) in the Svix environment. Svix REST: GET /api/v1/app.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size, 1-250. Svix defaults to 50.
orderNoSort order by creation time.
iteratorNoCursor from the previous page's `iterator` field. Omit for the first page.
exclude_apps_with_no_endpointsNoSkip applications that have no endpoints configured.

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the domain framing (applications = tenants/customers) and the REST mapping, but does not describe pagination behavior or result shape, which the schema partially carries.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences, front-loaded with the action and target, with zero filler. The domain clarification and REST mapping both earn their place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with full schema coverage and no output schema, the description is nearly complete. A brief note that results are paginated via the iterator cursor would close the remaining gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (limit, order, iterator, exclude_apps_with_no_endpoints) are already documented in the schema. The description adds no parameter-specific detail, which is acceptable at full coverage – baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List) and resource (applications), and usefully decodes the domain term as 'tenants/customers' with the underlying REST endpoint. It does not explicitly contrast with siblings like svix_get_application, but the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this list tool versus alternatives (e.g. svix_get_application for a single app) and no prerequisites or exclusions. Usage is only implied by the verb 'List'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

svix_list_attempts_by_endpointList delivery attempts for an endpointA
Read-only
Inspect

List delivery attempts against one endpoint, newest first. Filter by status to find the failures. Svix REST: GET /api/v1/app/{app_id}/attempt/endpoint/{endpoint_id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size, 1-250. Svix defaults to 50.
app_idYesThe application's Svix id or uid.
statusNoFilter by attempt status: 0 success, 1 pending, 2 fail, 3 sending.
iteratorNoCursor from the previous page's `iterator` field. Omit for the first page.
endpoint_idYesThe endpoint's Svix id or uid.
status_code_classNoFilter by response class: 0 any, 100, 200, 300, 400, 500.

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is covered. The description adds useful ordering behavior ('newest first') and identifies the underlying REST endpoint, but says nothing about pagination behavior despite the iterator parameter existing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the core purpose, with a useful usage tip second. The REST path is arguably redundant but is compact and aids precision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only listing tool with fully documented parameters and annotations covering the safety profile, this is nearly complete. The only gap is pagination behavior, which the iterator parameter implies but the description does not confirm.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all six parameters are already documented, including the status code mapping and limit defaults. The description adds only a hint that the status filter surfaces failures; it does not explain iterator usage or status_code_class semantics beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (List), resource (delivery attempts), and scope (against one endpoint, newest first). The scoping phrase distinguishes it from the sibling svix_list_attempts_by_message without needing the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Filter by status to find the failures' gives one implied usage pattern, which is helpful. However, no alternatives are named and there is no when-not guidance (e.g., when to use list_attempts_by_message instead).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

svix_list_attempts_by_messageList delivery attempts for a messageA
Read-only
Inspect

List every delivery attempt Svix made for one message, across endpoints — status, response code and body. This is the tool for answering 'why did this webhook not arrive?'. Svix REST: GET /api/v1/app/{app_id}/attempt/msg/{msg_id}.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size, 1-250. Svix defaults to 50.
app_idYesThe application's Svix id or uid.
msg_idYesThe message's Svix id.
statusNoFilter by attempt status: 0 success, 1 pending, 2 fail, 3 sending.
iteratorNoCursor from the previous page's `iterator` field. Omit for the first page.
endpoint_idNoOnly attempts against this endpoint.
status_code_classNoFilter by response class: 0 any, 100, 200, 300, 400, 500.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds behavior annotations don't: results span all endpoints and include status, response code and body, which tells the agent what it will actually get back. Pagination behavior is left to the schema.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two purpose sentences plus the canonical REST path, with the most decision-relevant information (what it lists, why you'd call it) front-loaded. No filler sentences.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description partly compensates by naming the returned fields (status, response code, body). Required params and pagination cursor are fully covered by the schema, so an agent has enough to invoke correctly; only return-shape detail like response structure/pagination envelope is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter (limit, status, iterator, endpoint_id, status_code_class) is already documented with ranges and semantics. The description adds no parameter-level meaning beyond the 'across endpoints' framing, which is the correct baseline when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb and resource ('List every delivery attempt Svix made for one message'), plus the scope qualifier 'across endpoints', which implicitly contrasts with the sibling svix_list_attempts_by_endpoint. It never names that sibling, so the differentiation is inferential rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a concrete use scenario — answering 'why did this webhook not arrive?' — which tells the agent exactly when this tool is the right pick. It does not state when to prefer svix_list_attempts_by_endpoint or svix_get_message instead, so no exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

svix_list_background_tasksList background tasksA
Read-only
Inspect

List Svix background tasks (bulk replays, expunges, imports) with their status. Use it to follow up a recover or replay. Svix REST: GET /api/v1/background-task.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskNoFilter by task kind, e.g. endpoint.recover.
limitNoPage size, 1-250. Svix defaults to 50.
statusNoFilter by task status.
iteratorNoCursor from the previous page's `iterator` field. Omit for the first page.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so safety is covered. The description adds the workflow linkage (post-recover/replay tracking) but says nothing about pagination behavior, defaults, or result shape beyond what the schema already states.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences: purpose with examples, usage context, and the REST mapping. Front-loaded and every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, zero-parameter-required list tool with full schema coverage, the description plus schema covers what an agent needs. Return/pagination semantics are partially handled by the iterator and limit schema fields, so the omission of an explicit result description is minor.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all four parameters (task, limit, status, iterator) are fully documented in the schema. The description adds no format or filtering nuance beyond it, making the baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb and resource ('List Svix background tasks') and enumerates the task kinds (bulk replays, expunges, imports), plus the underlying REST endpoint. No sibling lists background tasks, so the scope is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Use it to follow up a recover or replay' ties the tool to a concrete workflow and implicitly routes from svix_recover_endpoint. It gives clear positive context but no explicit when-not or alternative-tool guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

svix_list_endpoint_messagesList messages for an endpointA
Read-only
Inspect

List the messages destined for one endpoint, with each message's delivery status. Svix REST: GET /api/v1/app/{app_id}/endpoint/{endpoint_id}/msg.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size, 1-250. Svix defaults to 50.
app_idYesThe application's Svix id or uid.
iteratorNoCursor from the previous page's `iterator` field. Omit for the first page.
endpoint_idYesThe endpoint's Svix id or uid.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

readOnlyHint=true already tells the agent this is a safe read, so the description only needs incremental value. It adds that each row includes delivery status and gives the underlying REST path, which is helpful, but says nothing about pagination behavior, result volume, or ordering beyond what the schema's iterator/limit params already convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two compact sentences: the scoping/return content comes first, the REST route second as a reference. No filler and nothing that restates the title verbatim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter read-only list tool with no output schema, the description covers purpose, scope, and the key returned field (delivery status) while the schema handles all parameters. It is adequate; only minor gaps like pagination/ordering expectations remain.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: app_id, endpoint_id, limit, and iterator are all documented in the schema itself, and limit's default of 50 is stated there. The description's REST path reinforces which ids are required but adds no format or behavior detail beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (List) and resource (messages) and narrows the scope with 'destined for one endpoint', which meaningfully separates it from svix_list_messages. It also says the result carries delivery status. It stops short of naming the sibling it should be preferred over, so sibling differentiation is implied rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'destined for one endpoint' implies you use this when you want messages scoped to a single endpoint, which is useful context, but there is no explicit when-to-use/when-not or named alternative (e.g. svix_list_messages for all messages). Usage must be inferred from scope language alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

svix_list_endpointsList endpointsA
Read-only
Inspect

List the webhook endpoints registered for one application. Svix REST: GET /api/v1/app/{app_id}/endpoint.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size, 1-250. Svix defaults to 50.
orderNoSort order by creation time.
app_idYesThe application's Svix id or uid.
iteratorNoCursor from the previous page's `iterator` field. Omit for the first page.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The readOnlyHint annotation already establishes this as a safe read, so the description's main added value is mapping the call to the concrete REST route GET /api/v1/app/{app_id}/endpoint. It adds no behavior beyond that: no pagination semantics despite the iterator parameter, no note on default ordering or result bounds.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with no waste; the purpose and scope come first and the REST mapping follows as a secondary detail. Nothing is padded or redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with fully documented parameters and an explicit readOnlyHint, the description covers what an agent needs in order to call it correctly. The remaining gap is that, with no output schema, nothing is said about the shape of the returned list or how the iterator field is consumed across pages.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so app_id, limit, order, and iterator are all documented in the schema itself (including the 1-250 bound and the default page size of 50). The description repeats only app_id implicitly and adds no syntax or format detail beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the webhook endpoints') and scopes it to 'one application', which is enough for an agent to distinguish it from svix_get_endpoint (singular) and the application-level list tools. It does not explicitly name a sibling or state what it excludes, so it falls short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the verb 'list' plus the app_id requirement signals this is the way to enumerate endpoints for an app, but there is no explicit when-to-use guidance, no mention of when to prefer svix_get_endpoint, and no stated prerequisites (e.g., valid app id). Adequate but leaves the routing decision to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

svix_list_event_typesList event typesA
Read-only
Inspect

List the event types defined in the environment — the catalogue endpoints can subscribe to. Svix REST: GET /api/v1/event-type.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoPage size, 1-250. Svix defaults to 50.
iteratorNoCursor from the previous page's `iterator` field. Omit for the first page.
with_contentNoInclude each event type's JSON schema.
include_archivedNoAlso return archived (deprecated) event types.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds the REST endpoint mapping and the catalogue framing, which is useful context for debugging, but says nothing about pagination behaviour, result size, or rate limiting.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, zero waste, and the core purpose ('list the event types defined in the environment') is front-loaded before the supplementary detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description could have sketched the return shape (paginated list with an iterator) to help an agent drive pagination, but it leaves that to the parameter descriptions. For a simple read-only list tool this is adequate rather than complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents all four parameters including limit bounds and the iterator cursor semantics. The description adds nothing about parameters, making baseline 3 appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Specific verb+resource with added domain meaning: it explains that event types form the catalogue endpoints can subscribe to, plus the underlying REST route. It doesn't explicitly distinguish itself from the singular sibling svix_get_event_type, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied — an agent can infer this is the enumeration call for event types versus the single-record svix_get_event_type, but the description never states when to use this over alternatives or any preconditions. No exclusions or routing guidance are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

svix_list_messagesList messagesA
Read-only
Inspect

List the webhook messages sent for one application, newest first. Filter by event type, channel, tag or time window. Svix REST: GET /api/v1/app/{app_id}/msg.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoOnly messages carrying this tag.
afterNoISO-8601 lower bound on message time.
limitNoPage size, 1-250. Svix defaults to 50.
app_idYesThe application's Svix id or uid.
beforeNoISO-8601 upper bound on message time.
channelNoOnly messages on this channel.
iteratorNoCursor from the previous page's `iterator` field. Omit for the first page.
event_typesNoOnly messages of these event types, e.g. ["invoice.paid"].
with_contentNoInclude each message's payload. Defaults to true.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, so the safety profile is covered. The description adds ordering ('newest first') and the REST mapping, but says nothing about pagination behavior, default result caps, or auth requirements beyond what the schema already carries.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences: purpose and ordering first, filters second, REST endpoint last. Zero filler and nothing redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only list tool with 100% schema coverage and no output schema, the description covers purpose, ordering, and filter surface adequately. It stops short of explaining the iterator-based pagination flow, which a calling agent would benefit from given the 'limit' and 'iterator' parameters.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so each of the 9 parameters is already documented in the input schema. The description only restates the filter categories in prose, adding no syntax or format detail beyond what the schema provides — the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('List the webhook messages'), scopes it to one application, and specifies ordering ('newest first'). It largely distinguishes itself from siblings like svix_get_message and svix_list_attempts_by_message, though it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description enumerates the filter dimensions (event type, channel, tag, time window), which implies how to narrow results, but gives no when-to-use guidance, no prerequisites, and no exclusions versus sibling list tools such as svix_list_endpoint_messages.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

svix_recover_endpointRecover an endpoint's failed messagesA
Destructive
Inspect

Replay every failed message for one endpoint since a timestamp. Runs as a background task — follow it with svix_list_background_tasks. Svix REST: POST /api/v1/app/{app_id}/endpoint/{endpoint_id}/recover.

ParametersJSON Schema
NameRequiredDescriptionDefault
sinceYesISO-8601 start of the replay window, e.g. 2026-08-01T00:00:00Z.
untilNoISO-8601 end of the replay window. Defaults to now.
app_idYesThe application's Svix id or uid.
endpoint_idYesThe endpoint to recover.

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations give only destructiveHint=true plus a title, so the description usefully adds that this runs as a background task and must be polled via svix_list_background_tasks. It does not disclose the destructive side of a replay (possible duplicate deliveries to the endpoint, or permission requirements), which is the main behavioral gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and scope, then async behavior, then the raw REST route. The REST endpoint line is the least load-bearing for an agent that only invokes the MCP tool, keeping it just below a perfect score.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-param mutation with no output schema, it covers the essentials: what is replayed, the time window, and that completion must be tracked via svix_list_background_tasks. Remaining gaps are side-effect details (duplicates, permissions, partial failure) rather than anything needed to construct the call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% — since/until are documented as ISO-8601 window bounds, app_id and endpoint_id as identifiers. The description restates the 'since a timestamp' window without adding format, default, or edge-case detail beyond the schema, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource with scope: 'Replay every failed message for one endpoint since a timestamp.' The scope ('every failed message for one endpoint') implicitly separates it from svix_resend_message, which re-sends a single message, so an agent can pick correctly without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Use context is clear (bulk replay of failures for one endpoint since a timestamp) and it names the required follow-up tool, svix_list_background_tasks, which tells the agent the call is asynchronous. It stops short of explicit when-not guidance, e.g. when to use svix_resend_message instead for a single message.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

svix_resend_messageResend a message to one endpointA
Destructive
Inspect

Queue one message for redelivery to one endpoint. The usual fix after a customer's endpoint was down. Svix REST: POST /api/v1/app/{app_id}/msg/{msg_id}/endpoint/{endpoint_id}/resend.

ParametersJSON Schema
NameRequiredDescriptionDefault
app_idYesThe application's Svix id or uid.
msg_idYesThe message's Svix id.
endpoint_idYesThe endpoint to redeliver to.

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With annotations already declaring destructiveHint=true, the description only needs to add context. 'Queue... for redelivery' usefully signals asynchronous, single-endpoint behavior and the underlying POST path, but it does not explain what the destructive aspect is (re-firing customer webhooks / altering delivery state) or whether the call is idempotent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the action and scope, followed by the use case and the exact REST route. Nothing is padded or repeated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-required-param mutation with no output schema, the description covers what the operation does, its scope, and that it queues work rather than completing synchronously. It stops short of describing the response or failure modes, which an agent calling a destructive write would benefit from knowing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all three parameters are documented there, so the baseline of 3 applies. The description adds no extra meaning about app_id/msg_id/endpoint_id beyond reiterating that redelivery targets one endpoint.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Queue one message for redelivery to one endpoint.' The word 'redelivery' implicitly separates it from svix_send_message (a fresh send), but it never names the closest sibling, svix_recover_endpoint, which also drives redelivery, so the distinction is left to inference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'The usual fix after a customer's endpoint was down' gives a concrete triggering scenario that an agent can match against a user's complaint about missing webhooks. It offers no when-not guidance and does not compare against svix_recover_endpoint or svix_send_message, so the routing decision is only half-supported.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

svix_send_messageSend a messageA
Destructive
Inspect

Send a webhook message to every endpoint of an application subscribed to the event type. This delivers real traffic to your customers' URLs. Svix REST: POST /api/v1/app/{app_id}/msg.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoTags for later filtering.
app_idYesThe application's Svix id or uid.
payloadYesThe JSON body delivered to the endpoints.
channelsNoRestrict delivery to endpoints on these channels.
event_idNoYour own idempotency id for this message.
event_typeYesThe event type name, e.g. invoice.paid. Must already exist.

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare destructiveHint=true; the description adds genuinely useful behavioral context by disclosing that this fires real delivery traffic at customer URLs, which is exactly the kind of consequence an agent needs to weigh before calling. It still omits auth requirements, delivery guarantees, and idempotency behavior despite an event_id parameter existing, so it is not complete.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences that are front-loaded with purpose and the important side-effect warning. The trailing 'Svix REST: POST /api/v1/app/{app_id}/msg.' is marginally redundant for an agent but confirms the underlying operation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should ideally say something about the response (e.g. a message id) and failure/retry behavior; it does not. It does, however, fully cover what the tool does and its real-world impact for a 6-parameter mutation, so the gap is moderate rather than severe.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already explains app_id, event_type, payload, tags, channels, and event_id. The description adds nothing about parameter syntax, formats, or interactions (e.g. how channels restricts delivery), so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (send) and resource (webhook message) and pins down the fan-out scope: 'to every endpoint of an application subscribed to the event type.' This distinguishes it from siblings like svix_resend_message and svix_get_message without needing to open their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The sentence 'This delivers real traffic to your customers' URLs' implies the tool has real-world side effects and should be used deliberately, but there is no explicit when-to-use guidance, no mention of prerequisites, and no direct comparison to alternatives such as resend_message.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 19 tool updates
    • First observedsvix_create_application
    • First observedsvix_create_endpoint
    • First observedsvix_get_application
    • First observedsvix_get_endpoint
    • First observedsvix_get_endpoint_stats
    • First observedsvix_get_event_type
    • First observedsvix_get_message
    • First observedsvix_health
    • First observedsvix_list_applications
    • First observedsvix_list_attempts_by_endpoint
    • First observedsvix_list_attempts_by_message
    • First observedsvix_list_background_tasks
    • First observedsvix_list_endpoint_messages
    • First observedsvix_list_endpoints
    • First observedsvix_list_event_types
    • First observedsvix_list_messages
    • First observedsvix_recover_endpoint
    • First observedsvix_resend_message
    • First observedsvix_send_message

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.