Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者提供的说明(英文原文)
Deedglass lets rules decide each AI agent tool call, checks what really changed and seals a record.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
DEEDGLASS_SERVER, DEEDGLASS_API_KEY标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json
{
"mcpServers": {
"deedglass": {
"command": "npx",
"args": [
"-y",
"deedglass",
"mcp",
"serve"
],
"env": {
"DEEDGLASS_SERVER": "your-value",
"DEEDGLASS_API_KEY": "your-value"
}
}
}
}在终端中运行这条命令
claude mcp add deedglass --env DEEDGLASS_SERVER=your-value --env DEEDGLASS_API_KEY=your-value -- npx -y deedglass mcp serve运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"deedglass": {
"command": "npx",
"args": [
"-y",
"deedglass",
"mcp",
"serve"
],
"env": {
"DEEDGLASS_SERVER": "your-value",
"DEEDGLASS_API_KEY": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"deedglass": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"deedglass",
"mcp",
"serve"
],
"env": {
"DEEDGLASS_SERVER": "your-value",
"DEEDGLASS_API_KEY": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。
你的选择通过 Cookie 保存在这台设备上,无需账户。
DEEDGLASS_SERVER env这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日
注册名称已通过 GitHub 账户 deedglass 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
它在你的电脑上运行,没有互联网端点
在你的电脑上运行,改用本地设置
它在你的电脑上运行;我们只能读取互联网端点的工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:DEEDGLASS_API_KEY
它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。
GitHub 仓库最后更新于–,最新版本(0.15.0)于9天前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Node.js。
同一分类中有:Spec Driven Development, Remote Desktop Commander, Apify MCP Server
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况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.
Extract data from any website with thousands of scrapers, crawlers, and automations on Apify Store ⚡
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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
只显示了开头部分;其余内容请在仓库中阅读