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는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
DEEDGLASS_SERVER env이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 GitHub 계정 deedglass 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: DEEDGLASS_API_KEY
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.15.0)은 9일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 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
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요