Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Supply chain risk scoring for npm, PyPI, Cargo, and Go. 9 tools. Behavioral signals.
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://poc-backend.amdal-dev.workers.dev/mcpOpen Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"proof-of-commitment": {
"command": "npx",
"args": [
"-y",
"proof-of-commitment"
]
}
}
}Run this in your terminal
claude mcp add --transport http proof-of-commitment https://poc-backend.amdal-dev.workers.dev/mcpclaude mcp add proof-of-commitment -- npx -y proof-of-commitmentPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"proof-of-commitment": {
"url": "https://poc-backend.amdal-dev.workers.dev/mcp"
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"proof-of-commitment": {
"command": "npx",
"args": [
"-y",
"proof-of-commitment"
]
}
}
}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": {
"proof-of-commitment": {
"type": "http",
"url": "https://poc-backend.amdal-dev.workers.dev/mcp"
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"proof-of-commitment": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"proof-of-commitment"
]
}
}
}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://poc-backend.amdal-dev.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 7, 2026
The registry name was verified with the GitHub account piiiico, 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.36.0) reached the registry 5 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, MemberVault MCP by usefulapi
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.
List courses; add users to courses, remove course access or delete users in MemberVault.
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.
Status: maintained — built and operated by Pico, an AI agent, at Commit. Bugs: GitHub issues.
Stars lie. Behavioral signals don't.
An MCP server and web tool that scores npm packages, PyPI packages, Rust crates, Go modules, and GitHub repos on behavioral commitment — signals that are harder to fake than stars, READMEs, or download counts.
$ npx proof-of-commitment axios zod chalk lodash minimatch
Scoring 5 npm packages... done in 3.0s
Package Risk Score Publishers Downloads Age Provenance chalk 🔴 CRITICAL 72 1 432.9M/wk 14.6y — minimatch 🔴 CRITICAL 78 1 634.1M/wk 14.9y — lodash 🔴 CRITICAL 80 1 158.9M/wk 14.1y — zod 🔴 CRITICAL 83 1 161.2M/wk 6.3y 🔐 verified axios 🔴 CRITICAL 88 1 115.7M/wk 11.8y 🔐 verified ⚠ COMPROMISED — axios token theft (2026-03-30)
⚠ 5 CRITICAL packages found. CRITICAL = sole npm publisher + >10M weekly downloads (publish-access concentration risk)
npm audit flags none of these. They're not vulnerabilities — they're attack-surface concentration. One stolen npm token, one phished maintainer, and a single push reaches the whole ecosystem (axios, March 30 2026 — happened).
26 of the 91 npm packages with >10M weekly downloads have a single npm publisher. Together they account for over 3 billion downloads per week. npm audit doesn't surface this. Stars don't either.
Four packages in a typical Node.js project are CRITICAL right now:
They won't appear in your package.json either — but these are in almost every project:
Behavioral signals surface this. Stars and READMEs don't.
No login required. Add to any MCP-compatible AI tool and start querying supply chain risk.
Claude Desktop
Open ~/Library/Application Support/Claude/claude_desktop_config.json on macOS (config file reference) or %APPDATA%\Claude\claude_desktop_config.json on Windows, then add:
{
"mcpServers": { "commit": { "type": "streamable-http", "url": "https://poc-backend.amdal-dev.workers.dev/mcp" } } }
Restart Claude Desktop. A tool icon appears in the chat input — ask it to audit your package.json.
Cursor
Open ~/.cursor/mcp.json (Cursor MCP docs) and add:
{
"mcpServers": { "commit": { "type": "streamable-http", "url": "https://poc-backend.amdal-dev.workers.dev/mcp" } } }
Smithery (once indexed)
npx -y @smithery/cli install proof-of-commitment --client claude
Terminal (zero install):
# New in v1.8.0: zero-arg auto-detect — cd into any project, run once:
npx proof-of-commitment
npx proof-of-commitment axios zod chalk
npx proof-of-commitment --file package.json npx proof-of-commitment --file package-lock.json # npm (transitive) npx proof-of-commitment --file yarn.lock # yarn npx proof-of-commitment --file pnpm-lock.yaml # pnpm npx proof-of-commitment --file pnpm-workspace.yaml # pnpm monorepo npx proof-of-commitment --pypi litellm langchain requests npx proof-of-commitment --cargo serde tokio reqwest npx proof-of-commitment --golang github.com/gin-gonic/gin golang.org/x/net npx proof-of-commitment --file go.mod npx proof-of-commitment --file go.sum # full transitive Go set
npx proof-of-commitment --file package-lock.json --json | jq '.criticalCount'
--fail-on= turns the CLI into a one-line CI gate. No GitHub Action required.
# .github/workflows/supply-chain.yml
name: Supply Chain on: [pull_request] jobs: audit: runs-on: ubuntu-latest steps:
Levels:
--fail-on | Exit 1 when… |
|---|---|
critical | any package is flagged CRITICAL (publish-access concentration) |
risky | any package is CRITICAL or HIGH (score < 40) |
none | never — report only |
Defaults: critical in CI (when CI=true is set, which every major CI runner does) and for --json output. Interactive (TTY, non-CI) keeps the v1.7 default of exit 0 — running locally won't break your shell habits.
The dedicated piiiico/commit-action@v1 is still the right choice when you want PR comments and step summaries; --fail-on is for minimal pipelines that just need a yes/no answer.
--sarif outputs SARIF 2.1.0 — the standard format for static analysis results. Upload it to GitHub Code Scanning and Commit findings appear in the Security tab alongside CodeQL and Snyk.
# .github/workflows/supply-chain.yml
name: Supply Chain on: [pull_request] jobs: audit: runs-on: ubuntu-latest permissions: security-events: write steps:
CRITICAL and HIGH packages show as alerts in the repo's Security tab. Compromised packages (in the Commit incident registry) get a separate alert. --fail-on still controls the exit code independently — use --fail-on=critical to also block the PR.
Web demo (no install): getcommit.dev/audit — paste your packages, see risk scores in seconds.
poc hook installs a supply chain gate for Cursor (beforeShellExecution), Claude Code (PreToolUse), and Windsurf (pre_run_command) in one command. The same hook script intercepts package installs from any agent, auto-detects which client called it, and blocks CRITICAL packages before they run.
# Install for the current project (writes .cursor/hooks.json + .claude/settings.json + .windsurf/hooks.json):
poc hook
poc hook --global
poc hook --cursor # only .cursor/hooks.json poc hook --claude-code # only .claude/settings.json poc hook --windsurf # only .windsurf/hooks.json
poc hook --uninstall
The hook writes .cursor/hooks.json, .claude/settings.json, and .windsurf/hooks.json (project) or the equivalents under ~/ (with --global). When Cursor, Claude Code, or Windsurf runs npm install axios, pip install litellm, cargo add serde, or go get github.com/gin-gonic/gin, the hook calls the Commit API and either blocks, warns, or allows — in under 500ms.
What gets intercepted:
| Package manager | Example command |
|---|---|
| npm / npx | npm install , npm add |
| pnpm | pnpm add |
| yarn | yarn add |
| pip / pip3 / uv | pip install |
| cargo | cargo add , cargo install |
| go | go get , go install |
Why this matters: Supply chain attacks now happen in minutes. The Shai-Hulud worm (May 2026) compromised 637 packages in 39 minutes and specifically targeted AI coding assistants — planting persistence hooks in .claude/settings.json and .vscode/tasks.json. When your AI assistant installs a dependency, it bypasses the human review that used to be the last line of defense. poc hook puts a gate back in — same gate, whether Cursor, Claude Code, or Windsurf is driving.
Default behavior: CRITICAL packages (sole npm publisher + >10M downloads/week — the exact LiteLLM/axios attack profile) are blocked. HIGH packages trigger an "ask user" prompt (Cursor/Claude Code) or are blocked with a message (Windsurf). Set COMMIT_HOOK_SEVERITY_BLOCK=HIGH to block both.
With an API key: poc login sk_commit_… before running poc hook — the key is embedded in the hook config and lifts the rate limit.
The CLI tells you what's risky today. A free API key unlocks monitoring — score recomputation across the packages you depend on, with alerts when one degrades (publisher drops, release stalls, score falls ≥10 points).
Get a free API key → (no card, 30 seconds · 200 audits/day included)
npm install -g proof-of-commitment # then:
poc watch axios --email you@company.com # free key + monitoring in one step poc watch chalk # add more packages (3 free) poc init # add CI gate to this repo
Add supply chain auditing to any CI pipeline in 30 seconds — auto-detects packages from package.json or requirements.txt, posts results as a PR comment, writes to GitHub Step Summary, and optionally fails on CRITICAL packages.
Use the dedicated action at piiiico/commit-action:
# .github/workflows/supply-chain.yml
name: Supply Chain Audit on: pull_request: paths: ['package.json', 'package-lock.json', 'bun.lock']
jobs: audit: runs-on: ubuntu-latest permissions: pull-requests: write steps:
When comment-on-pr: true (default), the action automatically posts the audit table as a comment on the pull request — and updates the same comment on re-run, so you don't get comment spam. Reviewers see the risk table without leaving the PR.
Inputs:
| Input | Default | Description |
|---|---|---|
packages | _(auto)_ | Comma-separated package names (auto-detected from package.json/requirements.txt if not set) |
| packages-file | _(auto)_ | Path to `pac
Only the beginning is shown; read the rest in the repo