Local development can be frustrating when you need to expose your server to the internet:
- ❌ Complex tunnel setup and command-line arguments
- ❌ Hard to track which tunnels are running across different terminal sessions
- ❌ No easy way to manage multiple tunnels from a single interface
Untun MCP creates and manages secure tunnels directly from your AI assistant:
- 1️⃣ Simply tell your AI assistant to create a tunnel
- 2️⃣ Get a public URL within seconds
- 3️⃣ Manage all your tunnels with simple natural language commands
No complex CLI commands to remember. No more lost tunnels. Easy management of multiple tunnels.
This project uses the untun package from npm but is not officially affiliated with, endorsed by, or connected to Cloudflare or UnJS. This is an independent, community-developed MCP wrapper around the untun CLI tool.
- Node.js >= v18.0.0
- MCP-compatible client (Cursor, Claude Desktop, VS Code, etc.)
untun
CLI tool (installed automatically as needed)
Go to: Settings
-> Cursor Settings
-> MCP
-> Add new global MCP server
Paste the following configuration into your Cursor ~/.cursor/mcp.json
file:
{
"mcpServers": {
"untun": {
"command": "npx",
"args": ["-y", "@minte-app/untun-mcp@latest"]
}
}
}
Add this to your VS Code MCP config file:
{
"servers": {
"Untun": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@minte-app/untun-mcp@latest"]
}
}
}
Add this to your Claude Desktop claude_desktop_config.json
file:
{
"mcpServers": {
"Untun": {
"command": "npx",
"args": ["-y", "@minte-app/untun-mcp@latest"]
}
}
}
Ask your AI assistant to create a tunnel with natural language:
Create a tunnel to my localhost:3000 server
Check your running tunnels:
Show me all my active tunnels
Stop a specific tunnel:
Stop the tunnel to localhost:3000
-
start_tunnel
: Creates a secure tunnel from a public internet address to your local serverurl
(required): The local URL to expose (e.g., http://localhost:3000)name
(optional): Custom name for the tunnel
-
stop_tunnel
: Stops a running tunnel or all local tunnelsname
(optional): Name of a specific tunnel to stop
-
list_tunnels
: Lists all active tunnels including their status and details
If your tunnel doesn't start, try these steps:
- Make sure your local server is running
- Check if there's already a tunnel running for that port
- Use
list_tunnels
to check the status of all tunnels
Tunnels are tracked by hostname. If you see "remote" tunnels that can't be stopped, they are likely running on another machine. You'll need to stop them from the original machine.
Clone the project and install dependencies:
npm install
Build:
npm run build
MIT