@reachpad/mcp
Official@reachpad/mcp
reachpad permite a Claude, Codex y otros agentes de codificación crear aplicaciones full-stack en espacios de trabajo persistentes y compartirlas mediante un enlace, sin necesidad de un despliegue separado. Un espacio de trabajo es un ordenador de desarrollo en la nube que el agente opera por sí mismo: un repositorio, un sistema de archivos, dependencias instaladas y estado de compilación que sobreviven entre llamadas, no un sandbox efímero que olvida. Los procesos son la excepción; ver más abajo.
Este es el servidor MCP. Permite a Claude, ChatGPT, Cursor, OpenCode o a tu propio agente crear un entorno, ejecutar comandos en él, bifurcarlo y volver a él más tarde, sin que un desarrollador tenga que mantener un portátil abierto.
Persiste. Pausa el entorno y el disco queda sellado; la siguiente llamada arranca desde ese sello con los archivos, las instalaciones y el estado de git intactos, en lugar de reconstruir. Los procesos son la excepción: un arranque siempre es un arranque en frío.
Se bifurca. Veinte intentos desde un estado preparado cuestan un delta cada uno, no veinte reconstrucciones, porque el entorno es una cadena de instantáneas, no una máquina.
Puede mantener los secretos fuera de la caja. Una credencial intermediada se invoca en el límite en tu nombre y su valor nunca entra en el entorno, el registro o el almacén. Una credencial escrita en el entorno, en cambio, es legible allí, por diseño.
Es agnóstico respecto al agente. La API REST es canónica; este servidor, el SDK y la CLI son traducciones de ella. Trae tu propio agente.
La API es el límite del producto, no una interfaz web: reachpad.dev.
Instalación
npx -y @reachpad/mcp # stdio, for a local clientEn Claude Code:
claude mcp add reachpad -e REACHPAD_IDENTITY_CREDENTIAL=… -- npx -y @reachpad/mcpRelated MCP server: Nolane Habitat
Dos transportes, una implementación
npx @reachpad/mcp # stdio
REACHPAD_MCP_HTTP_PORT=8722 npx @reachpad/mcp # streamable httpstdio es lo que un cliente local usa para comunicarse; Streamable HTTP es lo que usa un conector remoto. Mismas herramientas, mismo comportamiento — añadido en lugar de bifurcado, porque dos implementaciones de una misma superficie es como se desvían.
El lado HTTP responde 405 a GET: cada herramienta aquí es de petición/respuesta, y la especificación permite rechazar el flujo iniciado por el servidor en lugar de mantener una conexión abierta para tráfico que nunca llega. No hay sesiones — nada se mantiene entre llamadas que un reinicio no pudiera reconstruir. Y no lleva ninguna credencial propia: lo que autoriza la petición HTTP es lo que autoriza reachpad.
Configuración
variable | significado |
| tu host de reachpad. Se rechaza |
| tu credencial por usuario. Nombra una cuenta y no puede actuar por otra: el servidor toma la identidad del propio registro de la credencial, nunca de la petición. |
| opcional, con ámbito por entorno y revocable. Cuando se establece, |
| sirve HTTP en lugar de stdio. |
| por defecto |
| token de portador, comparado en tiempo constante. Si está ausente, todo llamador que pueda alcanzar el puerto está autorizado, y el servidor lo dice en stderr. |
| separados por comas. Una petición que lleve un |
Si se establecen varias credenciales, gana la más restrictiva, y una credencial rechazada nunca se reintenta con una más amplia — retroceder sería una escalada de privilegios que nadie eligió realizar.
Herramientas
tool | qué hace |
| créditos de cómputo restantes. Un crédito ejecuta un entorno estándar durante un minuto. |
| un nuevo entorno, opcionalmente con un repositorio clonado en |
| tus entornos y cuántas bifurcaciones tiene cada uno |
| de qué arranca: su instantánea principal, su posición de registro y su árbol de bifurcaciones |
| un comando, su código de salida y su salida. Un entorno en pausa se reanuda para servirlo. |
| bifurca desde la última instantánea sellada; el original no se toca |
| abre un puerto a la web y obtén el enlace que lo alcanza. Idempotente por puerto. |
| los puertos que este entorno tiene abiertos, del más antiguo al más reciente, con sus enlaces |
| cierra un puerto. Reabrirlo más tarde genera un enlace diferente. |
| archívalo y libera el hueco del plan. Nada se elimina: las instantáneas y el historial sobreviven. |
No está aquí, deliberadamente: iniciar un agente dentro del entorno. Está en la hoja de ruta de reachpad y aún no está en la flota — una herramienta que siempre falla cuesta un turno a un modelo y le enseña a desconfiar del resto, así que este servidor no anuncia nada que no pueda servir.
Qué es y qué no es un enlace de puerto
Vale la pena leerlo antes de entregárselo a alguien, porque nada de esto se puede descubrir desde la URL:
Cualquier persona con sesión iniciada en Reachpad que tenga el enlace puede abrirlo. No es una URL privada ni segura. Trátalo como un despliegue de vista previa.
El enlace es una dirección, no una copia. Reinicia la aplicación en el mismo puerto y el mismo enlace sirve la nueva versión.
Un proceso en ejecución no sobrevive a una pausa. El entorno arranca en frío con sus archivos intactos y nada en ejecución, así que después de una pausa el enlace responde con un error hasta que algo vuelva a escuchar en ese puerto. La petición de un visitante despierta un entorno en pausa; no reinicia nada dentro de él.
expose_portmarca el puerto después y te dice si nada respondió, porque un enlace a un puerto que no sirve nada se ve exactamente como un enlace que funciona. Pasacheck: falsepara omitirlo: el marcado reanuda un entorno en pausa.Con solo
REACHPAD_API_KEY, la clave debe ser--role owner. Una clave decollaboratores rechazada: listar devuelve tokens vivos, y un token es una capacidad.
Las reglas para las que está construido
Estas son las formas en que un cliente ingenuo de una API de ejecución en streaming engaña a un modelo, y lo que esta hace en su lugar.
Un flujo no terminado es UNKNOWN, nunca éxito. Si la respuesta termina sin un evento terminal, la herramienta lo dice con esas palabras. No es una salida cero, y un agente no debe reintentar un comando no idempotente basándose en ello.
Su plazo es más flexible que el del servidor, así que una respuesta del lado del servidor siempre gana la carrera. Un cliente que se rinde primero convierte "tu compilación terminó" en "desconocido", y los números se reflejan desde el servidor en lugar de adivinarse.
Los rechazos llevan remedios, no códigos. En el límite de tu plan obtienes el límite, tu recuento actual y qué hacer: los números vienen del servidor, porque un límite codificado en un cliente es una mentira en el momento en que tu plan cambia.
Los resultados son identificadores, no cargas útiles. La salida se trunca con el recuento de bytes descartados nombrado. Los registros de compilación pueden ser de megabytes, y un resultado MCP de ese tamaño destruye la ventana de contexto del llamador.
Un rechazo es un resultado, no un error de transporte, para que el modelo pueda leerlo y actuar. Solo una herramienta desconocida es un error de protocolo.
Pruebas
node --test 'test/*.test.mjs'Sin red y sin credenciales. La suite de protocolo lanza el servidor incluido como proceso hijo y habla JSON-RPC real sobre su stdio contra un plano de control simulado en un socket real, así que nada bajo prueba es una importación interna. Una prueba ejecuta el mismo arco contra un reachpad real y se omite cuando no hay un endpoint configurado.
Repositorio
Este repositorio es la fuente. Está deliberadamente separado del backend de reachpad: este código es público, se publica en npm, y su flujo de trabajo de lanzamiento tiene derechos de publicación — nada de lo cual pertenece al mismo repositorio que el plano de control. Nada aquí puede leer el código fuente del backend, y ningún trabajo en el backend copia archivos hacia aquí.
Dos constantes del servidor se reflejan en src/client.js — el período de gracia de ejecución y el tiempo de espera de ejecución predeterminado. Una constante reflejada normalmente se pudre; esta no, porque el propio CI del backend obtiene este paquete publicado y falla si no coinciden. La comprobación vive donde cambiaría el número.
Maintenance
Related MCP Connectors
Create and drive plori cloud agents and workflows over MCP; each agent has its own environment.
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
Hosted MCP memory and agent control plane for durable conversations, jobs, and operations.
MCP-first toolbox for agents: KV storage, auth, queue, and utility tools. Free in early access.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceProvides MCP tools for managing disposable Docker sandboxes that let AI agents safely execute commands in isolated, ephemeral environments.

Nolane Habitatofficial
FlicenseNot gradedqualityBmaintenanceProvides coding agents with a durable, revision-aware project workspace for semantic context, governed source changes, verification, task checkpoints, and observability through an MCP interface.1- AlicenseNot gradedqualityBmaintenanceA durable MCP control plane for starting, observing, steering, continuing, cancelling, and handing off long-running coding agents, with bounded MCP calls and persistent worktrees.235MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI clients to securely operate isolated coding workspaces with file, command, Git, and deployment tools via authenticated remote MCP.8MIT
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/Reachpad/reachpad-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server