Cheap Labor
Resumen
Cheap Labor existe porque el uso de Codex es una cuota limitada, y la mayor parte de lo que hace un agente de codificación no es escribir código. Leer archivos, explorar el repositorio, planificar y revisar diffs consume la cuota de Codex sin escribir ni una línea de código.
Luego llegó la idea clave: el uso de ChatGPT y Codex se contabiliza por separado, dos cuotas independientes. Así que decidimos dividir el trabajo: ChatGPT hace todo el razonamiento con su propia cuota, y Codex se gasta solo en la implementación real.
Esa es toda la idea: un servidor MCP local conectado a través de un Secure MCP Tunnel: ChatGPT en la web controla un Codex CLI en tu máquina, sobre tu repositorio local, con un único disparador @cheap-labor.
Tecnologías
Cheap Labor está construido con una pila deliberadamente pequeña y multiplataforma:
Runtime: Node.js (>= 20) — runtime del servidor puente
Lenguaje: TypeScript — todo el código del puente
Protocolo: MCP SDK (
@modelcontextprotocol/sdk) — servidor y cliente MCP stdioValidación: zod — esquemas de argumentos de herramientas
Ejecutor: Codex CLI (
codex mcp-server) — cliente MCP hijo generado para exploración e implementaciónConectividad: Secure MCP Tunnel (
tunnel-client) — enlace privado solo de salida entre ChatGPT web y el servidor local
Related MCP server: Kontrol
Requisitos previos
macOS o Linux con Node.js >= 20 + npm
git
Una cuenta de ChatGPT de pago con modo desarrollador
Codex CLI, con sesión iniciada (
codex login)tunnel-client— se instala durante la configuración: en macOS mediante Homebrew; en Linux mediante el binario de GitHub releases (linux-amd64/arm64) en tu PATHUn Secure MCP Tunnel + clave de API de runtime de la plataforma OpenAI (el instalador te indica las páginas correctas)
Instalación
Ir a: 1. Clonar e instalar → 2. Cómo usarlo
Clona el repositorio y entra en él:
git clone https://github.com/psrisuphan/cheap-labor.git cd cheap-laborEjecuta el instalador — instala las dependencias, compila el puente, escribe tu perfil de túnel, valida las 23 herramientas y te guía paso a paso para conectar la app a ChatGPT web:
./scripts/install.sh
Cómo usarlo
Inicia el túnel — mantenlo en ejecución mientras uses cheap-labor:
./scripts/tunnel.sh start # stop: ./scripts/tunnel.sh stopAbre un nuevo chat de ChatGPT y escribe
@cheap-labor— el mismo nombre de app que añadiste desde el menú de herramientas — y luego menciona el proyecto.Confirma el directorio del proyecto cuando se te pregunte — la sesión queda armada.
Desinstalar
./scripts/uninstall.shLimpia todo lo que el script puede alcanzar: el registro MCP heredado, el demonio del túnel, el estado de .codex-bridge/ en cada proyecto inicializado, el perfil del túnel y la clave de API almacenada, y los artefactos de compilación. Tres avisos (pulsa Enter para la respuesta recomendada, n para conservar). Después imprime una guía de limpieza manual para las partes a las que solo tú puedes acceder: la conexión de la app de ChatGPT, el túnel de la plataforma, la clave de API de runtime y la carpeta del proyecto.
Cómo funciona
El puente está inactivo hasta que se arma. Mientras está inactivo, el servidor solo envía un aviso de dos líneas "ignora estas herramientas" como sus instructions, de modo que las indicaciones no relacionadas se responden sin que el puente se tenga en cuenta. Las reglas completas del flujo de trabajo viven en la carga de retorno de la herramienta init y entran en la conversación solo después de armarse.
El disparador es la propia invocación — sin monitoreo de indicaciones, sin sintaxis de etiquetas, sin escaneo de frases:
El usuario invoca cheap-labor escribiendo
@cheap-labor. Ese es el único disparador.ChatGPT pregunta qué proyecto quieres, lo resuelve (
find_projectspara nombres aproximados,create_projectpara directorios nuevos), confirma la ruta exacta contigo y luego arma la sesión —init(project)(ocreate_projectdirectamente para un directorio completamente nuevo) y recibe unsession_token.Todas las demás herramientas se niegan a ejecutarse sin un
session_tokenválido — una salvaguarda firme que también bloquea el uso accidental fuera del flujo de trabajo.
El flujo de trabajo
Arma la sesión —
@cheap-labor+ confirma el proyecto →initdevuelve el token.Comprende —
git_status,list_tree,read_file,grep(todo gratis).Planifica en detalle — ChatGPT escribe
PLAN.md/SPEC.md/TASKS.mden la carpeta.codex-bridge/del repositorio conplan_write. El plan son instrucciones exactas paso a paso: qué archivos crear/editar, qué debe cambiar en cada uno, qué comandos ejecutar y cómo verificar.Ediciones pequeñas, hechas directamente —
write_file/edit_filegestionan cambios de un solo archivo gratis.Delega el trabajo pesado —
implemententrega el plan a Codex, que ejecuta los pasos literalmente, ejecuta compilaciones/pruebas, arregla lo que se rompe y devuelveIMPLEMENTATION COMPLETE.Revisa — ChatGPT lee el
git diffdevuelto y envía correcciones específicas de vuelta por el mismo bucle.
Características
Activación con un solo disparador:
@cheap-laboren cualquier chat de ChatGPT es el único disparador; el puente permanece inactivo (cero atención del modelo) hasta que se invoca — sin monitoreo de indicaciones, sin sintaxis de etiquetas, sin escaneo de frases.Ejecución con control de riesgo: los comandos se clasifican como de solo lectura o de riesgo; el trabajo arriesgado pasa por la revisión automática de Codex y tu veto.
Salvaguardas de seguridad integradas: delimitación de rutas del proyecto, redacción de secretos, puntos de control antes de cada ejecución pesada y commits solo locales que nunca se envían.
Multiplataforma: macOS y Linux, sin puertos públicos, túnel solo de salida.
Referencia de herramientas
Herramientas gratuitas del puente (E/S local determinista, sin coste de Codex):
Herramienta | Propósito |
| Arma la sesión para un proyecto (el único punto de entrada); devuelve el |
| Estructura de directorios, con límite de profundidad |
| Contenido de archivos, con rango de líneas, límite de tamaño y secretos redactados |
| Búsqueda con expresiones regulares con globs de inclusión/exclusión |
| Estado del repositorio + el bucle de revisión (se muestran los archivos sin seguimiento) |
| Comandos de verificación con control de riesgo (pruebas, compilación) |
| Crea un archivo nuevo directamente (se niega a sobrescribir) |
| Edición por coincidencia exacta de un archivo existente (guardia de obsolescencia basada en contenido) |
| Ediciones/escrituras por lotes, todo o nada (sin estado parcial) |
| Instantánea de HEAD + árbol de trabajo para reversión (automático antes de |
| Restaurar a un punto de control (confirmado por el usuario; a su vez reversible) |
| Preparar + confirmar localmente con un mensaje aprobado por el usuario (nunca envía) |
| Lista los puntos de control registrados |
| Resuelve nombres aproximados a rutas candidatas (superficial, ubicaciones conocidas) |
| Crea un directorio de proyecto nuevo (sin |
| Gestiona los archivos de traspaso de |
Herramientas respaldadas por Codex (gastan la cuota de Codex):
Herramienta | Propósito |
| Sesión de Codex de solo lectura para preguntas que las herramientas gratuitas no pueden responder |
| Codex con escritura en el espacio de trabajo sobre el plan actual; devuelve un resumen + |
| Continúa una sesión por id de hilo (bucle de veto de aprobaciones, seguimientos) |
Modelo de seguridad
implement/deep_exploresiempre pasan un sandbox explícito (workspace-write/read-only) — nuncadanger-full-access.Modelo de Codex fijo — cada llamada a Codex fija
gpt-5.6-lunacon razonamientomediumy Fast Mode desactivado, pasado como anulaciones por llamada. El puente nunca escribe en~/.codex/config.toml. La única excepción:deep_exploreacepta un modelo más potente, pero solo después de que confirmes el cambio en el chat.Aprobaciones automáticamente seguras — las aprobaciones de shell de Codex se presentan como solicitudes de MCP: los comandos de solo lectura se aprueban automáticamente; cualquier cosa arriesgada (escrituras, red, mutaciones de git) se rechaza y se registra para que ChatGPT te la transmita para un veto. El veto se ejecuta con
codex_reply.run_commandejecuta ejecutables directamente (sin shell). Los comandos arriesgados se delegan a la revisión automática de Codex — nunca acceso completo, nada arriesgado se ejecuta sin que se te pida.write_filesolo crea archivos nuevos;edit_filesolo edita archivos existentes mediante reemplazo por coincidencia exacta (las coincidencias obsoletas o ambiguas no escriben nada);edit_packagrupa cambios de todo o nada. Todos limitan los tamaños y rechazan archivos binarios.Modo ship —
checkpointcrea una instantánea de HEAD + el árbol de trabajo (se toma automáticamente antes de cadaimplement);rollbackrestaura un checkpoint (que a su vez se puede deshacer);git_commithace commit localmente con un mensaje aprobado por el usuario. Push/pull/reset/rebase/checkout nunca se exponen.Las herramientas del puente rechazan rutas fuera del directorio del proyecto aprobado en la sesión.
read_file/git_diffredactan patrones de secretos conocidos por defecto.
Estructura del proyecto
cheap-labor/
├── assets/ # Logo / icons
├── scripts/ # Installer, uninstaller, tunnel control, setup
│ ├── install.sh # All-in-one installer
│ ├── uninstall.sh # Clean uninstaller
│ ├── tunnel-setup.sh # Writes the tunnel-client profile
│ ├── tunnel.sh # start / stop / restart / status / logs the tunnel daemon
│ └── setup.mjs # Prerequisite check
├── src/ # Bridge MCP server
│ ├── index.ts # Server entry, tool registration, server instructions
│ ├── safety.ts # Project scoping, redaction, risk classification
│ ├── projects.ts # Session approvals, ledger, find/create
│ ├── planstore.ts # .codex-bridge/ I/O
│ ├── approvals.ts # Auto-safe policy
│ └── tools/ # context, command, codexCommand, codex, deepExplore,
│ # implement, edit, plans, ship
├── tests/ # Node test suite
├── dist/ # Build output (gitignored)
└── package.jsonPruebas
Para ejecutar las suites de pruebas unitarias:
npm run typecheck # tsc --noEmit
npm test # node --test (tsx)Datos y registros locales
Cheap Labor guarda su perfil de túnel, la clave de API de ejecución y los registros del daemon localmente, fuera del directorio del proyecto:
macOS / Linux:
~/.config/tunnel-client/
Dentro de este directorio encontrarás:
cheap-labor.yaml— el perfil detunnel-client(contiene el id del túnel).cheap-labor.key— la clave de API de ejecución, chmod 600, nunca se hace commit.cheap-labor.log— el registro del daemon del túnel.
Los planes y los archivos de traspaso se escriben en la carpeta .codex-bridge/ de cada proyecto en tiempo de ejecución (ignorada por git). La configuración y la autenticación propias de Codex viven en ~/.codex/.
Licencia
Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para ver el texto completo de la licencia.
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
- Alicense-qualityAmaintenanceAn MCP server that provides AI coding agents with AST-accurate, context-budget-aware codebase querying, safety gates, and team policy integration via structured tools and a local plugin layer.5724MIT
- Alicense-qualityBmaintenanceA self-hosted MCP server that enables AI coding agents to read, edit, search, and run code in local projects with human review loops and policy controls.MIT
- AlicenseAqualityAmaintenanceMCP server that enables a coordinator AI agent to spawn, control, and supervise local coding agents with interactive gating for high-risk operations.10381MIT
- Alicense-qualityCmaintenanceLocal MCP server enabling Codex and ChatGPT to read/write files, execute commands, manage processes, use Git, and inspect images on the user's machine with full privileges.Apache 2.0
Related MCP Connectors
A paid remote MCP for OpenAI Codex agent coordination MCP, built to return verdicts, receipts, usage
MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.
An MCP server that gives your AI access to the source code and docs of all public github repos
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/psrisuphan/cheap-labor'
If you have feedback or need assistance with the MCP directory API, please join our Discord server