Agentic engineering

Let your coding agent see what reaches localhost

Expose shares a site on your machine at a public URL. With the Expose MCP server, your coding agent reads the requests that reach that URL, finds out why a webhook failed, changes your code and checks the next delivery. You stop copying payloads out of a dashboard.

coding agent

> GitHub says the push webhook to my tunnel failed. Fix it.

↳ expose.list_requests(tunnel="api…", path="/github", status="error")

✓ POST /github/webhook 422 in 31 ms

↳ expose.get_request(tunnel="api…", request_id="…")

✓ X-GitHub-Event: push, but the handler only accepts pull_request

↳ edit app/Http/Controllers/GitHubWebhookController.php

✓ Handle push events

> I redelivered it. Did it work?

↳ expose.list_requests(tunnel="api…", path="/github", limit=1)

✓ POST /github/webhook 200 in 48 ms

Three steps

curl -fsSL https://expose.dev/install.sh | sh irm https://expose.dev/install.ps1 | iex
  1. 1. Share your site

    Install Expose with the command above, then run expose share my-app.test or expose share http://localhost:3000.

  2. 2. Connect the MCP server

    Add https://expose.dev/mcp to your agent and sign in to Expose once. The setup page has the command for each agent.

  3. 3. Ask

    "Did the last Stripe webhook reach my app, and what did my app answer?" Your agent picks the tools; your client asks you before anything changes.

What agents do with Expose

Debug webhooks end to end

Your agent lists the requests that reached your tunnel, filtered by path or status, reads the headers and body of the one that failed, fixes your code and checks that the next delivery gets a 200.

expose.list_requests expose.get_request

Hear about failures as they happen

Instead of asking again and again, an agent can subscribe to request.completed on a tunnel with MCP Events and get a signed webhook for every request that fails.

request.completed

How MCP Events work →

Compare two clients

The mobile app gets a 401, the browser doesn't? The agent puts both requests side by side and finds the header that differs, without you copying anything out of a dashboard.

expose.list_requests expose.get_request

Share previews on your own URLs

Ask for a stable demo URL and the agent reserves the subdomain, or adds your custom domain, tells you which CNAME record to create and activates the domain once it exists.

expose.reserve_subdomain expose.add_custom_domain expose.verify_custom_domain

Know what is running

Which tunnel points at localhost:3000, and what is its public URL? The agent sees your open tunnels across all regions and teams, and closes the ones you no longer need.

expose.list_tunnels expose.close_tunnel

And whatever you ask next 13 tools for your tunnels, requests, domains and account. See the tools →

Works with your agent

Any client that adds remote MCP servers by URL and signs in with OAuth.

  • Claude Code
  • Codex
  • VS Code with GitHub Copilot
  • Amp
  • Claude
  • ChatGPT
  • Zed
  • Goose
  • OpenCode

Setup for each agent →

Built for agents you don't watch

  • Your permissions, nothing more. The agent works with your plan's limits and your teams' permissions, like the dashboard.
  • No secrets. Credentials and visitor IP addresses are removed before a request is stored.
  • Untrusted content stays data. Expose tells your agent to never follow instructions found in a request, and never to make changes because of one.
  • Your call. Disconnect any agent on your profile page; its event subscriptions end with it.

Questions

What is agentic engineering?

Agentic engineering means letting a coding agent such as Claude Code, Codex or Amp do the work in a loop: run a tool, read the result, change the code and check again. Expose gives that loop the one thing it can't see from your editor: the live traffic that reaches your local site from the internet.

Can my agent open a tunnel?

Tunnels start on your machine with expose share, which an agent that runs terminal commands can do for you. The MCP server can't open or replay tunnels; it sees the tunnels that are open and the requests that reached them.

Does the agent see my secrets?

No. Expose removes authorization headers, cookies, signatures, secret query values and visitor IP addresses before a request is stored, and keeps only the last 50 requests of a tunnel for up to 30 minutes.

Which agents get notified about requests?

ChatGPT, which supports webhook delivery of MCP Events. Other agents ask for the latest requests with expose.list_requests when you ask them to check.

Do I need Expose Pro?

Seeing your tunnels and their requests works with any Expose account. Reserved subdomains and custom domains need Expose Pro, through the agent like in the dashboard.