zrok-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@zrok-mcpShare my local server on port 3000 publicly via zrok"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
zrok-mcp
An MCP server for zrok — the open-source secure sharing platform built on OpenZiti. Lets AI agents manage zrok tunnels, shares, and access programmatically.
Supports three transports: stdio (local), streamable-http and SSE (remote/Bifrost).
Tools
Each tool uses an action parameter to select the operation — no need to remember many tool names.
zrok_env — Environment management
Action | Description |
| Check environment status (enabled, API endpoint, identity) |
| Enable the zrok environment with an account token |
| Disable the current zrok environment |
zrok_share — Share management
Action | Description |
| Create a public or private share |
| Delete a share by token |
| List all shares with optional filters |
zrok_access — Access management
Action | Description |
| Create access to a private share |
| Remove access to a share |
| List all accesses with optional filters |
Requirements
Python 3.10+
zrok2 Python SDK
A zrok account and enabled environment
Install
cd zrok-mcp
pip install -e .Run
Transport is selected via the ZROK_MCP_TRANSPORT environment variable (default: stdio).
Transport | Use case |
| Local clients (Claude Desktop, Cursor, Crush) |
| Remote / Bifrost gateway (recommended) |
| Remote / Bifrost gateway (legacy SSE) |
STDIO (default)
zrok-mcpStreamable HTTP (remote)
ZROK_MCP_TRANSPORT=streamable-http ZROK_MCP_PORT=8000 zrok-mcpDocker (remote)
docker build -t zrok-mcp .
docker run -p 8000:8000 -v ~/.zrok2:/root/.zrok2 zrok-mcpWith MCP Inspector
mcp dev src/zrok_mcp/server.pyEnvironment Variables
Variable | Default | Description |
|
| Transport: |
|
| Bind host (HTTP/SSE transports) |
|
| Bind port (HTTP/SSE transports) |
Configuration
Claude Desktop (stdio)
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"zrok": {
"command": "uv",
"args": ["--directory", "/path/to/zrok-mcp", "run", "zrok-mcp"]
}
}
}Cursor / Crush (stdio)
Add to your crush settings or MCP config:
{
"zrok": {
"command": "uv",
"args": ["--directory", "/path/to/zrok-mcp", "run", "zrok-mcp"]
}
}Bifrost AI Gateway (streamable-http)
Deploy zrok-mcp as a remote HTTP server (Docker, Railway, etc.)
In the Bifrost Web UI, go to MCP Gateway → New MCP Server
Select HTTP as the connection type
Enter the URL:
http://your-zrok-mcp-host:8000/mcpSet
tools_to_executeto["*"](or filter as needed)
Or via config file:
{
"mcp": {
"mcp_clients": [
{
"name": "zrok",
"connection_type": "http",
"connection_string": "http://your-zrok-mcp-host:8000/mcp",
"tools_to_execute": ["*"]
}
]
}
}For SSE transport, use connection_type: "sse" and connection_string: "http://your-zrok-mcp-host:8000/sse".
Example Usage
Once configured, your AI agent can do things like:
"Share my local server on port 3000 publicly via zrok"
The agent will call zrok_share(action="create", target="http://localhost:3000") and return the public URL.
"List all my zrok shares"
The agent will call zrok_share(action="list") and show token, mode, target, and endpoints.
"Create a private TCP tunnel for my database on port 5432"
The agent will call zrok_share(action="create", share_mode="private", backend_mode="tcpTunnel", target="localhost:5432").
License
MIT
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Diogenesoftoronto/zrok-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server