io.github.pipehero/pipehero
REMOTE · MCP.PIPEHERO.APP
Debug webhooks from your AI agent: inspect and replay captured webhooks on localhost.
Available components
Last scanned (4 hours ago)
Scores higher than 96% of remote servers
Reachable. Last reached 6 Nov 2026.
Category Testing and QA
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security89
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- HSTS check failed: the Strict-Transport-Security header is absent. See how to fix → View diagnostics → Fail
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability72
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3578 tokens (~143/item across 25 items; 25 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- All 3 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
- An AI judge read all 25 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
- Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Checks we ran (13)
- TLS certificate
- Authorization
- HTTPS
- HSTS header
- DNSSEC
- Transport
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
Does not apply to this hosted endpoint (2)
- Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
- Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
The score does not measure everything. What the score does not measure →
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 6 Nov 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 5 Nov 26 0
- Stability: pass → 0.97 functional
- 29 Oct 26 +3
- Schema quality: 118 → 143 ▼ functional
- Tool coverage: 62% → 100% ▲ functional
- Schema quality: good → excellent functional
- MCP protocol version: 2024-11-05 → 2025-06-18 functional
- Server version: 0.1.17 → 0.1.18 functional
- “add_api_example” reworded the description of “body” cosmetic
- “add_api_example” reworded the description of “headers” cosmetic
- “add_api_example” reworded the description of “status” cosmetic
- “add_api_example” reworded the description of “status_text” cosmetic
- “check_api_drift” reworded the description of “collection_id” cosmetic
- “create_api_collection” reworded the description of “description” cosmetic
- “create_api_collection” reworded the description of “name” cosmetic
- “export_api_collection” reworded the description of “collection_id” cosmetic
- “export_api_collection” reworded the description of “format” cosmetic
- “get_api_collection” reworded the description of “collection_id” cosmetic
- “get_request” reworded the description of “id” cosmetic
- “get_request” reworded the description of “subdomain” cosmetic
- “import_api_spec” reworded the description of “content” cosmetic
- “import_api_spec” reworded the description of “format” cosmetic
- “list_api_monitors” reworded the description of “collection_id” cosmetic
- “list_api_runs” reworded the description of “limit” cosmetic
- “list_requests” reworded the description of “subdomain” cosmetic
- “replay_request” reworded the description of “id” cosmetic
- “replay_request” reworded the description of “subdomain” cosmetic
- “run_api_endpoint” reworded the description of “confirm_write_to_prod” cosmetic
- “save_captured_request” reworded the description of “collection_id” cosmetic
- “save_captured_request” reworded the description of “path” cosmetic
- “send_test_webhook” reworded the description of “event” cosmetic
- “send_test_webhook” reworded the description of “provider” cosmetic
- “send_test_webhook” reworded the description of “subdomain” cosmetic
- “set_long_requests” reworded the description of “enabled” cosmetic
- “set_long_requests” reworded the description of “subdomain” cosmetic
- “set_ws_passthrough” reworded the description of “enabled” cosmetic
- “set_ws_passthrough” reworded the description of “subdomain” cosmetic
- “share_api_collection” reworded the description of “collection_id” cosmetic
- “upsert_api_endpoint” reworded the description of “body” cosmetic
- “upsert_api_endpoint” reworded the description of “collection_id” cosmetic
- “upsert_api_endpoint” reworded the description of “description” cosmetic
- “upsert_api_endpoint” reworded the description of “headers” cosmetic
- “upsert_api_endpoint” reworded the description of “method” cosmetic
- “upsert_api_endpoint” reworded the description of “path” cosmetic
- “upsert_api_endpoint” reworded the description of “version” cosmetic
- 10 Oct 26 −1
- Schema quality: 106 → 118 ▼ functional
- Tool coverage: 56% → 62% ▲ functional
- 28 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 25 Sept 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 22 Sept 26 0
- New tool “delete_api_endpoint”, which the server declares destructive security
- New tool “run_api_endpoint”, which the server declares destructive security
- Schema quality: pass → fail ▼ functional
- Tool coverage: 8% → 56% ▲ functional
- Server version: 0.1.12 → 0.1.15 functional
- New tool “add_api_example” functional
- New tool “check_api_drift” functional
- New tool “create_api_collection” functional
- New tool “export_api_collection” functional
- New tool “get_api_collection” functional
- New tool “get_api_endpoint” functional
- New tool “import_api_spec” functional
- New tool “list_api_collections” functional
- New tool “list_api_monitors” functional
- New tool “list_api_proposals” functional
- New tool “list_api_runs” functional
- New tool “save_captured_request” functional
- New tool “upsert_api_endpoint” functional
- 26 Aug 26 0
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 6 Nov 2026 · Probed https://mcp.pipehero.app/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=pipehero.app | CN=WE1,O=Google Trust Services,C=US | 29 Oct 2026 | 27 Jan 2027 | ECDSA 256 | ECDSA-SHA256 | afbdda6508ee2c913b5787948486d67 |
| SANs: pipehero.app, *.pipehero.app | ||||||
| CN=WE1,O=Google Trust Services,C=US (CA) | CN=GTS Root R4,O=Google Trust Services LLC,C=US | 13 Dec 2023 | 20 Feb 2029 | ECDSA 256 | ECDSA-SHA384 | 7ff31977972c224a76155d13b6d685e3 |
| CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) | CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE | 15 Nov 2023 | 28 Jan 2028 | ECDSA 384 | SHA256-RSA | 7fe530bf331343bedd821610493d8a1b |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of mcp.pipehero.app. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | Trust anchor | 20326, 38696 | 8, 8 | Verified |
| app. | DS published | 23684 | 8 | Verified |
| pipehero.app. | No DS | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer resource_metadata="https://mcp.pipehero.app/.well-known/oauth-protected-resource"
Bearer resource_metadata="https://mcp.pipehero.app/.well-known/oauth-protected-resource" Protected resource metadata
| Document | https://mcp.pipehero.app/.well-known/oauth-protected-resource |
|---|---|
| Retrieved | Yes |
| Resource | https://mcp.pipehero.app/mcp |
| Authorisation server | https://mcp.pipehero.app |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://mcp.pipehero.app/mcp | Verified | 200 | |
| http (plaintext) | http://mcp.pipehero.app/mcp | HTTPS enforced | 301 | https://mcp.pipehero.app/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
add_api_example ~246
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 | Type | Req | Description |
|---|---|---|---|
| body | object|array|string|number|boolean|null | – | Example response body, any JSON, e.g. {"error": "card_declined"}. |
| collection_id | string | yes | Id from list_api_collections. |
| endpoint_id | string | – | Id of the endpoint. Alternative to method + path. |
| headers | array | – | Response headers of the example, e.g. [{"name": "Content-Type", "value": "application/json"}]. |
| method | string | – | HTTP method of the route, e.g. POST. Use with path instead of endpoint_id. |
| name | string | yes | e.g. Card declined. |
| path | string | – | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. |
| status | integer | yes | HTTP status code of the response, e.g. 402. |
| status_text | string | – | Reason phrase, e.g. Payment Required. |
No output schema declared.
No examples provided.
check_api_drift ~170
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 | Type | Req | Description |
|---|---|---|---|
| collection_id | string | yes | Id from list_api_collections. |
| limit | integer | – | How many recent requests to compare (default 200, max 500). |
| tunnel | string | yes | Subdomain of the tunnel whose traffic to compare. |
No output schema declared.
No examples provided.
create_api_collection ~66
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 | Type | Req | Description |
|---|---|---|---|
| description | string | – | What the API is for. |
| name | string | yes | Collection name, e.g. Payments API. |
No output schema declared.
No examples provided.
delete_api_endpoint ~121
Delete an endpoint and its examples. Use when the route no longer exists in the code. Cannot be undone.
| Name | Type | Req | Description |
|---|---|---|---|
| collection_id | string | yes | Id from list_api_collections. |
| endpoint_id | string | – | Id of the endpoint. Alternative to method + path. |
| method | string | – | HTTP method of the route, e.g. POST. Use with path instead of endpoint_id. |
| path | string | – | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. |
No output schema declared.
No examples provided.
export_api_collection ~82
Export a collection as an OpenAPI 3.1 or Postman 2.1 document. Handy to read the whole API at once.
| Name | Type | Req | Description |
|---|---|---|---|
| collection_id | string | yes | Id from list_api_collections. |
| format | string | – | openapi (OpenAPI 3.1, the default) or postman (Postman 2.1). |
No output schema declared.
No examples provided.
get_api_collection ~51
Get one collection's folders, endpoints (id, method, path, name, version, example count) and environments (with their variables).
| Name | Type | Req | Description |
|---|---|---|---|
| collection_id | string | yes | Id from list_api_collections. |
No output schema declared.
No examples provided.
get_api_endpoint ~134
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 | Type | Req | Description |
|---|---|---|---|
| collection_id | string | yes | Id from list_api_collections. |
| endpoint_id | string | – | Id of the endpoint. Alternative to method + path. |
| method | string | – | HTTP method of the route, e.g. POST. Use with path instead of endpoint_id. |
| path | string | – | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. |
No output schema declared.
No examples provided.
get_api_share_link ~175
Get the shareable link of an endpoint (a read-only page with its docs, examples and latest run, secrets hidden), who can open it and who was invited. Use it to put the link in a PR, an issue or a message. Each endpoint has one link that never changes; `shared: false` means it has none yet (see share_api_endpoint).
| Name | Type | Req | Description |
|---|---|---|---|
| collection_id | string | yes | Id from list_api_collections. |
| endpoint_id | string | – | Id of the endpoint. Alternative to method + path. |
| method | string | – | HTTP method of the route, e.g. POST. Use with path instead of endpoint_id. |
| path | string | – | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. |
No output schema declared.
No examples provided.
get_request ~73
Get the full request and response (headers + body) of one captured webhook by id.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Id of the captured request, from list_requests. |
| subdomain | string | yes | Tunnel subdomain, from list_tunnels, e.g. myapp for https://myapp.t.pipehero.app. |
No output schema declared.
No examples provided.
import_api_spec ~174
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 | Type | Req | Description |
|---|---|---|---|
| collection_id | string | – | Add to this collection instead of creating one. |
| content | object|string | yes | The document (object or JSON string), or the curl command, e.g. curl -X POST https://api.example.com/v1/charges. |
| format | string | yes | What `content` is: an OpenAPI 3.x document, a Postman v2.x collection, a HAR file or a curl command. |
| name | string | – | Name for the new collection. |
No output schema declared.
No examples provided.
list_api_collections ~32
List the workspace's API collections (saved endpoints with examples and environments). Start here to find a collection_id.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_api_monitors ~109
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 | Type | Req | Description |
|---|---|---|---|
| collection_id | string | yes | Id from list_api_collections. |
No output schema declared.
No examples provided.
list_api_proposals ~78
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.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_api_runs ~157
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 | Type | Req | Description |
|---|---|---|---|
| collection_id | string | yes | Id from list_api_collections. |
| endpoint_id | string | – | Id of the endpoint. Alternative to method + path. |
| limit | integer | – | How many runs to return, 1 to 20 (default 5). |
| method | string | – | HTTP method of the route, e.g. POST. Use with path instead of endpoint_id. |
| path | string | – | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. |
No output schema declared.
No examples provided.
list_requests ~61
List recent webhooks/requests captured for a tunnel. Returns id, method, path, status and bodies.
| Name | Type | Req | Description |
|---|---|---|---|
| subdomain | string | yes | Tunnel subdomain, from list_tunnels, e.g. myapp for https://myapp.t.pipehero.app. |
No output schema declared.
No examples provided.
list_tunnels ~22
List the user's Pipehero tunnels and whether each is currently online.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
replay_request ~71
Replay a captured webhook to the user's localhost (the tunnel CLI must be running).
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Id of the captured request, from list_requests. |
| subdomain | string | yes | Tunnel subdomain, from list_tunnels, e.g. myapp for https://myapp.t.pipehero.app. |
No output schema declared.
No examples provided.
run_api_endpoint ~285
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 | Type | Req | Description |
|---|---|---|---|
| collection_id | string | yes | Id from list_api_collections. |
| confirm_write_to_prod | boolean | – | Needed to send a write method (POST, PUT, PATCH, DELETE) to a prod environment. Only pass true after the user agrees. |
| endpoint_id | string | – | Id of the endpoint. Alternative to method + path. |
| environment | string | yes | Environment name or id, e.g. local. |
| method | string | – | HTTP method of the route, e.g. POST. Use with path instead of endpoint_id. |
| path | string | – | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. |
| variables | object | – | Values for {{variables}} the environment doesn't define, e.g. {"id": "ch_123"}. |
No output schema declared.
No examples provided.
save_captured_request ~231
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 | Type | Req | Description |
|---|---|---|---|
| collection_id | string | yes | Id from list_api_collections. |
| endpoint_id | string | – | Add the example to this endpoint instead of matching by route. Alternative to method + path. |
| folder | string | – | Folder for a newly created endpoint, created by name if missing. |
| method | string | – | With path: the endpoint that should receive the example. |
| path | string | – | With method: route path of the endpoint, e.g. /v1/charges/:id. |
| request_id | string | yes | Id of the captured request, from list_requests. |
| tunnel | string | yes | Subdomain of the tunnel that captured the request. |
No output schema declared.
No examples provided.
send_test_webhook ~193
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 | Type | Req | Description |
|---|---|---|---|
| body | string | – | Custom JSON body (overrides the template) |
| event | string | – | Provider event type, e.g. payment_intent.succeeded for stripe or push for github. Omit for the provider's default event. |
| provider | string | yes | Provider whose sample payload and signature to use: stripe, github, shopify, clerk, slack, resend, paddle, polar or lemonsqueezy. |
| subdomain | string | yes | Tunnel subdomain, from list_tunnels, e.g. myapp for https://myapp.t.pipehero.app. |
No output schema declared.
No examples provided.
set_long_requests ~121
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 | Type | Req | Description |
|---|---|---|---|
| enabled | boolean | yes | true for the 120-second timeout, false to go back to the 30-second default. |
| subdomain | string | yes | Tunnel subdomain, from list_tunnels, e.g. myapp for https://myapp.t.pipehero.app. |
No output schema declared.
No examples provided.
set_ws_passthrough ~123
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 | Type | Req | Description |
|---|---|---|---|
| enabled | boolean | yes | true to relay WebSocket connections to localhost (Pro/Team), false to turn it off. |
| subdomain | string | yes | Tunnel subdomain, from list_tunnels, e.g. myapp for https://myapp.t.pipehero.app. |
No output schema declared.
No examples provided.
share_api_collection ~172
Share a whole collection: every endpoint in it (including ones added later), with its examples and latest run, read-only and with secrets hidden. Environments are never shown and it can't be exported. Returns the collection's link, which never changes. With no other arguments it stays restricted to the workspace; set `link_access` or `invite` people only when the user asks to share it outside the team. get_api_collection returns the link as `share` once it exists.
| Name | Type | Req | Description |
|---|---|---|---|
| collection_id | string | yes | Id from list_api_collections. |
| invite | array | – | People to invite by email (at most 10). Each gets an email. |
| link_access | string | – | Who can open it with just the link. Omit to keep the current setting (restricted for a new share). |
No output schema declared.
No examples provided.
share_api_endpoint ~283
Create an endpoint's shareable link and return it. With no other arguments the link stays restricted: workspace members can open it (they sign in), which is enough for a PR or an internal message. Only when the user asks to share it outside the workspace: set `link_access` to `viewer` (anyone with the link can read) or `commenter` (Team plan; commenting asks for sign-in), or `invite` people by email (they get an email and sign in with that address). `restricted` turns the public link off; the URL stays the same. The page is read-only and always hides credentials and secrets.
| Name | Type | Req | Description |
|---|---|---|---|
| collection_id | string | yes | Id from list_api_collections. |
| endpoint_id | string | – | Id of the endpoint. Alternative to method + path. |
| invite | array | – | People to invite by email (at most 10). Each gets an email. |
| link_access | string | – | Who can open it with just the link. Omit to keep the current setting (restricted for a new share). |
| method | string | – | HTTP method of the route, e.g. POST. Use with path instead of endpoint_id. |
| path | string | – | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. |
No output schema declared.
No examples provided.
upsert_api_endpoint ~348
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 | Type | Req | Description |
|---|---|---|---|
| body | object|array|string|number|boolean|null | – | Example request body, any JSON, e.g. {"amount": 1000}. null clears it. |
| collection_id | string | yes | Id from list_api_collections. |
| description | string | – | What the endpoint does and when to call it. |
| folder | string | – | Folder name, e.g. Charges. |
| headers | array | – | Request headers to send, e.g. [{"name": "Authorization", "value": "Bearer {{token}}"}]. |
| kind | string | – | `event` for a webhook your app sends. |
| method | string | yes | HTTP method, e.g. POST. For an `event`, the method it is delivered with. |
| name | string | – | Short title, e.g. Create a charge. Defaults to METHOD /path. |
| params | array | – | Documented fields. |
| path | string | yes | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. |
| version | integer | – | The endpoint's `version` from get_api_endpoint. Omit for a new endpoint. |
No output schema declared.
No examples provided.
How do I install the io.github.pipehero/pipehero MCP server?
io.github.pipehero/pipehero is a hosted endpoint at https://mcp.pipehero.app/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · mcp.pipehero.app
claude mcp add --transport http pipehero-pipehero 'https://mcp.pipehero.app/mcp'
What is the io.github.pipehero/pipehero MCP server?
io.github.pipehero/pipehero is an MCP server listed in the public MCP registry as io.github.pipehero/pipehero. Debug webhooks from your AI agent: inspect and replay captured webhooks on localhost. This page covers its hosted endpoint (https://mcp.pipehero.app/mcp).
Is the io.github.pipehero/pipehero MCP server safe to use?
io.github.pipehero/pipehero scores 89 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.pipehero/pipehero MCP server expose?
io.github.pipehero/pipehero exposes 25 tools: list_tunnels, list_requests, get_request, replay_request, send_test_webhook, and 20 more. Their descriptions and schemas cost roughly 3,578 tokens of context every time the server is loaded.
Does the io.github.pipehero/pipehero MCP server require authentication?
Yes. io.github.pipehero/pipehero asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.
Is the io.github.pipehero/pipehero MCP server still maintained?
io.github.pipehero/pipehero is still listed as active in the MCP registry. We last reached this channel on 6 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What did VerifyMCP test on the io.github.pipehero/pipehero MCP server?
VerifyMCP ran 13 checks on io.github.pipehero/pipehero, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.