Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
CLI-first remote runtimes for validation and offload tasks, exposed over MCP stdio.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
SQUIRE_TOKEN, SQUIRE_API_BASE_URLValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"squire": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SQUIRE_TOKEN",
"-e",
"SQUIRE_API_BASE_URL",
"ghcr.io/reidgoodbar/squire-mcp:0.6.5"
],
"env": {
"SQUIRE_TOKEN": "your-value",
"SQUIRE_API_BASE_URL": "your-value"
}
}
}
}Run this in your terminal
claude mcp add squire --env SQUIRE_TOKEN=your-value --env SQUIRE_API_BASE_URL=your-value -- docker run -i --rm -e SQUIRE_TOKEN -e SQUIRE_API_BASE_URL ghcr.io/reidgoodbar/squire-mcp:0.6.5Fill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"squire": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SQUIRE_TOKEN",
"-e",
"SQUIRE_API_BASE_URL",
"ghcr.io/reidgoodbar/squire-mcp:0.6.5"
],
"env": {
"SQUIRE_TOKEN": "your-value",
"SQUIRE_API_BASE_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"squire": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"SQUIRE_TOKEN",
"-e",
"SQUIRE_API_BASE_URL",
"ghcr.io/reidgoodbar/squire-mcp:0.6.5"
],
"env": {
"SQUIRE_TOKEN": "your-value",
"SQUIRE_API_BASE_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
SQUIRE_API_BASE_URL envThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026
The registry name was verified with the GitHub account reidgoodbar, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: SQUIRE_TOKEN
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (0.6.5) reached the registry 7 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Docker on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Aiterm MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
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.
Persistent terminals and one launcher for Claude, Codex, Grok, Cursor, and Antigravity harnesses.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Squire is a transparent local execution and verification layer for coding agents. It keeps common repository reads hot and continuously maintains whether the current declared workspace state is verified.
The agent keeps using ordinary terminal commands. Before Codex starts a local read-only command, Squire checks current state and either replays a proven mmap observation or executes a small bounded operation over hash-verified current file bytes. A valid hit returns the exact stdout, stderr, and exit status. Every miss follows Codex's original native execution path.
curl -fsSL https://raw.githubusercontent.com/reidgoodbar/squire/main/install.sh | bash
The installer verifies matching Squire and Squire-Codex release archives and installs the driver, Codex runtime helper, and host-native Squire runtime to ~/.local/bin. It does not change Codex authentication or configuration. Supported hosts are macOS and Linux on amd64 or arm64.
Check the installation:
squire doctor
doctor exits nonzero when any required driver, helper, runtime, or ABI component is missing.
Start from any directory:
squire codex
That is the complete user path. There is no setup command, global shell shim, prompt change, MCP tool, preload injection, or VM provisioning step. If Codex moves into a repository later, Squire discovers and prepares that repository from the command's actual cwd.
squire-codex is also installed as a direct convenience command.
Inspect the current repository and runtime:
squire status
squire status --json squire explain -- git status --short
Squire Green runs declared tests, lint, typechecks, and builds natively in the background after repository edits settle. Each result is bound to the exact declared input bytes, check configuration, environment, and executable. A later relevant edit makes that result stale; unrelated edits do not.
# .squire/checks.toml
[[check]] name = "tests" command = ["go", "test", "./..."] inputs = ["**/*.go", "go.mod", "go.sum"] timeout = "10m"
Repository-provided commands never run silently on first use. Review the file and trust its exact hash once:
squire green trust
squire verify
Any config change revokes trust. squire codex then schedules trusted checks automatically; no second daemon or warm command is required. See docs/GREEN.md for configuration and proof semantics.
Production lanes are bounded but cover the common read-only command surface:
git rev-parse forms and branch discovery.git status, git ls-files, and git diff forms, including path-scoped diffs and git diff --check, plus bounded git log -N --oneline -- history.cat, ordered single- or multi-range sed -n, head, tail, nl -ba, file, fixed-string grep/rg, demand-prepared bounded repository rg searches, and tight ls forms.which/command -v, safe printenv, whoami, id, hostname, and uname forms./dev/null, head, tail, bounded sed -n, grep -F, wc -l, and sort.No operation is removed. Builds, tests, edits, installs, mutating Git commands, expansions, unknown shell syntax, sensitive probes, and unsupported variants immediately follow Codex's unchanged native path. A safe cold miss does the same while requesting exact preparation in the background. rg --files remains outside the bounded preparation policy and follows the native path.
Supported commands compile into typed bounded plans rather than exact command templates. Source proof and execution are separate: one proven file snapshot can serve different line selections, filters, and compositions without a cache entry for each command string. The same plan representation is implemented by the Go engine and native runtime, keeping future read operators additive while differential tests enforce parity at the ABI boundary.
Squire caches observations, not authority. A foreground replay either recomputes the inputs that can affect that command or reuses a cryptographic fingerprint while a complete kqueue/inotify guard reports no dependency change. The prepared epoch must still match. Proof inputs include the normalized command and cwd, Git refs/index/config and external behavior files, relevant workspace state, canonical paths, content hashes, command-specific environment proof, and executable identity. Guard failure always invalidates the resident proof.
For bounded file reads, an epoch mismatch may instead use the current-file lane: Squire retains the exact bytes read while computing the foreground SHA-256 proof and applies only its fixed byte grammar to those bytes. This requires no rewarm and does not persist the file or result. The cache may still contain stale records, but they are never replayed after a proof mismatch. Missing state, corruption, unsupported syntax, an ABI mismatch, or an unprofitable proof all become native fallback.
The invalidation suite changes file bytes without changing size or mtime, mutates the Git index and untracked set, changes same-size diffs, edits Git config, commits, renames branches, changes loose and packed object namespaces, changes environment inputs, and probes outside-workspace symlinks. Returning old bytes or an unsafe hit fails the release.
See SQUIRE_CONTRACT.md for the complete invariants.
On July 16, 2026, a 500-command randomized production-ABI run recorded 421 exact hits, 79 safe fallbacks, 468 native comparisons, zero mismatches, and zero unsafe hits. Hit p50/p95/p99 was 0.315/0.630/0.933ms; the same commands ran natively at 8.084/27.692/51.820ms. A separate 500-query repository-search differential had 500 exact or order-equivalent hits and zero semantic mismatches. Bounded path history was 28/28 exact at 0.333ms p50 and 0.492ms p99 versus 20.060ms native p50. All 2,048 steady calls were exact with 0.433ms wall p99. Under eight-way load, CPU p99 was 0.334ms; scheduler- contended wall p99 was 3.242ms.
Fresh live gpt-5.6-luna treatments independently replayed 2/3 Express calls (66.7%), 5/5 Flask calls (100%), and 4/5 fmt calls (80%). Every treatment passed the 50% all-terminal-call gate with valid accounting and zero diagnostic mismatches. These small live samples validate coverage, not causal whole-task wall time; model trajectories diverged before seeing tool results.
A deterministic 40-pair Codex attribution test held model responses, commands, workspace, and terminal payloads fixed. Six serial calls fell from 374.876ms to 103.600ms, saving 271.277ms (72.4%, paired 95% interval 265.630-276.540ms). Two parallel batches saved 52.6%. AB and BA orders both remained positive, while interleaved A/A and B/B intervals included zero.
Full methodology and historical tables: docs/BENCHMARKS.md.
Architecture and backend notes: docs/ADVANCED.md.