Skip to main content
Glama
s3hq4y
by s3hq4y

Portal

Portal

English · 简体中文

Portal es una extensión de VS Code que expone el espacio de trabajo actual como un endpoint MCP público. Es deliberadamente pequeña: solo comandos y transferencia de archivos.

Conecta cualquier cliente MCP (Claude, ChatGPT, Cursor, un agente personalizado, curl) a tu máquina a través de un túnel. El agente puede ejecutar shells y mover archivos. No puede editar texto mediante herramientas MCP — no hay ninguna.

Lo que obtienes

Superficie

Función

MCP Streamable HTTP

https://<tunnel>/mcp/<token>

API HTTP de archivos

https://<tunnel>/files/<token>/… (mismo token)

Barra lateral + ajustes

Panel plano estilo Windows 10: iniciar/detener, copiar URL, estado del túnel

Portal Agent terminal

Espejo en vivo opcional de E/S de run_command

Related MCP server: FreeRDC Community Edition

Herramientas MCP (exactamente cinco)

Herramienta

Propósito

run_command

Ejecuta un comando en primer plano. Tiempo de espera predeterminado 120s (máx. 600s). Usa la command + shell, o executable + args (preferido cuando no necesitas sintaxis de shell).

start_command

Inicia un proceso de larga duración. Devuelve command_id y el PID. Hasta cuatro procesos en paralelo.

read_command

Lee stdout/stderr de forma incremental por offset. Omite command_id para listar los trabajos conservados. Los registros completados caducan a los 10 minutos.

stop_command

Detiene un trabajo en segundo plano y su árbol de procesos (force evita la ventana de gracia de 2 segundos).

file_transfer_info

Proporciona la URL base de la API de archivos, el límite de tamaño y ejemplos de curl.

Shells: powershell (predeterminado en Windows), pwsh, cmd, bash / sh (Git Bash cuando esté presente). UTF-8 se configura automáticamente.

Sesión: reutiliza el Mcp-Session-Id de initialize. Si se pierde o se rechaza, vuelve a ejecutar initialize — no inventes un identificador.

No hay herramientas read_file / write_file / edit_file / list_* / search_files. Lee y escribe con el shell o con la API HTTP de archivos.

Transferencia de archivos (HTTP bidireccional)

El mismo túnel y token que MCP. Tamaño máximo predeterminado: 64 MiB (portal.maxTransferBytes). Las subidas se reemplazan de forma atómica. Las descargas admiten Range y devuelven 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)

Los dominios gratuitos de ngrok requieren el encabezado 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.zip

Proveedores de túnel

Proveedor

URL

Notas

cloudflare-quick (predeterminado)

nuevo trycloudflare.com en cada inicio

Rápido de probar; no estable

cloudflare-named

nombre de host fijo

Requiere el token del túnel guardado, el hostname público y un puerto local fijo

ngrok-reserved

dominio reservado (p. ej. *.ngrok-free.dev)

URL persistente

custom

tu comando o una URL existente

Marcadores: {{port}} {{token}} {{workspace}}. Comando vacío + customTunnelUrl = modo de adjuntamiento

El token de ruta es el segmento secreto de la ruta. MCP se encuentra en /mcp/<token>. Deja portal.routeToken vacío para que se genere uno al iniciar.

Comandos (paleta)

  • Portal: Iniciar / Detener

  • Portal: Copiar URL

  • Portal: Comprobar túnel

  • Portal: Configuración

  • Portal: Instalar cloudflared / Instalar/Actualizar ngrok

  • Portal: Mostrar registro / Mostrar la terminal del agente

Ajustes útiles: portal.startOnActivation (activado por defecto), portal.showCommandsInTerminal, portal.localPort (0 = automático, excepto para Cloudflare con nombre).

Compilación

Requiere Node 18+ y 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)

Carga el VSIX empaquetado, o ejecuta la extensión en un host de escritorio de VS Code (extensionKind: ui + workspace).

Licencia

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Expose your VS Code workspace's tools — files, terminal, LSP, diagnostics, and images — to remote MCP clients over a public HTTPS tunnel.
    5
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables a remote MCP client to access narrowly scoped local filesystem resources and process capabilities through a loopback-only bridge. Supports guarded file reads, searches, and mutations, authenticated transport, and private reachability via OpenAI Secure MCP Tunnel.
    1
    AGPL 3.0
  • A
    license
    A
    quality
    A
    maintenance
    Enables MCP clients to securely work with local files, directories, searches, terminal sessions, and processes on paired computers via outbound connections, without exposing inbound ports.
    2
    7
    1
    MIT