Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
제작자가 쓴 설명(영어 원문)
Verify an npm or PyPI package before install: advisories, install scripts, typosquats, repository.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
PKGPROOF_ALGORAND_PRIVATE_KEY, PKGPROOF_BASE_PRIVATE_KEY비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
Claude Desktop → Settings → Developer → Edit Config를 열고 claude_desktop_config.json에 이 내용을 붙여 넣으세요
{
"mcpServers": {
"pkgproof": {
"command": "npx",
"args": [
"-y",
"@pkgproof/mcp"
],
"env": {
"PKGPROOF_ALGORAND_PRIVATE_KEY": "your-value",
"PKGPROOF_BASE_PRIVATE_KEY": "your-value"
}
}
}
}터미널에서 이 명령어를 실행하세요
claude mcp add pkgproof --env PKGPROOF_ALGORAND_PRIVATE_KEY=your-value --env PKGPROOF_BASE_PRIVATE_KEY=your-value -- npx -y @pkgproof/mcp실행하기 전에 빈 값을 채워 주세요.
프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"pkgproof": {
"command": "npx",
"args": [
"-y",
"@pkgproof/mcp"
],
"env": {
"PKGPROOF_ALGORAND_PRIVATE_KEY": "your-value",
"PKGPROOF_BASE_PRIVATE_KEY": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"pkgproof": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@pkgproof/mcp"
],
"env": {
"PKGPROOF_ALGORAND_PRIVATE_KEY": "your-value",
"PKGPROOF_BASE_PRIVATE_KEY": "your-value"
}
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
이 서버는 내 컴퓨터에서 실행되는데, ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요. 다른 앱을 고르세요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검
레지스트리 이름이 도메인 pkgproof.net 기준으로 확인되었어요(레지스트리가 도메인 소유를 확인해요)
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
입력해야 할 값: PKGPROOF_ALGORAND_PRIVATE_KEY, PKGPROOF_BASE_PRIVATE_KEY
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.2.1)은 22일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, Draugr
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ 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.
Security scanning for AI agents: SAST, SCA, secrets, IaC, DAST, ranked by real risk.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
An MCP server that verifies an npm or PyPI package before you install it.
One tool, verify_package. It runs nine checks against pkgproof.net covering advisories, install scripts, typosquat and combosquat names, scope and declared-repository checks, and how the release differs from its predecessors, and answers safe, caution, block or does_not_exist with every reason labelled as fact or heuristic against its source.
The first verification each day is free and needs no configuration at all. No account, no key, no signup. Later calls the same day cost $0.05 in USDC, paid per call over x402, and only if you configure a wallet.
Nothing to install or host: your MCP client runs the server itself. Needs Node 22 or newer.
Every release from 0.1.1 on is built and signed by CI and carries an npm provenance attestation tying the tarball to the commit and workflow run that produced it. A tool that vets other packages should be checkable the same way:
npm audit signatures
The server is also listed in the MCP Registry as net.pkgproof/pkgproof.
Add this to your MCP client configuration and you are done:
{
"mcpServers": { "pkgproof": { "command": "npx", "args": ["-y", "@pkgproof/mcp"] } } }
The repository is its own plugin marketplace, so there is no JSON to edit:
/plugin marketplace add jahija-okan/pkgproof-mcp
/plugin install pkgproof@pkgproof
The plugin runs the published package pinned to the version it was released beside, not whatever npx resolves to that day.
Releases carry a prebuilt .mcpb bundle on the releases page. Download it and open it: Desktop installs the server and holds the wallet keys in the OS secret store rather than in a plain-text configuration file.
verify_package, and nothing else. One call is one verification, so the daily allowance means the same thing here as it does over HTTP.
| Argument | Required | Meaning |
|---|---|---|
name | yes | Package name: left-pad, @scope/thing (npm), requests (PyPI). |
version | no | Exact version. Omit to verify the package rather than one release. |
ecosystem | no | npm (the default) or pypi. |
It answers twice over: a summary the agent reads, and the service's own JSON alongside it in structuredContent, under a declared output schema, carrying the verdict, every reason with its source, and the time the verdict was computed.
Calls run one at a time. The service allows one verification in flight per payer and refuses the second, so an agent walking a dependency list is queued here rather than failed.
pkgproof settles on two chains, each on its own endpoint. They are not interchangeable: they take different key formats, and only one of them has a free tier.
| Algorand Mainnet | Base | |
|---|---|---|
| Endpoint | x402-algo.pkgproof.net | x402.pkgproof.net |
| Network | algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8= | eip155:8453 |
| Asset | USDC, ASA 31566704 | USDC, 0x8335…2913 |
| Price | $0.05 per verification | $0.05 per verification |
| Free tier | no, every call is paid | yes, one verdict per caller per day |
| Key variable | PKGPROOF_ALGORAND_PRIVATE_KEY | PKGPROOF_BASE_PRIVATE_KEY |
| Key format | base64 account key | 0x-prefixed EVM key |
| Network fee per payment | none, sponsored | none, sponsored |
| One-time setup | ~0.3 ALGO, and an opt-in to the asset | none, just send USDC |
How the server picks. The free attempt always goes to Base, because it is the only rail that answers an unpaid call. Payments prefer Algorand, and fall back to Base only when no Algorand key is configured. So a wallet on either chain works, and configuring neither still gets you a verdict a day.
[!WARNING]
Fund a throwaway wallet, never a main one. The key is stored in plain text
in your MCP client's configuration file, which is not an encrypted store, and
anything able to read that file can spend the wallet. Put in what you are
willing to spend on package verification and nothing more. There is
deliberately no spend cap in this server, so the wallet's own balance is the
only limit.
Verifications cost the account no ALGO. The 402 names a fee payer, so the facilitator covers the network fee on every payment and your ALGO balance does not move.
{
"mcpServers": { "pkgproof": { "command": "npx", "args": ["-y", "@pkgproof/mcp"], "env": { "PKGPROOF_ALGORAND_PRIVATE_KEY": "..." } } } }
Send USDC on Base to the throwaway wallet's address. You do not need ETH: payment is an off-chain signature and the facilitator pays the gas.
{
"mcpServers": { "pkgproof": { "command": "npx", "args": ["-y", "@pkgproof/mcp"], "env": { "PKGPROOF_BASE_PRIVATE_KEY": "0x..." } } } }
The server always tries the free call first, so a configured wallet is only charged once the day's free verification is used up.
| Variable | Required | Meaning |
|---|---|---|
PKGPROOF_ALGORAND_PRIVATE_KEY | no | Throwaway Algorand account holding USDC on Mainnet, base64. Preferred for payment when set. |
PKGPROOF_BASE_PRIVATE_KEY | no | Throwaway EVM wallet holding USDC on Base, 0x-prefixed. Used when no Algorand key is set. |
With neither set, the server is free-tier only and says so once the day's verification is spent.
Needs Node 22 or newer. Use a throwaway account, as warned above.
git clone https://github.com/jahija-okan/pkgproof-x402-algorand
cd pkgproof-x402-algorand npm install npx tsx algo-account.ts new
It prints ADDRESS, KEY_B64 and MNEMONIC once and saves nothing. Keep them somewhere safe, such as a password manager. Use KEY_B64 everywhere below, never the 25-word MNEMONIC.
ALGOD_URL=https://mainnet-api.algonode.cloud ASSET_ID=31566704 \
ALGO_PRIVATE_KEY= npx tsx algo-account.ts optin
NOT OPTED IN means step 3 did not go through: ALGOD_URL=https://mainnet-api.algonode.cloud ASSET_ID=31566704 \
npx tsx algo-account.ts balance
--scope user installs it for every project, without it, Claude Code registers the server for the current directory only: claude mcp add --scope user pkgproof -e PKGPROOF_ALGORAND_PRIVATE_KEY=<KEY_B64> -- npx -y @pkgproof/mcp
claude and ask: check package crossenv with pkgproof. Claude calls the verify_package tool and reports a verdict with its reasons.The first verification each day is free and goes through Base. Later ones are paid from the Algorand account.
One HTTPS request per verification, carrying the package name, version and ecosystem you asked about and nothing else: no account, no telemetry, no file contents. Wallet keys are used to sign locally and are never transmitted. Full text in PRIVACY.md.
npm install
npm test # unit tests, and a real client handshake over an in-memory transport npm run lint # typecheck, formatting, eslint npm run inspector # build, then the MCP inspector against the local server
No test spends anything, and the suite enforces it rather than trusting it: a test that reaches for the network fails, and the run refuses to start at all if a wallet key is set in the environment. The payment path is exercised against a fabricated 402 and a published test account, so an EIP-3009 authorisation is signed locally and the payload and header are checked without a wallet.
Apache-2.0. If you distribute a modified version, section 4(b) requires you to mark the files you changed: a fork of a security tool that still carries this name should not be mistakable for this one.