Superserve Sandbox

El servidor MCP de Superserve permite que cualquier cliente MCP cree y controle sandboxes aislados en la nube.

Documentación

@superserve/mcp

Servidor de Model Context Protocol para sandboxes de Superserve. Crea, ejecuta comandos y gestiona microVMs Firecracker aisladas desde cualquier cliente MCP: Claude, Cursor, VS Code, Windsurf, Codex.

Se ejecuta localmente sobre stdio mediante npx. Se autentica con tu clave de API de Superserve. Apunta a un sandbox por llamada mediante su id.

Instalación

Añádelo a tu cliente MCP y establece SUPERSERVE_API_KEY en su env (los clientes no lo heredan de tu shell). Crea una clave en console.superserve.ai.

Claude Code:

claude mcp add superserve \
  --env SUPERSERVE_API_KEY=ss_live_xxxxxxxxxxxxxxxx \
  -- npx -y @superserve/mcp

Claude Desktop / Cursor / Windsurf (claude_desktop_config.json, .cursor/mcp.json, mcp_config.json):

{
  "mcpServers": {
    "superserve": {
      "command": "npx",
      "args": ["-y", "@superserve/mcp"],
      "env": { "SUPERSERVE_API_KEY": "ss_live_xxxxxxxxxxxxxxxx" }
    }
  }
}

VS Code (.vscode/mcp.json, solicita la clave):

{
  "inputs": [
    {
      "id": "superserve-key",
      "type": "promptString",
      "description": "Superserve API key",
      "password": true
    }
  ],
  "servers": {
    "superserve": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@superserve/mcp"],
      "env": { "SUPERSERVE_API_KEY": "${input:superserve-key}" }
    }
  }
}

Codex (~/.codex/config.toml) — env_vars reenvía la clave desde tu entorno en lugar de almacenarla en el archivo:

[mcp_servers.superserve]
command = "npx"
args = ["-y", "@superserve/mcp"]
env_vars = ["SUPERSERVE_API_KEY"]

Alojado (remoto)

Una instancia alojada se ejecuta en https://mcp.superserve.ai (Streamable HTTP): no requiere instalación local. Envía tu clave de API de Superserve como token bearer; el servidor es sin estado y está limitado a tu cuenta (la clave ya se asigna a tu equipo).

La autenticación Bearer funciona en Claude Code, Cursor, VS Code y el conector de la API de Mensajes de Anthropic. Claude.ai, la interfaz de Conector Personalizado de Claude Desktop y el modo desarrollador de ChatGPT esperan OAuth (sin campo de bearer estático), que el endpoint alojado aún no admite.

Claude Code:

claude mcp add --transport http superserve https://mcp.superserve.ai \
  --header "Authorization: Bearer ss_live_xxxxxxxxxxxxxxxx"

Cursor / VS Code (.cursor/mcp.json, .vscode/mcp.json):

{
  "servers": {
    "superserve": {
      "type": "http",
      "url": "https://mcp.superserve.ai",
      "headers": { "Authorization": "Bearer ss_live_xxxxxxxxxxxxxxxx" }
    }
  }
}

Ejecutar el servidor alojado

El mismo paquete incluye el servidor alojado. Ejecútalo de forma independiente (autoalojado / staging):

PORT=8080 SUPERSERVE_BASE_URL=https://api.superserve.ai \
  npx -y -p @superserve/mcp superserve-mcp-http

O monta el manejador estándar Web en cualquier runtime fetch (p. ej., un manejador de ruta de Next.js):

import { handleMcpRequest } from "@superserve/mcp/http"

export const POST = (req: Request) => handleMcpRequest(req)

Sirve el endpoint MCP en / (POST) y una sonda de actividad GET /health. Configuración: PORT (por defecto 8080), SUPERSERVE_BASE_URL (opcional). La clave de API se lee en cada solicitud desde el encabezado bearer y nunca se registra.

Herramientas

HerramientaDescripción
sandbox_createCrea un sandbox; devuelve su id. Acepta enlaces secrets y reglas de salida.
sandbox_updateCambia los metadatos o las reglas de salida (allow_out/deny_out) de un sandbox después de su creación.
sandbox_listLista sandboxes (activos y en pausa), filtrables por metadatos.
sandbox_infoObtiene el estado, los recursos, los metadatos, las reglas de red y los enlaces de secretos de un sandbox.
sandbox_execEjecuta un comando de shell; devuelve stdout, stderr y el código de salida. Reanuda automáticamente un sandbox en pausa.
sandbox_files_readLee un archivo (texto UTF-8 o base64). Rechaza archivos de más de 1 MiB.
sandbox_files_writeCrea o sobrescribe un archivo (contenido en línea limitado a 8 MiB).
sandbox_files_listLista un directorio.
sandbox_files_download_dirDescarga un directorio como ZIP en base64 (se omiten los enlaces simbólicos). Limitado a 10 MiB.
sandbox_pausePausa un sandbox (se conserva el estado).
sandbox_resumeReanuda un sandbox en pausa (normalmente innecesario: exec lo reanuda automáticamente).
sandbox_killElimina un sandbox.
sandbox_preview_urlPublica un puerto y devuelve una URL de vista previa firmada pública o privada.
sandbox_network_logAudita las conexiones salientes de un sandbox.
sandbox_template_listLista las plantillas (imágenes base preconstruidas) a partir de las cuales tu equipo puede crear sandboxes.
sandbox_template_createConstruye una plantilla personalizada (forma de vCPU/memoria/disco, software preinstalado). Asíncrono.
secret_listLista los secretos de equipo vinculables (solo metadatos, nunca valores).
sandbox_attach_secretVincula un secreto almacenado a un sandbox bajo una variable de entorno.
sandbox_detach_secretElimina un enlace de secreto de un sandbox.

Todas las herramientas requieren un sandbox_id excepto sandbox_create, sandbox_list, sandbox_template_list, sandbox_template_create y secret_list. La creación de secretos no se expone intencionalmente (el valor bruto pertenece al SDK/consola, no a una transcripción de agente); el servidor solo vincula secretos existentes.

Configuración

VariableRequeridaPredeterminado
SUPERSERVE_API_KEYSí—
SUPERSERVE_BASE_URLNohttps://api.superserve.ai

Desarrollo

bun install
bunx turbo run build     --filter=@superserve/mcp
bunx turbo run typecheck --filter=@superserve/mcp
bunx turbo run test      --filter=@superserve/mcp        # unit + in-memory integration (no credentials)
SUPERSERVE_API_KEY=ss_live_... bunx turbo run e2e --filter=@superserve/mcp   # live round-trip

El servidor es un adaptador ligero sobre @superserve/sdk; el token de acceso al plano de datos por sandbox lo gestiona el SDK y nunca se expone al modelo.

Licencia

Apache-2.0