Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
Fail-closed deterministic checks and hash-chained receipts for AI agent outputs via MCP.
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": {
"haltproof": {
"command": "uvx",
"args": [
"haltproof-cli",
"haltproof",
"mcp-server"
]
}
}
}Ejecuta esto en tu terminal
claude mcp add haltproof -- uvx haltproof-cli haltproof mcp-serverPégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"haltproof": {
"command": "uvx",
"args": [
"haltproof-cli",
"haltproof",
"mcp-server"
]
}
}
}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": {
"haltproof": {
"type": "stdio",
"command": "uvx",
"args": [
"haltproof-cli",
"haltproof",
"mcp-server"
]
}
}
}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 RudrenduPaul, 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.1.3) llegó al registro hace 3 meses.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, Master CSS
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.
Inspect Master CSS classes, generated CSS, and project stylesheets from your AI client.
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.
Emergency-shutdown orchestration for Slurm, Kubernetes, and IPMI clusters, with an Ed25519-signed, hash-chained attestation record of exactly what ran.
Signed, dry-run-by-default shutdown orchestration for Slurm, Kubernetes, and IPMI clusters, with a tamper-evident audit trail.
HaltProof is an emergency-shutdown orchestration and cryptographic audit-proof layer for compute clusters. It does not implement a new low-level shutdown mechanism. It coordinates cluster primitives you already trust (Slurm, Kubernetes, IPMI/BMC) and produces a signed, tamper-evident record of exactly what was targeted, what ran, and who authorized it.
pip install haltproof-cli
(Full install options, including the npm wrapper, are in Install below.)
Operators already have the tools to drain a Slurm partition, cordon a Kubernetes node pool, or power-fence a physical host over IPMI. What's usually missing is:
HaltProof is that layer. It calls out to scontrol, kubectl, and ipmitool (or mcp-invokable equivalents) and wraps every invocation in an Ed25519-signed, hash-chained attestation.
pip install haltproof-cli
An npm wrapper is also published for Node.js-based tooling and agent runtimes:
npm install -g haltproof-cli
[!WARNING]
The npm package requires the Python
haltproof-clipackage to already be
installed and on
PATH. It is a thinexecFileSyncwrapper, not a
reimplementation. If it can't find the Python CLI, it prints an actionable
error and exits non-zero rather than silently doing something else.
haltproof halt prints exactly which commands it would run, against which nodes, and still writes a signed attestation of that plan, unless you pass --confirm. The gate lives at a single chokepoint (haltproof.backends.runner.run_step) that all three backends route through, so it can't be quietly bypassed by one backend's code path.kubernetes (via kubectl), slurm (via scontrol), and ipmi (via ipmitool) each implement the same four-operation ClusterBackend interface: drain, isolate_network, power_fence, status. A backend that doesn't support an operation, for example Kubernetes has no physical power-fencing primitive, returns a SKIPPED result with an explanation instead of raising, so a halt across a mixed environment still produces one complete attestation.prev_hash, the content hash of the record before it, so haltproof verify --chain can catch a deleted or reordered entry that a single record's own signature check would miss.--json (or --format json) is available on halt, verify, status, and keygen, so a script or an agent can parse the result without screen-scraping human-formatted text.haltproof mcp-server exposes halt, verify, verify_chain, status, and keygen as MCP tools over stdio, built on the official mcp Python SDK. It calls the same haltproof.core functions the CLI calls, so an agent invoking the MCP tool gets the identical dry-run-by-default behavior a human gets from the CLI.pytest -v --cov=haltproof --cov-report=term-missing. Backend tests mock subprocess calls; none of them require a real cluster.[!IMPORTANT]
haltproof haltis a no-op without--confirm. It prints the plan and
writes a signed dry-run attestation, but nothing destructive runs until
you pass
--confirmexplicitly.
# Generate a signing key for attestations (do this once).
haltproof keygen --output ~/.config/haltproof/ed25519_key
haltproof status
haltproof halt gpu-pod-a --nodes node-1,node-2
haltproof halt gpu-pod-a --nodes node-1,node-2 --confirm
haltproof verify 1
haltproof verify --chain --attestation-log ~/.local/share/haltproof/attestations.jsonl
Every command also supports --json for agent-parseable output:
haltproof status --json
haltproof halt gpu-pod-a --nodes node-1 --json
Target groups, the preferred backend, and default paths can live in a haltproof.toml file (checked in the current directory, then ~/.config/haltproof/config.toml, or at a path given by --config / HALTPROOF_CONFIG):
backend = "kubernetes"
operator_id = "ops-team" attestation_log_path = "/var/log/haltproof/attestations.jsonl"
[groups] gpu-pod-a = ["node-1", "node-2", "node-3"]
[kubernetes] namespace = "training"
[ipmi] user = "admin"
Every config value has a matching CLI flag, and an explicit flag always wins over the config file.
Reference below is regenerated from the CLI's actual --help output.
haltproof halt TARGET_GROUPDrain, isolate, and power-fence TARGET_GROUP. Dry-run is the default; nothing destructive runs without --confirm.
Options:
--nodes TEXT Comma-separated explicit node list, overrides config group lookup. --backend TEXT Backend to use: kubernetes, slurm, or ipmi. --confirm Actually execute the halt. Without this, dry-run only. --reason TEXT Reason recorded for drain operations. --operator-id TEXT Operator identity to record. Defaults to OS user. --config TEXT Path to a haltproof.toml config file. --attestation-log TEXT Path to the attestation log file. --attestation-key TEXT Path to the Ed25519 private key used to sign the attestation. --no-sign Skip signing (not recommended); still logs the record unsigned. --remote-collector TEXT Optional URL to POST the signed attestation to. --format [human|json] Output format. --json Shorthand for --format=json.
haltproof verify [ATTESTATION_REF]Verify one attestation record's signature, or an entire log's hash chain. ATTESTATION_REF is a path to a record file, or an attestation id / sequence number to look up in the log. Pass --chain instead of ATTESTATION_REF to verify a whole --attestation-log: every record's signature holds, and none has been deleted or reordered.
| Flag | Description | |
|---|---|---|
--attestation-log TEXT | Log to search when ATTESTATION_REF is an id/sequence number, or to verify with --chain. | |
--trusted-key TEXT | Path to a trusted Ed25519 public key; if given, the record's signing key must match it. | |
--chain | Verify the full hash chain of --attestation-log instead of a single record. | |
| `--format [human\ | json]` | Output format. |
--json | Shorthand for --format=json. |
haltproof statusShow backend auto-detection results and, optionally, target-group health.
| Flag | Description | |
|---|---|---|
--backend TEXT | Backend to check status for; defaults to the auto-detected/configured backend. | |
--nodes TEXT | Comma-separated node list to report health for. | |
--group TEXT | Named target group (from config) to report health for. | |
--config TEXT | Path to a haltproof.toml config file. | |
| `--format [human\ | json]` | Output format. |
--json | Shorthand for --format=json. |
haltproof keygenGenerate an Ed25519 keypair for attestation signing. The private key is written with 0600 permissions and is never printed or logged.
Options:
--output TEXT Path to write the private key to. --force Overwrite an existing key at the output path. --format [human|json] Output format. --json Shorthand for --format=json.
haltproof mcp-serverStarts the HaltProof MCP server on stdio, exposing halt, verify, verify_chain, status, and keygen as MCP tools. No flags beyond --help.
Every subcommand also accepts --help directly for the same reference shown above.
HaltProof has three layers:
haltproof.cli) and the MCP server (haltproof.mcp_server). Both are thin wrappers over the same core functions in haltproof.core, so a human running the CLI and an agent calling the MCP tool get identical behavior, including the dry-run-by-default gate on halt.ClusterBackend abstract interface (haltproof.backends.base) with four operations: ClusterBackend
├── drain(nodes, dry_run, reason) -> stop new work being scheduled ├── isolate_network(nodes, dry_run) -> cut nodes off from the workload network ├── power_fence(nodes, dry_run) -> hard power off └── status(nodes) -> current reachability/state
Three backends implement it today:
| Backend | drain | isolate_network | power_fence | Underlying tool |
|---|---|---|---|---|
kubernetes | cordon + drain | deny-all NetworkPolicy | not supported (use ipmi) | kubectl |
slurm | scontrol update state=drain | state=power_down (SuspendProgram hook) | not supported (use ipmi) | scontrol |
ipmi | not supported (use slurm/kubernetes) | not supported | ipmitool chassis power off | ipmitool |
A backend that doesn't support a given operation returns a SKIPPED result with an explanation instead of raising, so a halt sequence against a mixed environment still produces one complete, honest attestation record. Adding support for a new scheduler or fencing tool means adding one backend module and registering it in haltproof.backends.detect, not touching the orchestration or attestation layers.
Backend selection order: an explicit --backend flag, then the config file's `b
Solo se muestra el principio; lee el resto en el repo