pipehero
Server Details
Debug webhooks from your AI agent: inspect and replay captured webhooks on localhost.
- Status
- Healthy
- Uptime
- 100.0% over 43 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2024-11-05
- URL
- Repository
- pipehero/pipehero-mcp
- GitHub Stars
- 0
TDQS
Scored across 22 tools
Most tools map clearly to distinct resources and actions, and descriptions are thorough. However, a few pairs like list_requests vs list_api_runs and replay_request vs send_test_webhook could cause an agent to pause or misselect without reading closely.
All tool names follow a consistent snake_case verb_noun pattern, with singular get_* vs plural list_* used predictably. The occasional multi-word object like set_ws_passthrough still fits the same convention.
22 tools is a heavy set, though most appear to serve a real purpose across API docs, tunnels, requests, and monitoring. The count is at the upper edge of what an agent can comfortably consider per task.
Core collection/endpoint documentation workflows are well covered: create, read, list, import, export, upsert, delete, and example saving. However, there are notable gaps such as no delete/rename for collections, no environment management, and only read-only monitor support.
Available Tools
22 toolsadd_api_exampleAIdempotentInspect
Save a response example on an endpoint (for instance the 402 your handler returns for a declined card). Replaces the example with the same name, so it is safe to repeat.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Example response body (any JSON). | |
| name | Yes | e.g. Card declined. | |
| path | No | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. | |
| method | No | HTTP method of the route, e.g. POST. Use with path instead of endpoint_id. | |
| status | Yes | ||
| headers | No | ||
| endpoint_id | No | Id of the endpoint. Alternative to method + path. | |
| status_text | No | ||
| collection_id | Yes | Id from list_api_collections. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond the idempotentHint by explaining the mechanism: examples are replaced by name, which is why repeating is safe. This is useful behavioral disclosure and does not contradict the readOnlyHint=false or destructiveHint=false annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The main operation is front-loaded, and the replacement behavior is stated compactly in the second sentence.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter mutation tool, the description plus a reasonably descriptive schema covers how to identify the endpoint and what happens on repeat calls. It does not mention return values, but no output schema exists and the core invocation knowledge is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 67%, so most parameters are already documented. The description adds only a use-case illustration for the response body/status rather than new parameter-level semantics, giving a solid but not exceptional contribution.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Save a response example on an endpoint', naming a specific verb, object, and target. The concrete declined-card example and the focus on response examples make it differentiable from sibling tools like create_api_collection, upsert_api_endpoint, or get_api_endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear context: use this when saving a response example for an endpoint, with a concrete use-case shown. It does not explicitly name alternatives or exclusions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_api_driftARead-onlyInspect
Compare a collection's docs with the real traffic a tunnel captured (Pro/Team). Returns routes nobody documented, status codes with no example, response or request fields missing from every example (or with another type), undocumented query parameters, and documented fields that never appear. Each finding includes request_id of the newest request that shows it: pass it to save_captured_request to add it to the docs, or fix the docs with upsert_api_endpoint and add_api_example. Use it to find out what drifted after a code change.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many recent requests to compare (default 200, max 500). | |
| tunnel | Yes | Subdomain of the tunnel whose traffic to compare. | |
| collection_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so no contradiction exists. The description adds useful behavioral context: it compares docs against captured traffic, lists the types of drift it reports, and notes that each finding includes a request_id for follow-up. It also mentions the Pro/Team restriction, which is beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but efficient. It front-loads the core purpose, then lists finding types and suggested actions in a compact form. The length is justified by the tool's complexity and the absence of an output schema, though it could be slightly tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the burden of explaining what the tool returns. It does so by listing the categories of findings and the request_id field. It also explains how to act on results. Minor omissions like result ordering or pagination are acceptable given the read-only analysis nature and existing annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67%: limit and tunnel have descriptions, collection_id does not. The description maps to the parameters ('collection's docs' and 'tunnel captured') but adds little beyond the schema. collection_id is reasonably inferable from its name and the phrase 'a collection's docs', so no significant gap remains.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Compare') and resource ('a collection's docs' against tunnel traffic), then enumerates exactly what kinds of findings are returned. It is clearly distinguishable from siblings like list_requests or run_api_endpoint because it is focused on drift detection rather than fetching or executing anything.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a clear use context: 'Use it to find out what drifted after a code change.' It also recommends concrete follow-up tools (save_captured_request, upsert_api_endpoint, add_api_example). It does not explicitly say when not to use this tool versus an alternative, but the context is strong enough to guide selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_api_collectionAInspect
Create an empty API collection. Prefer import_api_spec when there is an OpenAPI file, and upsert_api_endpoint to fill it from the code.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | ||
| description | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is a mutating, non-idempotent operation (readOnlyHint=false, idempotentHint=false). The description adds that the collection is empty, but does not describe failure behavior, return value, or side effects beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the primary action and followed by relevant alternative tool guidance. Every sentence earns its place with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple and the schema names the required parameters, but with no output schema and no parameter descriptions, the definition leaves gaps around what the call returns and what the parameters actually mean. It is minimally adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description should compensate by explaining the name and description parameters. It does not mention either parameter, leaving their semantics entirely undocumented beyond raw type names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action and resource: 'Create an empty API collection.' It also distinguishes itself from related operations by naming import_api_spec and upsert_api_endpoint, so an agent can differentiate it from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when not to prefer this tool: use import_api_spec when an OpenAPI file is available, and use upsert_api_endpoint to populate the collection from code. This gives clear routing guidance against the most likely alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_api_endpointADestructiveIdempotentInspect
Delete an endpoint and its examples. Use when the route no longer exists in the code. Cannot be undone.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. | |
| method | No | HTTP method of the route, e.g. POST. Use with path instead of endpoint_id. | |
| endpoint_id | No | Id of the endpoint. Alternative to method + path. | |
| collection_id | Yes | Id from list_api_collections. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal destructive=true, but the description adds valuable context: deleting also removes examples and that the action 'Cannot be undone.' This goes beyond the structured hints, explaining the blast radius and irreversibility.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with no filler. The primary action, the triggering condition, and the key warning are all front-loaded and relevant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description, combined with the detailed schema and annotations, fully covers what the tool does, when to use it, and the important consequence of irreversibility. No output schema exists, so return values need not be explained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well documented. The tool description does not add new parameter-level semantics, but none are needed because the schema descriptions already explain path, method, endpoint_id, and collection_id clearly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Delete an endpoint and its examples.' It clearly differentiates from siblings like get_api_endpoint, run_api_endpoint, and upsert_api_endpoint by indicating the destructive action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly gives the condition to use this tool: 'Use when the route no longer exists in the code.' It does not explicitly name alternatives or when not to use it, but the context is clear and sufficient compared to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_api_collectionARead-onlyInspect
Export a collection as an OpenAPI 3.1 or Postman 2.1 document. Handy to read the whole API at once.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | ||
| collection_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds that the export is in OpenAPI 3.1 or Postman 2.1 formats, which is useful, but it does not disclose the return type (e.g., string, file, URL) or any constraints like size limits. This is acceptable given the annotations but leaves some behavior unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The core action is front-loaded, and the second sentence adds a lightweight use-case hint. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only two parameters and no output schema, so the description must clarify what the agent gets back. It states the output is a 'document' but does not specify the format's container (JSON string, file, etc.), nor any branching behavior for the two formats. Given the safety annotations, this is adequate for a simple export but lacks return-value clarity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It adds meaning to the 'format' parameter by mapping enum values to 'OpenAPI 3.1' and 'Postman 2.1'. However, the 'collection_id' parameter is only implied by the tool's name, not explicitly described. This partial compensation is moderate but not thorough.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Export a collection') and the output formats ('OpenAPI 3.1 or Postman 2.1 document'), which distinguishes it from simple retrieval tools like get_api_collection. However, it does not explicitly name a sibling to contrast with, so the 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Handy to read the whole API at once' gives an implied use case, but the description does not specify when to use this tool versus alternatives like get_api_collection or import_api_spec. No exclusions or alternative conditions are provided, leaving the situational guidance vague.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_api_collectionARead-onlyInspect
Get one collection's folders, endpoints (id, method, path, name, version, example count) and environments (with their variables).
| Name | Required | Description | Default |
|---|---|---|---|
| collection_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the operation read-only and non-destructive, so the safety profile is covered. The description adds the contents of the response (folders, endpoint fields, environment variables) but does not disclose response shape, pagination, permissions, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The entire description is a single, front-loaded sentence; every clause adds either the resource, the scope, or the return fields. There is no filler, and the most important verb/resource appear first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read operation, the description is mostly complete: it names the target and the return contents. It would be improved by stating the relationship to sibling retrieval tools or noting how collection_id is obtained, but the annotations cover the read-only safety aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one undocumented collection_id parameter and 0% schema description coverage, so the description should compensate. It only implies the parameter identifies a single collection ('one collection's') and gives no guidance on the ID format, provenance, or how to obtain it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description begins with a specific verb ('Get') and a precise resource ('one collection's folders, endpoints... and environments'), and enumerates the attributes returned. This clearly distinguishes it from siblings like list_api_collections (all collections) and get_api_endpoint (a single endpoint).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'one collection's' implies the tool is for a single collection rather than listing all, but the description never states when to prefer this tool over list_api_collections, export_api_collection, or get_api_endpoint. No alternatives or exclusions are named, so the agent must infer usage from the resource scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_api_endpointARead-onlyInspect
Get one endpoint in full: description, parameters, headers, request body, saved response examples and its current version. Identify it by endpoint_id or by method + path.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. | |
| method | No | HTTP method of the route, e.g. POST. Use with path instead of endpoint_id. | |
| endpoint_id | No | Id of the endpoint. Alternative to method + path. | |
| collection_id | Yes | Id from list_api_collections. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the agent knows this is a safe read operation. The description adds the scope of what is retrieved (full endpoint details) but does not disclose additional behavioral aspects such as permissions, rate limits, or side effects. Since annotations cover the safety profile, a 3 is appropriate—some value added but not rich context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly packed sentence that front-loads the core purpose ('Get one endpoint in full') and immediately enumerates the return contents. There is zero fluff, and every clause adds value. It is exceptionally concise and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only getter with 4 params (1 required) and no output schema, the description provides enough context: it explains what is returned and how to identify the endpoint. The schema covers parameter details. It does not mention potential error conditions or prerequisites, but given the annotations and schema, these are not critical. It could be slightly more complete by noting that collection_id is required, but that is already in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage, so all parameters are documented. The description adds the crucial semantic that endpoint_id and method+path are alternative identification methods, clarifying their mutual exclusivity and the expected usage pattern. This goes beyond the schema's individual parameter descriptions, which don't mention the relationship between them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Get') and resource ('one endpoint'), and specifies exactly what is returned (description, parameters, headers, request body, saved response examples, version). It also distinguishes itself from siblings like get_api_collection (which gets a collection) and list_api_collections (which lists) by focusing on a single endpoint. The identification methods are clearly outlined, leaving no ambiguity about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains how to identify the endpoint (by endpoint_id or by method + path) but does not explicitly contrast with alternatives like get_api_collection or list_api_collections. The context is clear: use this when you need full details of a single endpoint. However, it lacks explicit exclusions or when-not-to-use guidance, so it's not a perfect 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_requestARead-onlyInspect
Get the full request and response (headers + body) of one captured webhook by id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| subdomain | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a safe read operation (readOnlyHint=true, destructiveHint=false). The description adds behavioral context by specifying exactly what is returned (full request and response including headers and body), which goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly packed sentence that immediately states the action, resource, and scope. No wasted words; every part contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no output schema, the description adequately conveys the return value (full request/response with headers and body) and the uniqueness (one webhook by id). It does not explain how to obtain the id or the subdomain, but given sibling list_requests, this is acceptable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for parameter meaning. It only mentions 'by id' but does not explain the format or role of 'id' or 'subdomain'. This leaves the agent without enough semantic detail for the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (Get), the specific resource (full request and response with headers and body), and the scope (one captured webhook by id). This differentiates it from sibling tools like list_requests, which lists multiple items, and replay_request, which resends a webhook.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool: when you need a single captured webhook's full details by its id. It does not explicitly mention alternatives or exclusions, but the context is clear enough that an agent can infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
import_api_specAInspect
Import an OpenAPI 3.x document (as JSON), a Postman v2.x collection (JSON) or a curl command into a new collection, or into collection_id. All or nothing, and plan limits are checked first. Credentials are never imported (they become variables). Convert YAML to JSON before sending.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Name for the new collection. | |
| format | Yes | ||
| content | Yes | The document (object or JSON string), or the curl command. | |
| collection_id | No | Add to this collection instead of creating one. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint: false, destructiveHint: false, but do not convey the mutating nature of the operation. The description adds value by stating that credentials are never imported (they become variables) and that the operation is all-or-nothing with plan limits checked first. These are critical behaviors not captured in annotations. However, it doesn't mention what happens to existing collection contents when adding to one, or whether it overwrites.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each adding essential information. It doesn't waste words, front-loads the formats and target, then covers key constraints (all-or-nothing, plan limits, credential handling, YAML conversion). Efficient and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and moderate parameter coverage, the description covers the essentials: formats, target, safety behavior, and prerequisites. It doesn't describe return values, but that might be less critical for a mutating tool. It could benefit from mentioning error paths (e.g., plan limit failure), but it does hint at that. Overall, adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 75% of parameters, but the description adds meaning beyond the schema: it clarifies that 'content' can be a document or curl command, and that 'collection_id' is optional since a new collection can be created. It also explains that credentials become variables. This supplements the schema's sparse descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool imports OpenAPI 3.x, Postman v2.x, or curl into a new or existing collection. It names the specific input formats and the target collection, distinguishing it from sibling tools like create_api_collection which likely creates an empty collection. It is a specific verb+resource with clear scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool (for importing API specs) and mentions that YAML must be converted to JSON, which is a key prerequisite. However, it doesn't explicitly contrast with alternatives like upsert_api_endpoint or create_api_collection, but the focus on importing external specs is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_api_collectionsARead-onlyInspect
List the workspace's API collections (saved endpoints with examples and environments). Start here to find a collection_id.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is covered. The description adds a little context about collection contents (examples and environments) and the intended use, but does not go deeper into response shape, pagination, or other behavioral traits. With annotations present, this is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence: it leads with the action, specifies the resource, adds a clarifying parenthetical, and ends with a practical use-case. Every word earns its place, with zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list tool with no parameters and no output schema, the description gives the essential information: what is being listed and why an agent would call it (to find a collection_id). It doesn't describe the return format, but since the purpose is to locate an ID, the missing detail is minor. With annotations covering risk, this is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the schema is empty and the baseline is 4. The description doesn't need to explain parameters; it only optionally notes the workspace scope, which is already implied by 'the workspace's'. No parameter clarification is missing.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and clearly identifies the resource ('the workspace's API collections'), with a parenthetical clarifying what collections are (saved endpoints with examples and environments). It also states the intended outcome ('Start here to find a collection_id'), which distinguishes it from siblings like get_api_collection that require an ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage context: 'Start here to find a collection_id.' This tells an agent when to use this tool (as the first step for operations needing a collection ID). However, it does not explicitly state when not to use it or name alternative tools for the same purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_api_monitorsARead-onlyInspect
See which endpoints of a collection are checked on a schedule (Pro/Team monitors) and how they are doing: state (healthy, failing, blip, paused, waiting), the last check with its status, latency and error, and since when it has been failing. Use it to find out what is broken in staging or production, then read the endpoint and its code. Read-only: people decide what to monitor.
| Name | Required | Description | Default |
|---|---|---|---|
| collection_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint true and destructiveHint false, and the description reinforces this with 'Read-only: people decide what to monitor.' It also discloses behavioral output details beyond annotations: state values, last check status, latency, error, and failure duration.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with the core purpose, followed by output specifics, use case, and read-only note. Every sentence adds value: purpose, result details, when to use, and safety.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no output schema, the description is thorough: it explains what is listed, enumerates returned state fields, gives a concrete use case, and notes plan/read-only constraints. It gives an agent enough to call it correctly and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only describes collection_id as a required string, and schema coverage is 0%. The description indirectly clarifies its role by saying 'which endpoints of a collection,' but it does not explicitly explain the ID format, provenance, or how to obtain it, so it only partially compensates for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'See which endpoints of a collection are checked on a schedule (Pro/Team monitors)' and details what information is provided. This clearly distinguishes monitors from sibling tools like list_api_collections or list_api_runs by focusing on scheduled checks and health status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a clear context for use: 'Use it to find out what is broken in staging or production, then read the endpoint and its code.' It does not explicitly name alternatives or say when not to use it, but the intended scenario is well defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_api_proposalsARead-onlyInspect
See what happened to the changes you proposed. Some workspaces review AI changes: your write tools then answer pending_review and change nothing until a teammate approves. This lists the latest proposals with their status (pending, approved, rejected with the reviewer's reason, or failed with why) so you can tell whether a change went through.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds context about the review workflow (pending_review, statuses) without contradicting the annotations. It explains what the statuses mean (pending, approved, rejected with reason, failed with why), adding value beyond the annotation's safety hint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the direct purpose ('See what happened to the changes you proposed') and then provides necessary context and status details. No wasted words; it efficiently conveys both when to use and what to expect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 no parameters and no output schema, the description is sufficient: it explains the review context, the statuses returned, and the purpose. It doesn't mention pagination or sorting, but these are not critical for a simple list tool, and the description covers everything an agent needs to decide to call it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description doesn't need to explain any. Per rubric, 0 params baseline is 4. The description adds no parameter info, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists proposals and their statuses, and frames it as checking what happened to proposed changes. This distinguishes it from sibling list tools (collections, runs, requests) by focusing on the proposal review workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides context that some workspaces review AI changes and that this tool tells whether a change went through, which implies when to use it. It doesn't explicitly name alternatives or exclusions, but the purpose is clear enough that an agent would know this is the tool for checking proposal status, not for listing collections or requests.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_api_runsARead-onlyInspect
Recent runs of an endpoint (newest first, default 5): who/what was sent and what came back. Use to see what happened the last time it was run.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. | |
| limit | No | 1 to 20. | |
| method | No | HTTP method of the route, e.g. POST. Use with path instead of endpoint_id. | |
| endpoint_id | No | Id of the endpoint. Alternative to method + path. | |
| collection_id | Yes | Id from list_api_collections. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the operation read-only and non-destructive. The description adds useful behavioral details beyond that: newest-first ordering, default limit of 5, and that each run records the sent request and returned response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no redundancy. The key behavior, ordering, default count, and content summary are front-loaded, and the usage statement follows immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, so the description's summary of what a run returns ('who/what was sent and what came back') helps fill that gap. It is sufficiently complete for invoking the tool, though additional response-shape detail would be even better.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all five parameters. The description adds only the default-limit behavior and hints at what selecting an endpoint means, which is marginal value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific action and resource: listing recent runs of an endpoint, with ordering, default count, and payload summary. This is specific enough to distinguish from siblings like list_requests, even though no sibling is named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells the agent when to use it: 'Use to see what happened the last time it was run.' It gives a clear context but does not name alternatives or exclusion conditions, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_requestsARead-onlyInspect
List recent webhooks/requests captured for a tunnel. Returns id, method, path, status and bodies.
| Name | Required | Description | Default |
|---|---|---|---|
| subdomain | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description adds behavioral detail by specifying the returned fields (id, method, path, status, bodies) and the 'recent' qualifier, which sets expectations about scope and output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundancy. It efficiently conveys purpose and return fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, scope, and return fields. With no output schema and only one parameter, this is largely sufficient. It could mention pagination or limits, but 'recent' hints at a bounded set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description doesn't explicitly link the 'subdomain' parameter to the tunnel mentioned. However, the phrase 'for a tunnel' implies the subdomain identifies which tunnel, providing some semantic context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists recent webhooks/requests captured for a tunnel, specifying the action (list) and the resource (captured requests). It also lists the return fields, distinguishing it from sibling tools like get_request (single) and list_tunnels.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: use it to list recent captured requests for a tunnel. It doesn't explicitly mention alternatives or exclusions, but the purpose is unambiguous enough to guide tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tunnelsARead-onlyInspect
List the user's Pipehero tunnels and whether each is currently online.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, covering the safety profile. The description adds the scoping to the user's own tunnels and the 'currently online' status, giving modest extra context beyond the structured annotations, though no rate limits or auth details are disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly written sentence that front-loads the action and resource, earning its place with zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, parameterless, read-only list tool, the description adequately conveys what the tool does and what the user gets (tunnels plus online status). The lack of an output schema or pagination details is not a major gap given the tool's simplicity and the annotation coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline is 4 per the rubric. There is no parameter information needed, and the description correctly implies that no inputs are required to list tunnels.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and identifies the exact resource ('the user's Pipehero tunnels') plus the output detail ('whether each is currently online'). This clearly distinguishes it from the sibling request/webhook tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear it is for listing the user's tunnels and their online status, providing unmistakable context for use. It doesn't explicitly name alternatives or exclusions, but the sibling tools are all request-focused, so the usage context is evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replay_requestADestructiveInspect
Replay a captured webhook to the user's localhost (the tunnel CLI must be running).
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| subdomain | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive and non-idempotent behavior, so the bar is lower. The description adds the destination ('user's localhost') and the required tunnel CLI, which are not in the annotations. It doesn't detail potential side effects, but the key prerequisites are covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no redundant information. It front-loads the action and includes a relevant parenthetical about the CLI requirement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the core purpose and a prerequisite, making it minimally usable. However, it lacks detail on parameter meanings (id/subdomain) and doesn't describe expected outcomes or side effects, especially given the destructiveHint. It's adequate for a simple tool but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero description coverage, and the description does not elaborate on the 'id' or 'subdomain' parameters. While one could infer that id identifies the webhook and subdomain the tunnel, it's not explicitly stated. This is a significant gap given the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: replaying a captured webhook to the user's localhost. It distinguishes itself from siblings like list_requests and send_test_webhook by specifying the replay action and destination. The prerequisite about the tunnel CLI adds useful scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: the tool is for replaying a captured webhook to localhost, and it notes a key prerequisite ('tunnel CLI must be running'). However, it does not explicitly mention alternatives or exclusions, such as comparing to send_test_webhook for new webhooks.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
run_api_endpointADestructiveInspect
Send an endpoint against an environment and return the real response (status, headers, body up to 20 KB). A local environment goes through the user's tunnel to their localhost (the CLI must be running); staging/prod are sent from Pipehero's cloud (Pro/Team) to public addresses only. Sending to a prod environment with a write method needs confirm_write_to_prod: true, which you should only pass after the user agrees. Use it to check that the code you wrote behaves as documented.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. | |
| method | No | HTTP method of the route, e.g. POST. Use with path instead of endpoint_id. | |
| variables | No | Values for {{variables}} the environment doesn't define, e.g. {"id": "ch_123"}. | |
| endpoint_id | No | Id of the endpoint. Alternative to method + path. | |
| environment | Yes | Environment name or id, e.g. local. | |
| collection_id | Yes | Id from list_api_collections. | |
| confirm_write_to_prod | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations: it discloses the 20 KB response body limit, the local tunnel/CLI dependency, the cloud routing for staging/prod, and the requirement to confirm prod writes only after user agreement. These details align with destructiveHint=true and readOnlyHint=false but add valuable context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: four sentences each carrying unique value, front-loaded with the core purpose, then environment behavior, safety confirmation, and use case. There is no filler or repeated schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, no output schema, and meaningful side effects, the description covers the operation, environment routing, response limits, approval requirements, and intended use case. The few remaining details (e.g., endpoint_id vs method+path alternatives) are already in the input schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is high (86%), but the description adds essential meaning for the undocumented confirm_write_to_prod parameter, explaining it must only be set after user agreement for prod writes. It also clarifies environment semantics (local vs staging/prod) beyond the schema's simple examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: sending an endpoint against an environment and returning the real response (status, headers, body up to 20 KB). It also clarifies the use case ('check that the code you wrote behaves as documented'). However, it does not explicitly name or contrast sibling tools, so an agent must infer the distinction from the sibling names.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives a concrete use case ('Use it to check that the code you wrote behaves as documented') and provides environment-specific constraints (local requires CLI, staging/prod go through cloud, prod write needs confirmation). It does not mention when to avoid this tool or point to alternatives like replay_request or send_test_webhook, so exclusions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_captured_requestAIdempotentInspect
Document a real request captured by a tunnel (get its id from list_requests). If an endpoint already covers the route, the response is added to it as an example; otherwise an endpoint is created from the request. Credentials, cookies and signatures are replaced by {{variables}} and only JSON bodies are kept. A response already saved as an example is not duplicated. Use it to document webhooks and calls you have only seen in traffic.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | ||
| folder | No | Folder for a newly created endpoint, created by name if missing. | |
| method | No | With path: the endpoint that should receive the example. | |
| tunnel | Yes | Subdomain of the tunnel that captured the request. | |
| request_id | Yes | Id of the captured request, from list_requests. | |
| endpoint_id | No | Add the example to this endpoint instead of matching by route. Alternative to method + path. | |
| collection_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide idempotentHint and destructiveHint, but the description adds substantial behavioral detail: credentials/cookies/signatures are replaced with {{variables}}, only JSON bodies are kept, and responses already saved as examples are not duplicated. It also discloses the side effect of creating an endpoint when needed. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core action, then conditional behavior, then usage guidance. Every sentence adds value—no filler or repetition. It efficiently covers functionality, transformation, idempotency, and use case without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with no output schema, the description covers the main workflow, parameter relationships, and side effects well. It is missing some explicit detail on collection_id/path and error scenarios, but the essential calling context (where to get request_id, what happens on existing vs new endpoint, data transformation) is complete enough for an agent to act.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 71%, so the description needs to compensate. It adds meaning for method + path and endpoint_id by explaining they are alternatives, and clarifies request_id's source. However, collection_id and path are not elaborated, but the description's workflow context gives enough operational guidance beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb 'Document' and a distinct resource: a real request captured by a tunnel. It clearly differentiates itself from siblings by explaining the conditional behavior (add as example vs create endpoint) and explicitly says 'Use it to document webhooks and calls you have only seen in traffic,' which separates it from manual example tools like add_api_example or upsert_api_endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context: use it for requests captured by a tunnel, with a pointer to list_requests for the request_id. It explains the decision logic (existing endpoint vs new endpoint) and the intended use case, but it does not explicitly name sibling alternatives or state when not to use it, so it falls short of full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_test_webhookADestructiveInspect
Send a generated test webhook to the user's localhost (the tunnel CLI must be running). Provide a provider (stripe, github, shopify, clerk, slack, resend, paddle, polar, lemonsqueezy) and optional event for a realistic sample payload, or pass a custom JSON body. Pro plan required.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Custom JSON body (overrides the template) | |
| event | No | ||
| provider | Yes | ||
| subdomain | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true and openWorldHint=true, so the description adds value by disclosing the localhost target, the running tunnel CLI prerequisite, and the Pro plan requirement. It doesn't elaborate on side effects, but with annotations covering the safety profile, this additional context is meaningful and not contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences. The first sentence states purpose and a key prerequisite; the second covers parameter options. No redundant words, and it is front-loaded with the action verb. Every sentence contributes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers invocation context (tunnel, Pro plan), parameter options (provider list, event, body), and the target. However, it omits any description of the subdomain parameter and does not mention response format or error behavior, though no output schema exists. For a moderately complex tool, it is mostly complete but not fully.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is low (25%), so the description compensates by enumerating valid provider values, explaining that 'event' provides a realistic sample payload, and clarifying 'body' as a custom override. However, the required 'subdomain' parameter is entirely unexplained in both schema and description, which is a significant semantic gap for a required field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Send a generated test webhook to the user's localhost,' which is a specific verb+resource+target. It differentiates from siblings like get_request, list_requests, and replay_request by emphasizing generation and sending of a test webhook. The provider list adds concrete scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by stating the prerequisite ('the tunnel CLI must be running') and explaining two usage modes: provider/event for realistic payloads or custom body. It doesn't explicitly exclude alternatives or name when not to use it, but the context is sufficient for an agent to decide when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_long_requestsAIdempotentInspect
Opt a tunnel into a 120-second ingress timeout instead of the 30-second default — for tool calls that legitimately run long, e.g. an MCP server exposed through the tunnel. Persists on the tunnel; pass enabled: false to revert to the 30-second default.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| subdomain | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=true), the description discloses that the change 'Persists on the tunnel' and that it can be reverted by passing enabled:false. It also explains the effect (extends timeout from 30 to 120 seconds), adding meaningful behavioral context that annotations do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the action, and includes a concrete example and revert instruction. Every sentence adds value, with no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation with no output schema, the description adequately covers the tool's purpose, effect, persistence, and how to revert. It lacks an explicit statement about the return value, but given the simplicity and the presence of sibling context, this is a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It explains the 'enabled' parameter by noting that false reverts the timeout, and implies that 'subdomain' identifies the target tunnel. However, subdomain is not explicitly described, and the exact relationship between the parameters and the timeout change is only partially filled in.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb phrase 'Opt a tunnel into a 120-second ingress timeout' and clearly identifies the resource (tunnel) and the change (timeout increase). It distinguishes from sibling tools which all deal with requests/webhooks rather than tunnel configuration, so there is no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use: 'for tool calls that legitimately run long, e.g. an MCP server exposed through the tunnel.' It also explains how to revert via 'pass enabled: false to revert to the 30-second default.' While it doesn't name alternative tools or give negative exclusions, the context is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_ws_passthroughAIdempotentInspect
Opt a tunnel into WebSocket passthrough, so an application-level WebSocket connection (e.g. a mobile/web app's own realtime feature) can be relayed to your localhost. Pro/Team plan required to enable; pass enabled: false to disable on any plan.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | ||
| subdomain | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare idempotentHint=true and destructiveHint=false, so the description adds value with plan restrictions and disable behavior. It does not contradict annotations and gives practical context beyond the structured data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loads the primary action, and includes only essential details (plan requirement and how to disable). There is no redundant language, making it highly concise and efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple setter with two parameters and no output schema, the description covers core purpose and plan constraints but omits explanation of the subdomain parameter and any side effects or persistence details. This is adequate but not fully complete for a low-coverage schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate for parameter meaning. It explains 'enabled' (with 'pass enabled: false') but fails to describe the 'subdomain' parameter, leaving a required parameter unexplained. This is a significant gap in a low-coverage situation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Opt a tunnel into WebSocket passthrough') and specifies the resource (a tunnel) and its purpose (relaying WebSocket connections to localhost). It effectively distinguishes from request-focused siblings by focusing on tunnel configuration, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage context by mentioning the plan requirement ('Pro/Team plan required to enable') and how to disable ('pass enabled: false'), but it does not explicitly contrast with alternative tools or state when not to use it. This is adequate guidance for when to apply the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
upsert_api_endpointAIdempotentInspect
Document an endpoint: creates it, or updates the existing one for the same method + path. Use it whenever you add or change a route in the code, so the docs stay true. Only the fields you send change. path may use :id, {id} or {{id}} for variables. folder is created by name if missing. Send version (from get_api_endpoint) to avoid overwriting a teammate's edit; a stale version is rejected.
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | Example request body (any JSON). null clears it. | |
| kind | No | `event` for a webhook your app sends. | |
| name | No | Short title, e.g. Create a charge. Defaults to METHOD /path. | |
| path | Yes | ||
| folder | No | Folder name, e.g. Charges. | |
| method | Yes | ||
| params | No | Documented fields. | |
| headers | No | ||
| version | No | ||
| description | No | ||
| collection_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavior beyond the annotations: partial updates ('Only the fields you send change'), path-variable syntax, folder auto-creation, and optimistic-concurrency behavior where a stale version is rejected. These are exactly the non-obvious call-time behaviors an agent needs to know.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five short sentences, each delivering a distinct piece of information. The primary behavior is front-loaded before update semantics, path variables, folder creation, and version handling; there is no filler or redundancy with annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter upsert tool with no output schema, the description covers the tricky parts: when to call it, update scope, path variable syntax, folder creation, and version conflicts. It could also explain the return value or how to obtain the version after creation, but nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 45% schema coverage, the description compensates for the most important parameters: path variable forms, folder creation, and version source/conflict behavior. It does not explain every parameter, but several already have schema descriptions and the rest are reasonably inferable from context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description leads with a specific action—'Document an endpoint: creates it, or updates the existing one for the same method + path'—and precisely defines the upsert key. This makes the tool's role unambiguous relative to siblings like delete_api_endpoint or get_api_endpoint.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Use it whenever you add or change a route in the code' is a clear, explicit trigger condition, and the rationale 'so the docs stay true' is provided. It lacks an explicit when-not or named alternative, but the upsert semantics make the intended context clear.
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 tool update
- Added
list_api_monitors
1 tool update
- Added
list_api_proposals
1 tool update
- Added
check_api_drift
1 tool update
- Added
save_captured_request
1 tool update
- Changed
import_api_spec1 field changed- changed
Input schema / properties / format / enumPrevious value: -[ - "openapi", - "postman", - "curl" -]New value: +[ + "openapi", + "postman", + "har", + "curl" +]
11 tool updates
- Added
add_api_example - Added
create_api_collection - Added
delete_api_endpoint - Added
export_api_collection - Added
get_api_collection - Added
get_api_endpoint - Added
import_api_spec - Added
list_api_collections - Added
list_api_runs - Added
run_api_endpoint - Added
upsert_api_endpoint
1 tool update
- Added
set_ws_passthrough
1 tool update
- Added
set_long_requests
1 tool update
- Added
send_test_webhook
Related MCP Connectors
Webhook, email, WebSocket and tunnel testing for AI agents: capture, wait, verify, replay.
Webhook URLs for AI agents: receive, wait for, replay, sign and verify webhooks (Stripe, GitHub…).
Instant no-signup webhook & HTTP-request inspector for testing webhooks and agent tool-callbacks.
- webhook.coOAuthco.webhook
Receive, inspect, replay and deliver webhooks — with signature verification and agent triggers.
Related MCP Servers
- AlicenseAqualityCmaintenanceCaptures incoming webhook/HTTP requests and lets AI assistants inspect, wait for, and replay them to debug webhook integrations.6MIT
- AlicenseAqualityDmaintenanceEnables AI agents to create disposable webhook URLs, capture incoming HTTP requests, inspect headers and bodies, and replay them against local or remote endpoints, streamlining the webhook handler development loop.53 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to create webhook URLs, wait for incoming deliveries, inspect payloads, and replay or send signed webhook events to a local handler.314 npmMIT
- AlicenseAqualityDmaintenanceWebhook management and testing tools for AI agents. Provides tools for sending, validating, generating, and debugging webhooks.534 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.