capability-scoped · ephemeral

A disposable door
to one running agent. // share specific tools from your local MCP server — over a link that evaporates.

ngrok exposes a port. tunnel.locker knows the far end is an MCP server with a tool list — so the door is scoped to the exact tools you allow, refuses everything else agent-side, and dies on a TTL.

View source →
the wedge
Tunneling isn't new. Making the far end MCP-aware is.

Because the agent speaks the protocol, it filters the advertised tools/list to your allowlist, rejects any out-of-scope tools/call before the server ever sees it, and re-checks the TTL on every call. Revocation is real, not cosmetic — close the tunnel and the link is dead.

how it works
Three parts. The relay is dumb on purpose.
browser

viewer

A teammate opens the link. Sees only the filtered tool list.

stateless

relay

Pairs the two sockets by id and shuttles opaque frames. Holds no secret, no state.

enforces

agent

Mints the token, filters tools, refuses out-of-scope calls, enforces the TTL.

your machine

MCP server

Runs locally, unchanged. No inbound port is ever opened.

Trust lives at the agent — the only component holding the signing secret. A compromised relay can't widen scope or extend a TTL; it just moves bytes.

capability scoping
Hiding a tool is easy. Refusing it is the point.

in scope

read { "path": "notes.txt" }

Passes the allowlist + TTL check, reaches the MCP server, returns the result.

out of scope

shell { "cmd": "rm -rf /" }

Refused agent-side with a clear error. The server never receives the call.

live
Running in the open. No trackers, no cookies.
0
visitors
0
tunnels opened
0
tool calls
0
blocked
live from the relay · full stats →
get started
# install the CLI
$ cargo install tunnel-locker

# share a read-only view of your MCP server
$ tunnel open ./my-mcp-server \
    --relay wss://tunnel.locker --scope read --ttl 15m

# → prints https://tunnel.locker/t/<id>#<token>
# revoke anytime:
$ tunnel close
Local-first,
but shareable.

Your model and data stay on your machine. When a teammate needs to talk to your running agent, open a door scoped to one session and specific tools — then let it evaporate.