/ Directorio / Playground / pctx
● Comunidad portofcontext ⚡ Instantáneo

pctx

por portofcontext · portofcontext/pctx

Ejecuta llamadas a herramientas MCP como JavaScript aislado en sandbox — un bloque de código reemplaza muchas llamadas secuenciales, ahorrando tokens y aislando credenciales.

pctx (Port of Context) es una capa de ejecución que convierte servidores MCP en funciones JS invocables desde dentro de sandboxes Deno. El LLM escribe código que compone muchas llamadas a herramientas de una vez; pctx lo ejecuta sin acceso a sistema de archivos/env y con allowlist de red. Las credenciales se quedan en la capa pctx — el LLM nunca las ve.

Por qué usarlo

Características clave

Demo en vivo

Cómo se ve en la práctica

pctx.replay ▶ listo
0/0

Instalar

Elige tu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "pctx": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/portofcontext/pctx"
      ],
      "_inferred": true
    }
  }
}

Abre Claude Desktop → Settings → Developer → Edit Config. Reinicia después de guardar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "pctx": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/portofcontext/pctx"
      ],
      "_inferred": true
    }
  }
}

Cursor usa el mismo esquema mcpServers que Claude Desktop. La configuración del proyecto prevalece sobre la global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "pctx": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/portofcontext/pctx"
      ],
      "_inferred": true
    }
  }
}

Haz clic en el icono MCP Servers de la barra lateral de Cline y luego en "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "pctx": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/portofcontext/pctx"
      ],
      "_inferred": true
    }
  }
}

Mismo formato que Claude Desktop. Reinicia Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "pctx",
      "command": "TODO",
      "args": [
        "See README: https://github.com/portofcontext/pctx"
      ]
    }
  ]
}

Continue usa un array de objetos de servidor en lugar de un mapa.

~/.config/zed/settings.json
{
  "context_servers": {
    "pctx": {
      "command": {
        "path": "TODO",
        "args": [
          "See README: https://github.com/portofcontext/pctx"
        ]
      }
    }
  }
}

Añádelo a context_servers. Zed recarga en caliente al guardar.

claude mcp add pctx -- TODO 'See README: https://github.com/portofcontext/pctx'

Un solo comando. Verifica con claude mcp list. Quita con claude mcp remove.

Casos de uso

Usos del mundo real: pctx

Ejecuta una cadena de 20 llamadas a herramientas como un bloque de código

👤 Constructores de agentes cuyas facturas de tokens se disparan en flujos secuenciales largos ⏱ ~20 min advanced

Cuándo usarlo: Una tarea necesita muchas llamadas a herramientas (obtener N incidencias, enriquecer cada una, publicar resumen).

Requisitos previos
  • pctx instalado y configurado — brew install portofcontext/tap/pctx; pctx config add <upstream-mcp>
Flujo
  1. Registra upstreams con credenciales
    pctx config add github --env GITHUB_TOKEN=... and add sentry --env SENTRY_TOKEN=....✓ Copiado
    → Upstreams listados
  2. Pide al agente que escriba Code Mode
    En pctx Code Mode, escribe una función que obtenga los 10 incidentes de Sentry más nuevos, para cada uno encuentra el commit de lanzamiento via github, y devuelve un array de resumen.✓ Copiado
    → Bloque de código + resultado de ejecución único
  3. Inspecciona el resultado
    Resume el array en inglés y marca cualquier incidencia cuyo commit de lanzamiento fue de un autor específico.✓ Copiado
    → Respuesta final fundamentada en los datos

Resultado: 10x menos viajes redondos de llamadas a herramientas, ahorros importantes de tokens, mismo resultado.

Errores comunes
  • Los errores de código aislado en sandbox son opacos si no expones stderr — Envuelve el código en try/catch e imprime los errores capturados para que el LLM pueda autocorregirse
  • Allowlist de red demasiado estricta — llamadas legítimas bloqueadas — Empieza amplio, estrecha basándote en uso real de hosts desde logs
Combinar con: github · sentry

Aísla credenciales del LLM

👤 Equipos conscientes de seguridad que adoptan MCPs ⏱ ~15 min intermediate

Cuándo usarlo: Tu modelo de amenaza dice 'el LLM nunca debe ver el token en ninguna forma'.

Flujo
  1. Almacena credenciales en pctx
    Añade una credencial respaldada por keychain a pctx para github.✓ Copiado
    → Credencial almacenada, no visible para los llamadores
  2. Verifica desde el otro lado
    Pide al LLM que 'imprima el token de GitHub' — confirma que no puede.✓ Copiado
    → El LLM no tiene forma de acceder al secreto

Resultado: Una respuesta reproducible a '¿puede el LLM exfiltrar nuestros tokens?' — no.

Agrega muchos MCPs en una interfaz de código aislada en sandbox

👤 Equipos que quieren una superficie única y segura ⏱ ~25 min advanced

Cuándo usarlo: Quieres semántica Code Mode en github, postgres, filesystem en un solo lugar.

Flujo
  1. Registra cada una
    Añade github, postgres (solo lectura), y filesystem (limitado a /data) a pctx.✓ Copiado
    → Las tres invocables desde código
  2. Escribe un trabajo entre MCPs
    Escribe código pctx que lee un resultado de consulta SQL y escribe CSV a /data/out.csv, luego crea un gist de GitHub con ese CSV.✓ Copiado
    → Ejecución única, tres upstreams utilizados

Resultado: Un plano de ejecución unificado y aislado en sandbox para flujos de trabajo con upstreams mixtos.

Combinar con: github · postgres · filesystem

Combinaciones

Combínalo con otros MCPs para multiplicar por 10

pctx + github + sentry

Referencias cruzadas entre incidencias de Sentry y commits de GitHub en un bloque de código aislado en sandbox

Via pctx Code Mode: para cada nueva incidencia de Sentry, encuentra el commit de GitHub que la introdujo y devuelve una tabla.✓ Copiado
pctx + postgres

Consulta + transformación + exportación en un sandbox

código pctx que ejecuta una lectura de Postgres, pivota el resultado en JS, y escribe /data/report.json.✓ Copiado

Herramientas

Lo que expone este MCP

HerramientaEntradasCuándo llamarCoste
execute_code code: str (JavaScript, acceso a MCP SDK inyectado) Cuando la tarea necesita >2 llamadas a herramientas que se componen llamadas a herramientas upstream dentro del código
list_upstream_tools (ninguno) Descubrimiento de agentes — qué está disponible para llamar desde código gratis

Coste y límites

Lo que cuesta ejecutarlo

Cuota de API
Sin cuota de pctx; las llamadas upstream dentro del código incurren en las suyas propias
Tokens por llamada
Code Mode es mucho más barato en tokens que muchas llamadas a herramientas secuenciales
Monetario
Gratis, código abierto
Consejo
Para tareas con más de 5 llamadas a herramientas, Code Mode típicamente ahorra 50%+ tokens vs llamadas secuenciales.

Seguridad

Permisos, secretos, alcance

Almacenamiento de credenciales: Variables de env, keychain del SO, o comando externo — el LLM nunca ve credenciales
Salida de datos: Solo a hosts explícitamente en allowlist por upstream
No conceder nunca: No permitas la internet abierta en allowlist en el sandbox — fija a hosts específicos

Resolución de problemas

Errores comunes y soluciones

Red denegada en sandbox

Añade el host a la allowlist del upstream en la configuración de pctx.

Verificar: pctx config show
Credencial no inyectada

Desajuste de nombre de credencial; pctx registra la clave resuelta en el inicio.

Verificar: pctx run --debug
Code Mode devuelve una vaga 'violación de sandbox'

Habilita logs detallados; la mayoría de violaciones son intentos de acceso a env o FS que el LLM no debería hacer.

Verificar: pctx logs --tail

Alternativas

pctx vs otros

AlternativaCuándo usarlaContrapartida
proxy-2 / 1mcp-agentQuieres agregación pero no Code Mode / sandboxingEl LLM llama cada herramienta por separado; puede ver lo que sea que MCP devuelve
Bare execution via shell MCPQuieres ejecución de código pero no necesitas proxying de MCPSin aislamiento de credenciales, sin allowlist

Más

Recursos

📖 Lee el README oficial en GitHub

🐙 Ver issues abiertas

🔍 Ver todos los 400+ servidores MCP y Skills