RoadmapTemporary mailboxes are shipped on Solo and Team. Next: the WSS session inspector. Open the roadmap

A public URL for anything running on localhost.

Point Mercur at a local port and get an endpoint you can paste into a webhook setting or hand to a teammate. HTTP, WebSocket and TCP run through the same agent, each endpoint with its own URL, settings and request log.

$npm install -g @mercur_dev/cli
console.mercur.sh / endpoints / webhooksagent connected

webhooks

https://webhooks.mercur.sh → localhost:3000
timemethodpathlatencystatus
18:25:47POST/stripe/webhook40 ms200
18:25:47GET/health77 ms200
18:25:47POST/linear/events114 ms200
18:25:47POST/gh/push151 ms201
18:25:47GET/assets/app.js188 ms304
18:25:47POST/stripe/webhook225 ms429
HTTP · WS · TCPProtocols on one agent. WebSocket and TCP are on paid plans.
macOS + npm CLIDesktop app for Mac, or Node.js 20+ on macOS, Linux, and Windows.
30 daysRequest logs kept on Mercur infrastructure, not on your machine.
HTTPWebSocketTCPRemote MCPWebhooksRequest replayIP allow listsnpm CLImacOS appRequest modifiersHTTPWebSocketTCPRemote MCPWebhooksRequest replayIP allow listsnpm CLImacOS appRequest modifiers
The platform

Four layers, from your laptop to a public URL.

Each layer maps to something you can do after signing in.

The macOS desktop app or the npm CLI (@mercur_dev/cli) runs the agent for every protocol. The browser console can also receive HTTP requests in Logging mode.

HTTP, WebSocket and TCP, handled by the same agent. HTTP and WebSocket get a subdomain; TCP gets a dedicated relay port. Every endpoint gets its own settings and request log.

Method, path, headers, body preview and timing for every request that lands. Take one endpoint offline and bring it back without restarting the agent. Rewrite requests in flight, and replay a stored HTTP request after you fix a handler.

Mark an endpoint private and allow only the IP addresses or CIDR ranges you name. Agent tokens rotate from settings.

mercur — startforwarding

$ mercur list

ENDPOINTPROTOPORTSTATEURL
ep-webhookshttp3000stoppedhttps://webhooks.mercur.sh

$ mercur start ep-webhooks

Forwarding https://webhooks.mercur.sh → localhost:3000

Request log: on — inspect in the console

SchematicOne agent · three protocols · one endpoint each
HTTP · webhooksWebSocket · streamsTCP · databases
Mercur console with live HTTP requests, an expanded PATCH body, and the endpoint public URL.
Settings · Access

Security

Restrict access with an IP allowlist when the endpoint is not public.

Public accessRestricted
IP whitelist
192.0.2.0/24198.51.100.10
IP or CIDR, one per line. Only listed addresses can connect.

CLI tokens

Authenticate the mercur CLI. Revoking a token stops tunnels started with it.

  • Laptopmcrcli_active
  • CImcrcli_active
Create CLI token
Install

Get the agent.

Desktop app on macOS, or the npm CLI on macOS, Linux, and Windows. Guest sessions work without an account.

CLI docs
Mac
npm install -g @mercur_dev/cli
Linux
npm CLI@mercur_dev/cli · Node.js 20+
npm install -g @mercur_dev/cli
Windows
npm CLI@mercur_dev/cli · Node.js 20+
npm install -g @mercur_dev/cli
Use cases

Four shapes of traffic.

One agent handles tunnels. Remote MCP lets agents inspect request history in your IDE.

HTTP · webhooks

Webhook development

Paste a Mercur URL into a provider's webhook settings and watch the payload arrive on your laptop, with headers and body preview, instead of guessing from a 500 in someone else's dashboard.

Agent · HTTP · localhost:3000
MCP · IDE

Debug webhooks with Cursor MCP

Create a workspace API key, paste the MCP config into your client, and ask an agent to list recent requests or pull a failed webhook’s headers and body from Mercur history.

Remote MCP · /api/mcp · Bearer key
WebSocket · streams

Realtime and pub/sub

Expose a local socket server to a staging client or a teammate's browser, and see message counts per endpoint while it runs.

Agent · WebSocket · localhost:8080
TCP · sockets

Databases and sockets

Give one port of access to a local Postgres or Redis. Restrict it to known IP ranges, and stop the endpoint when you are done.

Agent · TCP · localhost:5432
FAQ

Questions worth answering before you start.

Including the limits, and the ones where the answer is no.

Which protocols are supported?

HTTP, WebSocket and TCP. HTTP and WebSocket endpoints get a subdomain; TCP gets a dedicated relay port. The free plan covers HTTP; WebSocket and TCP are part of the paid plans.

Can I try it without creating an account?

Yes. The webhook tester at /webhook-tester provisions a temporary public URL immediately, with no account and no card: 1,000 requests per month, 50 stored requests, and a 24-hour TTL. Register to unlock Endpoints. Walkthroughs live under /blog.

What does the free plan include?

After registering: one HTTP endpoint of your own, 10,000 requests per month, 100 stored requests, 5 request rewrites and 8 concurrent sessions. Each of those is enforced in code, and when a monthly limit is reached the relay answers 429 rather than dropping traffic quietly.

Can I pay for a plan today?

Yes. Open /pricing to compare Free, Solo, and Team with country-localized Paddle prices. Checkout happens in the console under Settings → Plan & usage (sign in first). Solo includes a one-time 7-day trial with a card on file; the free plan stays available without paying.

What is remote MCP, and which plans include it?

Remote MCP lets an MCP client (Cursor, Claude Desktop, and others) inspect HTTP request history for this workspace’s tunnels via /api/mcp and a Bearer API key. Included with Solo and Team — Free shows an upgrade path in Workspace Settings → API keys. Setup: /mcp and the MCP guide under /blog.

Which platforms can run the agent?

The macOS desktop app runs the agent for all three protocols, as a DMG for Apple Silicon and Intel. The npm CLI (@mercur_dev/cli) does the same on macOS, Linux, and Windows with Node.js 20+. The browser console can receive HTTP traffic in Logging mode without installing anything.

How is access controlled?

Console routes require an authenticated session, the agent authenticates with a token you can rotate, and any endpoint can be marked private with an IP or CIDR allow list.

Where are request logs stored, and for how long?

On Mercur infrastructure, not on your machine, for 30 days. Bodies are truncated to a 256 KB preview and headers to 32 KB. An endpoint only records logs in Logging mode, or in Tunneling when full traffic capture is enabled.

What happens when my agent disconnects?

The endpoint stops serving within about 15 seconds and returns 503 until the agent reconnects. Requests that arrive during that window are not queued or replayed.

Can I replay a stored request?

Yes. In the console request history, Retry re-sends a stored HTTP request through the endpoint so you can re-test after fixing a handler. The endpoint must be in proxy mode with the agent connected. Replay respects plan retention and stored-request limits; payloads omitted for size cannot be replayed.

Open the full FAQ page →

Point a public URL at localhost.

Open the webhook tester for a temporary public URL without an account. Registering unlocks Endpoints on the free plan.