Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Fail-closed deterministic checks and hash-chained receipts for AI agent outputs via MCP.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"haltproof": {
"command": "uvx",
"args": [
"haltproof-cli",
"haltproof",
"mcp-server"
]
}
}
}ターミナルでこれを実行します
claude mcp add haltproof -- uvx haltproof-cli haltproof mcp-serverプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"haltproof": {
"command": "uvx",
"args": [
"haltproof-cli",
"haltproof",
"mcp-server"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"haltproof": {
"type": "stdio",
"command": "uvx",
"args": [
"haltproof-cli",
"haltproof",
"mcp-server"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月7日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント RudrenduPaul で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.3)がレジストリに届いたのは3 か月前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにPython (uv)も必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Master CSS
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況i更新=最新バージョンをレジストリに公開した日i
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.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
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
冒頭だけを表示しています。続きはリポジトリで読めます