Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Australian Bureau of Statistics data: 1,227 tables, offering only options confirmed to serve data
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://abs-data-front-door.aicolab.workers.dev/mcpRun this in your terminal
claude mcp add --transport http abs-data https://abs-data-front-door.aicolab.workers.dev/mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"abs-data": {
"url": "https://abs-data-front-door.aicolab.workers.dev/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": {
"abs-data": {
"type": "http",
"url": "https://abs-data-front-door.aicolab.workers.dev/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://abs-data-front-door.aicolab.workers.dev/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 6, 2026
The publisher (SamJB123) is not the repo owner (AI-CoLab); someone else may have listed it
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 0 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.
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (0.1.0) reached the registry 2 months 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, Fomu MCP
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.
Kenya government form guides: checklists, draft letters, eCitizen, Huduma, timelines. Sample data.
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.
This project measured what the Australian Bureau of Statistics Data API actually serves — every dataflow, by retrieval — and exposes the result as a typed front door: an MCP server and an HTTP API that only ever offer what exists.
| Front door | https://abs-data-front-door.aicolab.workers.dev |
| Add to claude.ai / any MCP client as a connector | https://abs-data-front-door.aicolab.workers.dev/mcp (registry name io.github.AI-CoLab/abs-data) |
MCP (2026-07-28, stateless) — 4 fixed verbs + Code Mode search/execute, resources, prompts | https://abs-data-front-door.aicolab.workers.dev/mcp |
RPC door (Cap'n Web; what @abs/sdk speaks — HTTP batch or WebSocket) | https://abs-data-front-door.aicolab.workers.dev/rpc |
| HTTP API | https://abs-data-front-door.aicolab.workers.dev/api/tables |
| Scalar reference | https://abs-data-front-door.aicolab.workers.dev/api/docs |
| Corrected OpenAPI | https://abs-data-front-door.aicolab.workers.dev/api/openapi.json |
| The menu as one document | https://abs-data-front-door.aicolab.workers.dev/api/catalogue.json |
| Live browsable catalogue | https://abs-data-front-door.aicolab.workers.dev/catalogue |
| Static snapshot (claude.ai artifact) | https://claude.ai/code/artifact/d0635dee-5cce-40dd-bfa2-7ab7dd03e5bd |
STATE is a function of REGION in 664 flows). The remaining 19% is not reducible to a single-dimension dependency.detail=serieskeysonly — the endpoint that should answer "what exists" — is broken (HTTP 200, malformed JSON). Eight of fifteen documented behaviours do not conform. See reports/.DESIGN.md is the full record: verified API findings, every decision and why, and the corrections made along the way.
packages/schema Drizzle schema (declared vs observed, never joined), shared CSV/period parsing
packages/crawler structural crawl, observed probe, conformance suite, sizing packages/catalogue delta report, sparsity analysis, contract generator, OpenAPI emitter, artifact packages/contract the corrected contract: stable Zod verbs + generated tables/options (per crawl) packages/worker the front door: MCP door (SDK v2) + HTTP door (oRPC + Scalar) + RPC door (Cap'n Web) on one Worker packages/sdk @abs/sdk — typed TypeScript client over the RPC door (connect(), invalidSelectionFromError()) reports/ delta.md/json, sparsity.md/json, openapi.json, abs-report-draft.md data/ local SQLite catalogue (~400GB), raw archive, D1 import SQL — not committed
pnpm install
pnpm db:migrate # local SQLite at data/abs-catalogue.sqlite
pnpm crawl:structural # 7 bulk requests, ~1 minute pnpm crawl:probe -- '--key-values=*' # every dataflow by retrieval; ~24h, 20GB heap for the giants pnpm report:delta && pnpm report:sparsity pnpm generate:contract # -> packages/contract/src/generated, data/d1/*.sql pnpm --filter @abs/catalogue emit:openapi
cd packages/worker npx wrangler d1 execute abs-catalogue --local --file=../../data/d1/00-schema.sql # then each data file npx wrangler dev ABS_MCP_URL=http://localhost:8787/mcp npx tsx test/protocol.ts # ~50 checks, all doors pnpm --filter @abs/sdk example # the SDK against production ABS_URL=http://localhost:8787 npx tsx test/limits.ts # rate limits (spends a minute's budget)
Rate limits, per client address: 600 requests/min overall; 120/min for data pulls (each is a live ABS call); 20/min for Code Mode execute. Over the limit, HTTP doors answer 429 with Retry-After; an MCP tool call gets a tool error.
Using the SDK from TypeScript:
import { connect, invalidSelectionFromError } from "@abs/sdk";
const abs = connect(); // https://abs-data-front-door.aicolab.workers.dev/rpc const [hits, cpi] = await Promise.all([ // one HTTP batch abs.searchTables({ query: "cpi rent", limit: 3 }), abs.describeTable("CPI"), ]); try { const data = await abs.getData({ table: "CPI", select: { REGION: "Sydney", INDEX: "10001" }, lastN: 4 }); } catch (err) { const invalid = invalidSelectionFromError(err); // typed: reason, dimension, validOptions from observation }
The probe is resumable: rerunning skips flows already recorded as complete. For the largest census flows run with NODE_OPTIONS=--max-old-space-size=20480.
Gotcha: wrangler keys the *local* D1 state by database_id. Changing the id in wrangler.toml (e.g. after d1 create) gives wrangler dev a fresh, empty local database — re-run the local import.
availableconstraint (which agrees with the probe on every dimension of every flow).input_required on MCP, a typed 422 on HTTP.