Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Formula-backed WorkPaper tools for workbook readback, input edits, and JSON persistence.
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://bilig.proompteng.ai/mcpOpen Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"bilig-workpaper": {
"command": "npx",
"args": [
"-y",
"@bilig/workpaper"
]
}
}
}Run this in your terminal
claude mcp add --transport http bilig-workpaper https://bilig.proompteng.ai/mcpclaude mcp add bilig-workpaper -- npx -y @bilig/workpaperPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"bilig-workpaper": {
"url": "https://bilig.proompteng.ai/mcp"
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"bilig-workpaper": {
"command": "npx",
"args": [
"-y",
"@bilig/workpaper"
]
}
}
}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": {
"bilig-workpaper": {
"type": "http",
"url": "https://bilig.proompteng.ai/mcp"
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"bilig-workpaper": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@bilig/workpaper"
]
}
}
}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://bilig.proompteng.ai/mcpMenu 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.
We have not read this server’s tool list yet; we check endpoints in rotation.
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 proompteng, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Not checked yet; we check endpoints in rotation
Not checked yet; we check endpoints in rotation
Not checked yet; we read the tool list when we check the endpoint
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.
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 (1.1.0) reached the registry 34 days ago.
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, EmbeddedCI BenchPod
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.
Drive a BenchPod hardware-in-the-loop bench: power, flash, UART, I2C, CAN, analog and logic.
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.
Keep the workbook model. Run the rule in Node.
Bilig is a TypeScript-native, headless WorkPaper runtime for Node.js services, tests, and AI agents. Set inputs, recalculate formulas, read computed outputs, persist WorkPaper JSON, restore it, and verify the result—without driving Excel or a browser grid.
Docs · Quick start · TypeScript API · MCP · Examples · Discussions
[!NOTE]
Bilig is a headless workbook runtime, not a visual spreadsheet app or a claim
of full Excel compatibility. If an
.xlsxfile is your contract, start with
the compatibility report.
Prove the published package before installing it:
npm exec --yes --package @bilig/workpaper@latest -- bilig-evaluate --door workpaper-service --json
The evaluator edits Inputs!B2, recalculates Summary!B2, saves the WorkPaper, restores it, and compares the restored value:
{
"schemaVersion": "bilig-evaluator.v1", "door": "workpaper-service", "evidence": { "editedCell": "Inputs!B2", "dependentCell": "Summary!B2", "before": 24000, "after": 38400, "afterRestore": 38400 }, "verified": true }
verified: true means the write, formula readback, JSON export, and restored readback all passed. It is stronger evidence than a successful write call.
npm install @bilig/workpaper
import { buildA1WorkPaper } from '@bilig/workpaper'
const pricing = buildA1WorkPaper({ Inputs: [ ['Metric', 'Value'], ['Units', 20], ['Price', 1200], ], Summary: [ ['Metric', 'Value'], ['Revenue', '=Inputs!B2*Inputs!B3'], ], })
const proof = pricing.editAndReadback('Inputs!B2', 32, { readbackRange: 'Summary!B2', })
console.log(proof.afterReadback.displayValues[0]?.[0]) // 38400 console.log(proof.verified) // true
pricing.dispose()
For ordinary operations, use set(), setMany(), readMany(), display(), and saveJson(). Use editManyAndReadback() when multiple inputs must be committed and verified as one edit. The complete public API is documented in packages/workpaper/README.md.
The lifecycle is deliberately small:
inputs → formula recalculation → typed readback → JSON persistence → restore verification
| Capability | What it gives you |
|---|---|
| Workbook-shaped models | Sheets, A1 addresses, formulas, ranges, and named expressions without a spreadsheet UI. |
| Verified mutations | Before/after computed values plus persistence and restore checks. |
| Service-owned state | Portable WorkPaper JSON for routes, queues, tests, tools, and audit trails. |
| Agent-safe tools | Narrow read/write tools with exact cells, computed readback, and writable-sheet boundaries. |
| Explicit file boundaries | Separate XLSX import, export, risk inspection, and Excel-oracle workflows. |
Use Bilig for pricing, quote approval, payouts, forecasts, validation rules, formula-backed workflows, and tests where a service or tool should own the model. Choose a spreadsheet application or hosted spreadsheet API when you need visual editing, collaboration, macros, interactive pivots or charts, or desktop fidelity.
Agents should first ask which system owns state, then run the smallest matching proof. For a tool host or MCP client:
npm exec --yes --package @bilig/workpaper@latest -- bilig-agent-start --json
npm exec --yes --package @bilig/workpaper@latest -- bilig-evaluate --door agent-mcp --json
The MCP evaluator proves tool discovery, mutation, recalculated readback, JSON export, disk persistence, process restart, and restored readback. For a local, writable WorkPaper:
npm exec --yes --package @bilig/workpaper@latest -- bilig-workpaper-mcp --workpaper ./pricing.workpaper.json --init-demo-workpaper --writable
Use that local stdio path for private or persistent project state. The hosted https://bilig.proompteng.ai/mcp endpoint is request-local and only intended for stateless connector discovery and smoke tests; do not send private workbook data to it.
The server exposes list_sheets, read_range, read_cell, set_cell_contents, set_cell_contents_and_readback, get_cell_display_value, export_workpaper_document, and validate_formula. It also publishes MCP resources and prompts so capable hosts can discover the workflow before editing cells.
Machine-readable entry points:
| Need | Entry point |
|---|---|
| A compact routing card | docs/agent-start.txt |
| A concise model index | docs/llms.txt |
| Full agent documentation | docs/llms-full.txt |
| Installation context | docs/llms-install.md |
| Structured capabilities | docs/agent.json |
| Reusable skill | skills/bilig-workpaper/SKILL.md |
| Proof and host matrix | docs/agent-adoption-kit.md |
The published package also carries AGENTS.md and SKILL.md, so an agent can discover the same proof contract from node_modules. Install or inspect the public skill with either source:
npx --yes skills@latest add https://bilig.proompteng.ai --list
npx --yes skills@latest add proompteng/bilig --skill bilig-workpaper --list
Host-specific project files
Use the agent rule chooser or the host handoff prompt. The repository includes CLAUDE.md, .claude/skills/bilig-workpaper/SKILL.md, .claude/commands/bilig-workpaper-proof.md, .cursor/rules/bilig-workpaper.mdc, .devin/rules/bilig-workpaper.md, .windsurf/rules/bilig-workpaper.md, .clinerules/bilig-workpaper.md, .continue/rules/bilig-workpaper.md, .zed/settings.json, opencode.jsonc, and .opencode/agents/bilig-workpaper.md.
Run an evaluator first, then use the recipe owned by your host:
MCPServerStdio, and MCPServerStreamableHttp.generateText() and streamText() tool loops.@bilig/n8n-nodes-workpaper community node.| Your state owner | Start here | Evidence to require |
|---|---|---|
| TypeScript application | npm install @bilig/workpaper | direct A1 API and focused application tests |
| Node service, route, queue, or test | bilig-evaluate --door workpaper-service --json | edit, recalculation, JSON export, restore, verified: true |
| MCP client or tool host | bilig-evaluate --door agent-mcp --json | discovery, readback, disk persistence, restart |
Imported .xlsx is the contract | workbook-compatibility-report workbook.xlsx --json | unsupported formulas and workbook risk reasons for that file |
Cached .xlsx values look stale | xlsx-cache-doctor workbook.xlsx --json | stale-cache diagnosis, recalculation, and readback for that file |
The workbook-compatibility and xlsx-cache evaluator doors use bundled demo workbooks to smoke-test the published package; they do not inspect your file. Do not treat any evaluator as proof of desktop Excel parity.
Start with one maintained example, not the whole monorepo:
examples/headless-workpaper: pricing, invoice, budget, fulfillment, subscription, persistence, and agent examples.examples/serverless-workpaper-api: quote approval through Hono, Next.js, and persistence adapters.examples/xlsx-recalculation-node: import, recalculate, export, reimport, and verify an XLSX workbook.examples/recalc-bridge-workflows: focused bridges for existing SheetJS, xlsx-populate, and ExcelJS workflows.Useful decision guides:
QUERY and SORTNRunnable integration and diagnostic commands
pnpm --dir examples/headless-workpaper run agent:ai-sdk-generate-text
pnpm --dir examples/headless-workpaper run agent:ai-sdk-stream-text pnpm --dir examples/headless-workpaper run agent:openai-responses pnpm --dir examples/headless-workpaper run agent:mcp-xlsx-risk-preflight pnpm --dir examples/serverless-workpaper-api run hono-route pnpm --dir examples/serverless-workpaper-api run next-server-action pnpm --dir examples/serverless-workpaper-api run next-server-action-formdata
The AI SDK generateText() smoke lives at [`ai-sdk-generate-text-tool-smoke.t
Only the beginning is shown; read the rest in the repo