Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Fail-closed, change-aware verification for AI coding agents with affected-test guidance.
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.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://diffci.com/mcp/v1Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"diffci": {
"command": "npx",
"args": [
"-y",
"@diffci.com/diffci",
"mcp"
]
}
}
}Run this in your terminal
claude mcp add --transport http diffci https://diffci.com/mcp/v1claude mcp add diffci -- npx -y @diffci.com/diffci mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"diffci": {
"url": "https://diffci.com/mcp/v1"
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"diffci": {
"command": "npx",
"args": [
"-y",
"@diffci.com/diffci",
"mcp"
]
}
}
}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": {
"diffci": {
"type": "http",
"url": "https://diffci.com/mcp/v1"
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"diffci": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@diffci.com/diffci",
"mcp"
]
}
}
}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.
ChatGPT connects only to servers on the internet:
https://diffci.com/mcp/v1Menu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Tool names and descriptions exactly as the server reported them on Nov 6, 2026. The maker wrote them, not us; we show them as plain text.
diffci_validation_planPlan change-aware CI validation, affected-test selection, test impact analysis, or GitHub Actions workflow checks. Returns a safe local DiffCI command without accessing the checkout or executing it.
diffci_interpret_reportValidate and summarize a DiffCI observation report, including selective or full mode, affected-test counts, fallbacks, non-interference evidence, and the conservative next action.
diffci_verify_workflow_textPerform a stateless preliminary safety check of GitHub Actions YAML: dedicated observer job, continue-on-error, dependency isolation, read-only permissions, and immutable DiffCI references.
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 DiffCI, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 74 ms (HTTP 200)
No sign-in needed
Read 3 tool descriptions and found no hidden instructions to the AI
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 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.
The registry does not list a required key, though some servers ask you to sign in on first use.
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed –, and the latest version (0.3.32) reached the registry today.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, Detailing Manager
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.
Connect your auto detailing studio's tasks, cars, clients and revenue to Claude or ChatGPT.
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.
Affected checks before push, for AI coding agents. DiffCI tells Claude Code, Codex, Cursor (or you) which tests and checks a change affects, so they run before the push instead of failing at the full CI gate afterwards. MIT licensed, runs locally, sends nothing by default, and falls back to the full suite whenever the evidence is incomplete.
npx "@diffci.com/diffci@latest" check
Run it in any Git checkout with Node.js 22.5+. What the output means.
Coding agents pass the narrow check they picked and miss wider breakage, then rerun the whole suite when they are unsure. We measured this on our own agent-built production app (about 1,100 commits in two months, most of them co-authored by Claude):
package.json changed. Narrowing those safely is the main open problem, and a good place to contribute.The public integrations/agent-plugin package makes the published DiffCI CLI available as a checkout-aware local MCP plugin. It contains only public marketplace metadata, skills, and a pinned npm launcher; it does not include product services or private source. The cross-agent installation guide covers Codex, Claude Code, Cursor, Grok, Meta Muse Code, and generic MCP hosts.
# Codex
codex plugin marketplace add DiffCI/core codex plugin add diffci@diffci-local
claude plugin marketplace add DiffCI/core claude plugin install diffci@diffci-marketplace
Cursor Marketplace reads .cursor-plugin/marketplace.json from this repository. Meta Muse Code reads the native root marketplace.json. Before a public listing is approved, use the local MCP configuration in the agent-plugin package or visit https://diffci.com/mcp-server.
Installing the plugin does not make an agent use it. Paste the short agent-instructions snippet into CLAUDE.md or AGENTS.md so it runs DiffCI before pushing.
The public action.yml is an observation-only GitHub Action wrapper. It runs the pinned published DiffCI CLI outside the observed checkout, retains existing CI jobs, and uploads an advisory report. See the observer Action guide and workflow example.
The v0.3.10 corresponding source remains publicly available at tagged Core commit 4c76be14 (cli-v0.3.10-source) while distribution migrates to the Core-native CLI package.
diffci check compares full and selected runtime when safe to measure, writes reports outside the checkout, and sends nothing by default. Test commands can generate files; keep required CI authoritative.
Measured example: one controlled Cal.com sandbox replay measured 44.2% net reduction in install + pretest + test runtime including analysis overhead. This is a job-equivalent comparison, not production savings or a forecast for your repository. Method and limitations.
Star Core · Volunteer a pilot repository · Find a first contribution. Watch → Custom → Releases and Discussions for benchmark results and support updates. Public roadmap.
This is the standalone Core engine. It analyzes local JavaScript/TypeScript repositories, supported Vue components, root Go modules and conventional Maven reactors, traces dependency impact, infers GitHub Actions structure and proposes test selections with evidence and full-run fallbacks. It works without a DiffCI account, hosted service or API key. See the release boundary for support limits.
Want to try DiffCI in an existing repository? Use the published CLI: npx @diffci.com/diffci@latest check. See the CLI quickstart for a no-execution analysis option, prerequisites, and result interpretation. The commands below build the standalone engine from source.
Requires Git and Node.js 22.5 or later.
git clone https://github.com/DiffCI/core.git
cd core npm ci npm run build npm test node dist/cli.js plan --repo /path/to/clean-checkout --base HEAD~1 --head HEAD
The target must be a clean Git repository root checked out at --head. Fetch the base commit beforehand if using a shallow clone. JSON goes to stdout; analysis errors exit nonzero and recommend full CI. Core does not execute repository scripts, contact a DiffCI backend or send telemetry. Installation requires the npm registry.
To evaluate the same command on pull requests without changing required jobs, copy the advisory GitHub Actions example.
Plans are advisory. This release does not execute, skip or cancel CI jobs. SKIP_CANDIDATE is a candidate, not permission to bypass a check. Keep full CI authoritative while evaluating Core. Missing command synthesis, unsupported configuration and incomplete evidence must not be treated as an empty test suite. Static analysis is not proof that a test can safely be omitted.
For Maven jobs whose CI runs a lifecycle goal or profiles other than test, declare them in diffci.json (or the diffci key in package.json):
{ "maven": { "goal": "verify", "profiles": ["run-its"] } }
This changes the proposed command, such as mvn -pl tools -am verify -P run-its; Core still does not run it. Confirm the command against the repository's CI workflow before using it for execution.
Declared pnpm workspaces with a single Vitest test phase can receive package-local command plans. Each selected path must belong to a discovered test in a declared package. Runtime selections are batched to keep commands below Windows limits; packages declaring --typecheck retain a separate full type-test phase. Packages with compound scripts, lifecycle hooks, overlapping ownership or discovery blind spots refuse selective execution. Commands remain advisory and must be executed separately; CLI automatic timing of multiple commands requires additional integration.
| Area | Implementation |
|---|---|
| Changes and dependencies | Git deltas, repository inventory, JS/TS dependency graph, impact traversal |
| Safety and planning | Risk signals, conservative fallback, always-run policy, test selection and command synthesis |
| CI analysis | GitHub Actions evidence, job/reference graphs, conditions and matrix inference |
| Reproducible evaluation | Synthetic benchmark and portable regression tests |
| Measurement | Current-process wall time, CPU time and ending RSS; explicit-input cost/energy/carbon estimates |
The library entry point exports analyzeCheckout, buildDependencyGraph, ImpactAnalyzer, DefaultCIPlanner, collectEvidence, inferPipeline, measure and estimateImpact. Lower-level modules are available as package subpaths. This repository is the engine source, and the published @diffci.com/diffci CLI is released from it. The corresponding source for the previously published v0.3.10 package is retained in the source archive at tagged commit 4c76be14.
npm run typecheck
npm run audit:boundary npm run benchmark
The benchmark constructs one temporary synthetic repository containing 100 chained modules and 100 importing test files. In one Node.js process it builds that same dependency graph three times, sequentially, and removes the fixture afterward. Install dependencies first with npm ci, then run npm run benchmark under Node.js 22.5 or later. Record the emitted node and platform alongside the machine CPU, memory, operating system, and competing workload when comparing runs. The three builds share process, operating-system, and compiler warmup effects; they are not independent repetitions with controlled cold caches.
Each entry in runs has these fields:
| Field | Interpretation |
|---|---|
basis: "measured" | The process counters were observed rather than estimated. |
scope: "current-process" | Only the benchmark's Node.js process is covered, not the whole host, container, or CI job. |
wallSeconds | Elapsed wall-clock time around one buildDependencyGraph call. |
cpuSeconds | User plus system CPU time consumed by the current process during that call; it can differ from wall time. |
rssBytesAtEnd | Resident-set size sampled after the call. It is neither peak memory nor the memory allocated by that call alone. |
nodes, edges | Graph size. The current fixture should produce 200 nodes and 199 dependency edges. |
confidence | Dependency-graph confidence for this synthetic fixture. COMPLETE does not prove that a real repository can safely skip tests. |
For example, wallSeconds: 0.79, cpuSeconds: 0.84, and rssBytesAtEnd: 327868416 mean that one graph build elapsed for about 0.79 seconds, consumed about 0.84 current-process CPU seconds, and ended with roughly 328 MB RSS. They do not mean that CI became 0.79 seconds faster or saved 328 MB. The script does not execute tests, installation, builds, or a full-versus-selected comparison, so its timings must not be reported as CI savings.
The separate estimateImpact API can calculate estimatedUsd, estimatedKwh, and estimatedKgCo2e only from caller-supplied computeSeconds, price, power, and grid-intensity assumptions. Those values have basis: "estimated"; they are modeled scenarios, not benchmark output, physical measurements, billing records, or verified avoided emissions.
DiffCI Core is supported by its GitHub Sponsors. Sponsorship funds maintenance, broader language and CI support, and reproducible benchmarks.
No Partner sponsors yet. Become the first.
No Team Sponsors yet. Team Sponsor logos also appear on diffci.com/sponsors.
No Backers yet. Backers at $25/month or above are listed here.
Sponsors' bug reports are labelled sponsor and triaged first.
| Component | Availability | License |
|---|---|---|
| This Core repository | Public source | MIT |
| DiffCI Cloud: hosting, billing, organization management, dashboard, managed services | Private source | Proprietary; not included here |
| Optional enterprise modules | Not released here | A separate source-available license would apply if
Only the beginning is shown; read the rest in the repo