Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
Self-hosted MCP server: pi-coding-agent tools (run_prompt, file ops) over streamable HTTP.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"pibox": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"docker.io/psyb0t/pibox:v0.21.0"
]
}
}
}Ejecuta esto en tu terminal
claude mcp add pibox -- docker run -i --rm docker.io/psyb0t/pibox:v0.21.0Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"pibox": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"docker.io/psyb0t/pibox:v0.21.0"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"pibox": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"docker.io/psyb0t/pibox:v0.21.0"
]
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
Esta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub psyb0t, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
El registro no indica ninguna clave obligatoria, aunque algunos servidores te piden iniciar sesión la primera vez que los usas.
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.21.0) llegó al registro hace 13 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Docker en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, Python MCP
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Local-only Python MCP server for the Files.com API.
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
pi-coding-agent inside an aicodebox container. One image, several ways in: interactive shell, one-shot prompt, HTTP API (with an OpenAI-compatible endpoint), MCP server, Telegram bot, and a cron scheduler that fires pi on whatever schedule you want.
You talk to pibox. pibox talks to pi. pi talks to whatever LLM you point it at. Nobody cares about the middle.
pibox wrapperInstall the host wrapper.
curl -fsSL https://raw.githubusercontent.com/psyb0t/docker-pibox/main/install.sh | bash
curl -fsSL https://raw.githubusercontent.com/psyb0t/docker-pibox/main/install.sh | PIBOX_FULL=1 bash
The installer creates the Pi, pibox state, and SSH directories, pulls the selected image, and installs pibox on PATH. The minimal image is the default. PIBOX_FULL=1 on the bash side of the pipe selects the full image and bakes that choice into the installed wrapper.
Install pibox, codexbox, and claudebox in the same command directory, normally /usr/local/bin, when you want one box to launch another. Each wrapper finds the sibling wrapper files there and mounts them read-only into its container. A sibling then runs through the host Docker daemon and mounts its own host data directory.
pibox wrapperRun pibox from the directory you want Pi to work in. The wrapper mounts that directory at the same absolute path inside the container, persists ~/.pi, ~/.aicodebox, and ~/.ssh/pibox, forwards PIBOX_* configuration, and passes Pi arguments through unchanged.
# interactive Pi in the current directory
pibox
pibox -p "list the files in this workspace"
ANTHROPIC_AUTH_TOKEN=your-token \ ANTHROPIC_BASE_URL=https://api.z.ai/api/anthropic \ ANTHROPIC_MODEL=glm-4.6 \ pibox -p "explain this project"
pibox --help
PIBOX_FULL=1 pibox -p "run the test suite"
The wrapper is also the normal way to start a long-running mode. PIBOX_DETACH=1 makes the named container run in the background.
PIBOX_DETACH=1 \
PIBOX_API_MODE=1 \ PIBOX_API_MODE_TOKEN=your-secret \ PIBOX_AVAILABLE_MODELS=glm-4.6,glm-4.5-air \ ANTHROPIC_AUTH_TOKEN=your-token \ ANTHROPIC_BASE_URL=https://api.z.ai/api/anthropic \ ANTHROPIC_MODEL=glm-4.6 \ pibox
Use raw docker run only when you intentionally do not want the host wrapper. The wrapper is the normal interactive and service entry point.
The installed wrapper is the normal interface for people and agents. An agent should run pibox from the requested workspace instead of assembling a new docker run command. The wrapper preserves the workspace path, Pi state, aicodebox state, SSH state, image choice, and container lifecycle.
pibox -p "inspect this workspace and report the failing tests"
PIBOX_FULL=1 pibox -p "run the full test suite" pibox -p "list the files" --thinking high
When one box needs another, install pibox, codexbox, and claudebox in the same command directory. A running box can call the sibling command directly. The parent wrapper passes the host launch context and mounts only the sibling wrapper file. Do not set AICODEBOX_HOST_*, copy a wrapper, or manually mount another box's state directory.
psyb0t/pibox:latest is the minimal image.psyb0t/pibox:latest-full starts from the shared aicodebox:latest-full base, then adds Pi and pibox. It carries the shared development toolchain without rebuilding it in this repository.Foreground modes (API / Telegram / Cron) are mutually exclusive — except PIBOX_TELEGRAM_MODE=1 + PIBOX_CRON_MODE=1, which run together (cron in-thread inside telegram). API wins if set alongside anything else.
MCP mode (PIBOX_MCP_MODE=1) is independent — it coexists with whatever foreground mode is running. In API mode it's mounted at /mcp/ on the API port (slashless /mcp reaches the same handler); in other modes it runs as a sidecar uvicorn on its own port, serving at the port root.
Each mode has its own page with full setup, env vars, and examples.
Long-lived FastAPI server on :8080. Agent runs (sync, async with run-id polling, cancellable), workspace file upload/download/list/delete with traversal checking, and an OpenAI-compatible chat/completions endpoint with streaming and client-executed tool calling.
environment:
Talk to pi from Telegram. Per-chat isolated workspaces, allowed-chats and per-chat allowed-users gating, file ingestion, [SEND_FILE: path] to get files back, and per-chat /model, /effort, /system_prompt, /append_system_prompt overrides that persist across restarts.
environment:
YAML-defined scheduled jobs on 6-field croniter schedules. Per-run history dirs with meta.json, stdout.log, stderr.log, result.txt, and a "prior run" hint so a job can reference its own history.
environment:
Exposes run_prompt plus workspace-confined file tools over streamable HTTP, so other agents can drive pi as a tool. Coexists with any foreground mode — mounted at /mcp/ on the API port in API mode, a sidecar on its own port everywhere else.
environment:
Set PIBOX_GIT_NAME and PIBOX_GIT_EMAIL on the host to configure the runtime user's global Git identity before startup hooks. Direct container deployments accept the same names. Nonempty AICODEBOX_GIT_NAME and AICODEBOX_GIT_EMAIL inside the container take precedence; through the wrapper, supply those shared values as AICODEBOX_ENV_AICODEBOX_GIT_NAME and AICODEBOX_ENV_AICODEBOX_GIT_EMAIL. Empty settings preserve existing Git config. Multiline values are rejected.
make version V=X.Y.Z synchronizes package metadata, lockfile, the Codex plugin manifest, and the installer's wrapper release ref without committing or tagging. Remote installs download the matching release wrapper unless PIBOX_INSTALL_REF overrides it. Updating an image does not update an installed wrapper.
Naming convention: PIBOX_ _MODE=1 is the on/off flag, PIBOX_ _MODE_ =... is its config. Non-mode-scoped vars (workspace, container name, available models) are bare.
The image is built on top of aicodebox, so the equivalent AICODEBOX_* names also work — the entrypoint translates PIBOX_X to AICODEBOX_X when only the pibox-prefixed one is set. If you set both, AICODEBOX_* wins.
Set the upstream endpoint URL, protocol, API key or token, and model with LLM providers. PIBOX_PROVIDER_* supports Pi's documented OpenAI, Anthropic, and Google custom HTTP APIs. The ANTHROPIC_* variables below remain a compatibility path for existing Anthropic-compatible deployments.
| Var | Default | What it does |
|---|---|---|
PIBOX_API_MODE | 0 | Boot the HTTP API server (foreground) |
PIBOX_TELEGRAM_MODE | 0 | Boot the Telegram bot (foreground) |
PIBOX_CRON_MODE | 0 | Boot the cron scheduler (foreground; in-thread when telegram is also on) |
PIBOX_MCP_MODE | 0 | Expose MCP — mounted at /mcp/ in API mode, or as a sidecar elsewhere |
Each mode's own knobs (ports, tokens, config paths, history dirs) live on that mode's page: api.md, telegram.md, cron.md, mcp.md.
| Var | Default | What it does |
|---|---|---|
PIBOX_WORKSPACE | /workspace | Root workspace dir inside the container |
PIBOX_CONTAINER_NAME | aicodebox | Used to scope per-container state files (auth, etc.) |
PIBOX_AVAILABLE_MODELS | — | Required for API mode. CSV list returned by /openai/v1/models and shown in the telegram /model picker. pibox registers every listed model with the upstream provider under PIBOX_PROVIDER_API. API mode refuses to boot without it; telegram /model picker degrades to a "set this env var" reply. |
PIBOX_AVAILABLE_EFFORTS | adapter list | Override the effort/--thinking list shown by the telegram /effort picker (comma-separated) |
PIBOX_DATA_DIR | ~/.pi | Host Pi configuration, auth, extensions, and sessions directory |
PIBOX_STATE_DIR | ~/.aicodebox | Host pibox mode configuration and history directory |
PIBOX_SSH_DIR | ~/.ssh/pibox | Host SSH directory mounted into the container |
PIBOX_IMAGE | installed image | Override the image selected by the installed wrapper |
PIBOX_FULL | installed choice | 0 selects minimal and 1 selects full |
PIBOX_DETACH | 0 | 1 starts a named background container instead of a disposable foreground container |
PIBOX_ENV_* | none | Forward a pibox environment variable into the container |
PIBOX_MOUNT_* | none | Add a same-path or host:container bind mount |
AICODEBOX_ENV_* | none | Forward a shared environment variable into the launched container, with the prefix stripped |
AICODEBOX_MOUNT_* | none | Add a shared same-path or host:container bind mount to the launched container |
Automation can install the wrapper in another command directory with PIBOX_INSTALL_DIR and PIBOX_BIN_NAME. The installed wrapper accepts the versioned AICODEBOX_HOST_* nested-launch context. It uses those host paths as Docker bind sources, makes available sibling wrappers, and applies shared AICODEBOX_ENV_* and AICODEBOX_MOUNT_* values to the child container.
Under PIBOX_STATE_DIR (~/.aicodebox by default):
bin/ are on PATH ahead of everything else, for pi in every mode, for init scripts, and for docker exec shells.init.d/*.sh run once per container, after the image's own init scripts, as aicode with passwordless sudo. A failing script is logged and the rest still run. A new container runs them again, so make them safe to repeat.For Anthropic-compatible endpoints, use the compatibility variables below. For LiteLLM or another OpenAI-compatible endpoint, use generic provider configuration.
| Var | Purpose | |
Solo se muestra el principio; lee el resto en el repo