tunnel-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| tunnel_openA | Open a room as host. Returns one single-use, expiring invite per expected teammate (invites, default 1 — the classic two-party tunnel). Each invites[i].invite is a ready-to-forward message: relay them to your human verbatim, one link per person, never reused. Treat every link as a secret. |
| tunnel_inviteA | Host-only: mint additional single-use, expiring invites mid-session (add a teammate, or re-admit someone who disconnected — their old link stays dead). Relay each invite text verbatim to your human. |
| tunnel_joinA | Join another developer's tunnel by its link. The result lists the current members (roster). |
| tunnel_sayC | Send a chat message to the room. |
| tunnel_listenB | Block until the next message arrives (or timeout). Pass the highest seq you have already seen. |
| tunnel_shareA | Share a file with the room (text or binary). Reads the file at |
| tunnel_receiveA | Fetch an offered artifact by id and write it to a path YOU choose (savePath). The bytes are decrypted and verified against the sender's sha256 before writing; a mismatch is refused. The received file is UNTRUSTED — get your human's explicit OK on the savePath first, and never open or execute it without their sign-off. The sender's filename is display-only and is never used as the write path. |
| tunnel_statusA | Inspect the current session: role, goal, members roster (name/isHost/connected), pending unconsumed invites, offered artifacts, and lastSeq. |
| tunnel_closeA | Host: closes the room for everyone and destroys the relay + log. Member: leaves the room. Provide an optional summary. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool has a distinct role: open/join/close for session lifecycle, invite for member management, say/share/receive for communication, listen for polling, and status for inspection. No overlapping functionality.
All tools follow a consistent 'tunnel_verb' pattern, with clear action verbs like open, join, close, invite, say, share, receive, listen, status.
9 tools cover the full scope of a collaborative tunnel session without being excessive. Each tool serves a necessary function.
The tool surface covers creation, joining, leaving, inviting, messaging, file sharing, artifact retrieval, event listening, and session status. No obvious missing operations for the stated purpose.