Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Deedglass lets rules decide each AI agent tool call, checks what really changed and seals a record.
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.
DEEDGLASS_SERVER, DEEDGLASS_API_KEYValues 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": {
"deedglass": {
"command": "npx",
"args": [
"-y",
"deedglass",
"mcp",
"serve"
],
"env": {
"DEEDGLASS_SERVER": "your-value",
"DEEDGLASS_API_KEY": "your-value"
}
}
}
}Run this in your terminal
claude mcp add deedglass --env DEEDGLASS_SERVER=your-value --env DEEDGLASS_API_KEY=your-value -- npx -y deedglass mcp serveFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"deedglass": {
"command": "npx",
"args": [
"-y",
"deedglass",
"mcp",
"serve"
],
"env": {
"DEEDGLASS_SERVER": "your-value",
"DEEDGLASS_API_KEY": "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": {
"deedglass": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"deedglass",
"mcp",
"serve"
],
"env": {
"DEEDGLASS_SERVER": "your-value",
"DEEDGLASS_API_KEY": "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.
DEEDGLASS_SERVER 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 6, 2026
The registry name was verified with the GitHub account deedglass, 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: DEEDGLASS_API_KEY
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.15.0) reached the registry 9 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, HotCodePush
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.
Manage over-the-air (OTA) updates for React Native, Expo, Capacitor and Cordova apps.
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.
Deedglass (Deed Glass)
Check what your AI agents actually changed.
An agent said it updated 1 row. Postgres changed 301.
Safety for AI agents that work on databases and health records. Rules decide each AI agent tool call;
Deedglass checks what really changed and seals a record. Open source, self-hosted, every feature free.
npx -y deedglass
An app opens in your browser. It runs on your own computer, signed in, with no account, no sign-up and no Docker or database to set up, and nothing is sent to us. Choose who will use it (a clinic, hospital IT, or people building with AI), then connect Claude Desktop, Cursor, VS Code, a record system or a database. You need Node 18 or newer. Read Start here for a short tour, or try it without installing anything at deedglass.com/play.
For developers, three commands:
npx -y deedglass start # an agent reports 1 row, Postgres changed 301, and it's caught
npx -y deedglass protect # guard Claude Code, Cursor and other coding agents npx -y deedglass help # the eight everyday commands; "help all" lists every command
Without Docker, start plays the same scene inside the binary, every line labelled live or replay, in under 30 s. More: Quickstart · Docs · Policy Generator · Healthcare · Benchmarks · Security · deedglass.com
Found it useful? A star helps other people find Deedglass. To hear about new releases, use Watch › Custom › Releases.
Deedglass sits between AI agents and the systems they change. Rules decide each tool call, a check compares what the system really changed with what the agent reported (Claimed, Checked or Proven; Matches, Doesn't match or Can't check), and each result is sealed as a signed record anyone can check offline. It can undo the rows an action changed.
A real run of make demo-hero (commit 97a524c, 2026-10-14), each line shown at the time it printed. Source: docs/assets/demo-hero.cast.json , recorded by scripts/demo/capture.mjs and drawn by scripts/demo/cast2svg.mjs ( make demo-svg ).
curl -fsSL https://deedglass.com/install.sh | sh # macOS and Linux: checks the sha256, copies deedglass into ~/.local/bin
npx -y deedglass help # or run it with no install (Node 18 or newer) npm install -g deedglass # or install it from npm
| Other ways | Command |
|---|---|
| Binaries | archives for macOS, Linux and Windows on the latest release, with checksums.txt |
| Go | go install github.com/deedglass/deedglass/cmd/deedglass@latest (the CLI, without the Console) |
| Docker | build the image from a checkout: make web-build docker (tags deedglass:dev; Node 24 builds the Console) |
The install script downloads the release archive for your platform, checks its sha256 against the release's checksums.txt (and the signature, when cosign is installed), and copies deedglass into ~/.local/bin; read it first: scripts/install.sh. It downloads from a copy of the release on deedglass.com and falls back to GitHub: about 7 s on one network in India, where the GitHub-only install took 81-119 s. A public container image is coming; until it's published, build the image locally as above. Checksums, signatures and SBOMs: docs/INSTALL.md.
docs/WITNESS_DEBEZIUM.md).npx deedglass health pilot (the 15-minute hospital pilot).docs/LOCKDOWN.md). Records are signed and anyone can check them offline with deedglass verify.CHANGELOG.md and on the releases page. The deed format is a versioned public spec (spec/), so old records keep verifying.GOVERNANCE.md). Replies are best effort (SUPPORT.md).ee/, and it runs on your machines with your own Postgres. Nothing checks a licence and nothing is sent to deedglass.com (Security).docs/LIMITATIONS.md and KNOWN_ISSUES.md.flowchart LR
A["AI agent Claude · OpenAI · Cursor · any MCP client"] -->|tool call + agent key| R subgraph D["Deedglass · one binary + Postgres"] R["1 · Rules allow · deny · ask a person"] --> X["2 · Run with credentials from the vault"] X --> C["3 · Check what really changed"] --> S["4 · Seal a signed record"] end X --> T["Tools Postgres · FHIR · GitHub · Slack · Stripe · MCP servers"] T -->|change log or read-back| C S --> U["Undo Postgres rows, after a person countersigns"] H[People] -->|approve · stop| R
Every tool call passes through Deedglass with the agent's key. Your rules (policies) decide allow, deny or require_approval; Deedglass runs the call with credentials the agent never holds; the check compares what happened with what was asked; and the outcome is sealed as a record in the org's chain.
| Level | What it checks | What it can't see |
|---|---|---|
| Claimed | The tool's own answer, against a schema and your postconditions | Whether the answer is true |
| Checked | A read-back from the target (GitHub, Slack, Stripe, Notion, REST, Postgres rows) | Side effects the read-back doesn't cover |
| Proven | Postgres's change log (logical decoding): every row the transaction committed | DDL, sequences, unlogged tables and anything outside that database's WAL |
Each record claims one level and one result: Matches, Doesn't match or Can't check. When Deedglass can't tell whether a tool ran, the result is Can't check, never Matches. The API keeps the short names (L0/L1/L2, VERIFIED/MISMATCH/UNVERIFIABLE); the glossary maps them.
What an agent reports is not always what the system stored, and a log the agent writes itself can't show the difference. An agent was asked to mark order 42 as shipped. It ran one UPDATE and its tool reported 1 row. A legacy trigger shipped 300 more orders in the same transaction. This is the real output of the Quickstart's last step on 2026-10-14 (shortened where you see …):
$ npx -y deedglass init --trigger
… ✕ UPDATE order 42 Proven · Doesn't match · Postgres changed 301 rows in public.orders. The agent reported 1. expected UPDATE 1 row in public.orders where id = 42 · sets status observed UPDATE 301 rows in public.orders · 300 outside id = 42 … ✓ Trigger off orders_ship_open_batch dropped ✓ Undo preview Undo available · 301 rows in public.orders · 301 updates policy undo-needs-approval · a person countersigns first
The agent's log says 1 row. Deedglass read Postgres's own change log for that transaction, found 301, sealed the difference as a record, and planned an undo from those rows that runs only after a person countersigns.
Docker running with about 2 GiB of free disk, Node 18 or newer, and macOS or Linux, then (from the tested Quickstart). On Windows, npx deedglass runs the native Windows binary, no WSL needed; deedglass init uses Docker on macOS and Linux, so on Windows start with npx deedglass app, which needs no Docker:
mkdir acme-agents && cd acme-agents
npx -y deedglass init --yes npx -y deedglass doctor npx -y deedglass init --trigger
<!-- quickstart:end -->
deedglass init starts two Postgres 18.6 containers in Docker (Deedglass's own database and a demo database), runs deedglass serve on 127.0.0.1:8080, creates an org, an agent and the postgres-check policy (reads and writes run, every write is checked at Proven, DROP and TRUNCATE never run; use postgres-safe in production, where writes wait for a person), and ends with a blocked DROP TABLE and
Only the beginning is shown; read the rest in the repo