Portal
Uses Cloudflare Quick Tunnels or named Cloudflare Tunnels to expose the local MCP endpoint publicly, with either a random trycloudflare.com URL or a fixed hostname.
Uses ngrok reserved domains to expose the local MCP endpoint via a persistent public ngrok URL.
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., "@PortalRunnpm testin the workspace and report the results."
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.
Portal

Portal is a VS Code extension that exposes the current workspace as a public MCP endpoint. It is deliberately small: commands and file transfer only.
Connect any MCP client (Claude, ChatGPT, Cursor, a custom agent, curl) to your machine over a tunnel. The agent can run shells and move files. It cannot edit text through MCP tools — there are none.
What you get
Surface | Role |
MCP Streamable HTTP |
|
File HTTP API |
|
Sidebar + settings | Flat Win10-style panel: start/stop, copy URL, tunnel health |
Portal Agent terminal | Optional live mirror of |
Related MCP server: local-bridge
MCP tools (exactly five)
Tool | Purpose |
| Foreground command. Default timeout 120s (max 600s). Use |
| Start a long-running process. Returns |
| Incremental stdout/stderr by offset. Omit |
| Stop a background job and its process tree ( |
| Public file-API base URL, size limit, and curl examples. |
Shells: powershell (Windows default), pwsh, cmd, bash / sh (Git Bash when present). UTF-8 is set up automatically.
Session: reuse the Mcp-Session-Id from initialize. If it is lost or rejected, initialize again — do not invent an ID.
There are no read_file / write_file / edit_file / list_* / search_files tools. Read and write with the shell or the HTTP file API.
File transfer (bidirectional HTTP)
Same tunnel and token as MCP. Default max size: 64 MiB (portal.maxTransferBytes). Uploads replace atomically. Downloads support Range and return SHA-256.
GET {base}?op=info capability + workspace
GET {base}?glob=**/* list files
GET {base}/<relpath> download
HEAD {base}/<relpath> metadata
PUT {base}/<relpath> upload
DELETE {base}/<relpath> delete
POST {base}?op=pack zip JSON { "paths": ["src"] }
POST {base}?op=unpack&dest=. unzip (raw zip body)Free ngrok domains need the header ngrok-skip-browser-warning: 1.
# download
curl -fsSL -H "ngrok-skip-browser-warning: 1" \
"$BASE/README.md" -o README.md
# upload
curl -fsSL -H "ngrok-skip-browser-warning: 1" \
-T ./photo.png "$BASE/incoming/photo.png"
# pack a folder
curl -fsSL -H "ngrok-skip-browser-warning: 1" \
-H "Content-Type: application/json" \
-d '{"paths":["src"]}' "$BASE?op=pack" -o src.zipTunnel providers
Provider | URL | Notes |
| new random | Fast to try; not stable |
| fixed hostname | Needs stored Tunnel token, public hostname, fixed local port |
| reserved domain (e.g. | Persistent URL |
| your command or an existing URL | Placeholders: |
Route token is the secret path segment. MCP lives at /mcp/<token>. Leave portal.routeToken empty to generate one on start.
Commands (palette)
Portal: Start / Stop
Portal: Copy URL
Portal: Check Tunnel
Portal: Settings
Portal: Install cloudflared / Install/Upgrade ngrok
Portal: Show Log / Show Agent Terminal
Useful settings: portal.startOnActivation (default on), portal.showCommandsInTerminal, portal.localPort (0 = auto, except named Cloudflare).
Build
Requires Node 18+ and VS Code ^1.95.0.
npm install
npm run build # esbuild → dist/extension.js
npm run typecheck
npm run package # .vsix (no bundled node_modules)Load the packaged VSIX, or run the extension in a desktop VS Code host (extensionKind: ui + workspace).
License
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEnables cloud agents to securely operate local machine resources (files, commands, screenshots) via standard MCP protocol.MIT
- AlicenseNot gradedqualityAmaintenanceConnects local tools (browser, shell) to a remote MCP server via reverse-MCP, enabling the server agent to control your local browser and execute shell commands.237Apache 2.0
- AlicenseNot gradedqualityAmaintenanceExposes a local development project as a secure MCP server over a stable HTTPS URL via Cloudflare tunnel, with configurable access permissions and 33 development tools for file, command, Git, and process operations.MIT
- AlicenseNot gradedqualityCmaintenanceEnables remote MCP clients like ChatGPT to run shell commands and manage files on your local machine via a Cloudflare tunnel, exposing tools for file operations, search, and task management.MIT
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personal…
An MCP server that let you interact with Cycloid.io Internal Development Portal and Platform
MCP server for interacting with the Supabase platform
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/s3hq4y/portal'
If you have feedback or need assistance with the MCP directory API, please join our Discord server