Validate Formhaus form definitions and simulate multi-step paths against the real engine.
Pipehero is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
Debug webhooks from your AI agent: inspect and replay captured webhooks on localhost.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http pipehero-mcp https://mcp.pipehero.app/mcp
# 2 — ask your agent for something these tools do
# list_tunnels, list_requests, get_request and 22 more
Pipehero costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http pipehero-mcp https://mcp.pipehero.app/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
25 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
List the user's Pipehero tunnels and whether each is currently online.
No parameter schema on file.
List recent webhooks/requests captured for a tunnel. Returns id, method, path, status and bodies.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| subdomain | string | yes | — |
Get the full request and response (headers + body) of one captured webhook by id.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | — |
| subdomain | string | yes | — |
Replay a captured webhook to the user's localhost (the tunnel CLI must be running).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| id | string | yes | — |
| subdomain | string | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| body | string | no | Custom JSON body (overrides the template) |
| event | string | no | — |
| provider | string | yes | — |
| subdomain | string | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| enabled | boolean | yes | — |
| subdomain | string | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| enabled | boolean | yes | — |
| subdomain | string | yes | — |
List the workspace's API collections (saved endpoints with examples and environments). Start here to find a collection_id.
No parameter schema on file.
Get one collection's folders, endpoints (id, method, path, name, version, example count) and environments (with their variables).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| collection_id | string | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| collection_id | string | yes | Id from list_api_collections. |
| endpoint_id | string | no | Id of the endpoint. Alternative to method + path. |
| method | string | no | HTTP method of the route, e.g. POST. Use with path instead of endpoint_id. |
| path | string | no | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| description | string | no | — |
| name | string | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| body | no | Example request body (any JSON). null clears it. | |
| collection_id | string | yes | — |
| description | string | no | — |
| folder | string | no | Folder name, e.g. Charges. |
| headers | array | no | — |
| kind | string | no | event for a webhook your app sends. |
| method | string | yes | — |
| name | string | no | Short title, e.g. Create a charge. Defaults to METHOD /path. |
| params | array | no | Documented fields. |
| path | string | yes | — |
| version | integer | no | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| body | no | Example response body (any JSON). | |
| collection_id | string | yes | Id from list_api_collections. |
| endpoint_id | string | no | Id of the endpoint. Alternative to method + path. |
| headers | array | no | — |
| method | string | no | HTTP method of the route, e.g. POST. Use with path instead of endpoint_id. |
| name | string | yes | e.g. Card declined. |
| path | string | no | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. |
| status | integer | yes | — |
| status_text | string | no | — |
Delete an endpoint and its examples. Use when the route no longer exists in the code. Cannot be undone.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| collection_id | string | yes | Id from list_api_collections. |
| endpoint_id | string | no | Id of the endpoint. Alternative to method + path. |
| method | string | no | HTTP method of the route, e.g. POST. Use with path instead of endpoint_id. |
| path | string | no | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| collection_id | string | no | Add to this collection instead of creating one. |
| content | yes | The document (object or JSON string), or the curl command. | |
| format | string | yes | — |
| name | string | no | Name for the new collection. |
Export a collection as an OpenAPI 3.1 or Postman 2.1 document. Handy to read the whole API at once.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| collection_id | string | yes | — |
| format | string | no | — |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| collection_id | string | yes | Id from list_api_collections. |
| confirm_write_to_prod | boolean | no | — |
| endpoint_id | string | no | Id of the endpoint. Alternative to method + path. |
| environment | string | yes | Environment name or id, e.g. local. |
| method | string | no | HTTP method of the route, e.g. POST. Use with path instead of endpoint_id. |
| path | string | no | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. |
| variables | object | no | Values for {{variables}} the environment doesn't define, e.g. {"id": "ch_123"}. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| collection_id | string | yes | — |
| endpoint_id | string | no | Add the example to this endpoint instead of matching by route. Alternative to method + path. |
| folder | string | no | Folder for a newly created endpoint, created by name if missing. |
| method | string | no | With path: the endpoint that should receive the example. |
| path | string | no | — |
| request_id | string | yes | Id of the captured request, from list_requests. |
| tunnel | string | yes | Subdomain of the tunnel that captured the request. |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| collection_id | string | yes | — |
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.
No parameter schema on file.
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 t
| Parameter | Type | Required | Notes |
|---|---|---|---|
| collection_id | string | yes | — |
| limit | integer | no | How many recent requests to compare (default 200, max 500). |
| tunnel | string | yes | Subdomain of the tunnel whose traffic to compare. |
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).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| collection_id | string | yes | Id from list_api_collections. |
| endpoint_id | string | no | Id of the endpoint. Alternative to method + path. |
| method | string | no | HTTP method of the route, e.g. POST. Use with path instead of endpoint_id. |
| path | string | no | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. |
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 ema
| Parameter | Type | Required | Notes |
|---|---|---|---|
| collection_id | string | yes | Id from list_api_collections. |
| endpoint_id | string | no | Id of the endpoint. Alternative to method + path. |
| invite | array | no | People to invite by email (at most 10). Each gets an email. |
| link_access | string | no | Who can open it with just the link. Omit to keep the current setting (restricted for a new share). |
| method | string | no | HTTP method of the route, e.g. POST. Use with path instead of endpoint_id. |
| path | string | no | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. |
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
| Parameter | Type | Required | Notes |
|---|---|---|---|
| collection_id | string | yes | — |
| invite | array | no | People to invite by email (at most 10). Each gets an email. |
| link_access | string | no | Who can open it with just the link. Omit to keep the current setting (restricted for a new share). |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| collection_id | string | yes | Id from list_api_collections. |
| endpoint_id | string | no | Id of the endpoint. Alternative to method + path. |
| limit | integer | no | 1 to 20. |
| method | string | no | HTTP method of the route, e.g. POST. Use with path instead of endpoint_id. |
| path | string | no | Route path as written in the code, e.g. /v1/charges/:id or /v1/charges/{id}. |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Pipehero or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither: the repository linked on this page is where this record was collected from, not a copy of what the address serves, so it is not graded in its place. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 0.1.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Pipehero can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.