Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Read-only CVE triage: verdicts from CISA KEV, EPSS and exploit feeds, each reason linked.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
CVERDICT_DATA_BASE必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"cverdict": {
"command": "npx",
"args": [
"-y",
"cverdict-mcp"
],
"env": {
"CVERDICT_DATA_BASE": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add cverdict --env CVERDICT_DATA_BASE=your-value -- npx -y cverdict-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"cverdict": {
"command": "npx",
"args": [
"-y",
"cverdict-mcp"
],
"env": {
"CVERDICT_DATA_BASE": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"cverdict": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"cverdict-mcp"
],
"env": {
"CVERDICT_DATA_BASE": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
CVERDICT_DATA_BASE envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント markusweldon で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.3)がレジストリに届いたのは一昨日です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, yontu
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ GitHubスターi3つの柱:レビュー · チェック · 利用状況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.
Türkçe yazı denetimi: TDK kuralları, yapay zekâ izleri, metin türüne göre üslup.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
A read-only Model Context Protocol server that gives AI agents the same verdicts as CVErdict: tier, score, every reason chip with its points and evidence link, and what is unknown. Every answer says when the data was generated and which files it came from. No key, no account.
It runs on your machine over stdio and reads the published data branch on raw.githubusercontent.com, then the site's /data/ copy if GitHub fails. It needs the site only when GitHub fails, so it keeps working when the site is down.
Node 22.12 or later. The package is cverdict-mcp on npm: one file, no runtime dependencies. Versions after 0.1.0 are published from GitHub Actions with npm provenance, which links each one to the commit and workflow that built it.
# Claude Code
claude mcp add cverdict -- npx -y cverdict-mcp
Other clients take an mcpServers entry (key names vary by client):
{
"mcpServers": { "cverdict": { "command": "npx", "args": ["-y", "cverdict-mcp"] } } }
On Windows, clients that cannot start npx directly take "command": "cmd" and "args": ["/c", "npx", "-y", "cverdict-mcp"]. npx -y runs the newest version; pin one with cverdict-mcp@ (the versions are on the npm page).
Node 22.12 or later.
git clone --single-branch https://github.com/markusweldon/cverdict.git
cd cverdict && npm ci
claude mcp add cverdict -- npm --prefix "$PWD" run -s mcp
Other clients take an mcpServers entry (key names vary by client):
{
"mcpServers": { "cverdict": { "command": "npm", "args": ["--prefix", "/path/to/cverdict", "run", "-s", "mcp"] } } }
Keep the -s: a plain npm run prints its own banner to stdout, which is the JSON-RPC channel.
To skip npm and TypeScript at start-up (and on Windows, where clients cannot start npm directly), build the single-file server once and start it with Node:
npm run build:mcp # writes mcp/dist/cverdict-mcp.mjs
claude mcp add cverdict -- node "$PWD/mcp/dist/cverdict-mcp.mjs"
Run git pull && npm ci (and npm run build:mcp if you use the bundle) to update.
Environment variables, all optional. MCP clients start servers with a minimal environment, so put them in the client's env block for this server.
| Variable | Default | Purpose |
|---|---|---|
CVERDICT_DATA_BASE | https://raw.githubusercontent.com/markusweldon/cverdict/data/v1/,https://cverdict.dev/data/v1/ | Comma-separated base URLs ending in /v1/, tried in order. https only, or http on localhost and 127.0.0.1 (for example http://localhost:5173/data/v1/ with npm run mock and npm run dev). For a fork or a mirror |
NODE_USE_ENV_PROXY, HTTPS_PROXY | unset | Behind a proxy: NODE_USE_ENV_PROXY=1 and HTTPS_PROXY=http://proxy.example:3128. Needs Node 22.21 or later; older versions ignore NODE_USE_ENV_PROXY without a warning. NODE_EXTRA_CA_CERTS adds a private CA |
At start the server writes one line to stderr with its version, the Node version, whether it sees a proxy and the data bases. Nothing but JSON-RPC goes to stdout.
All six are read-only (readOnlyHint: true) and return structuredContent plus the same JSON as one text block. The result types are in shared/contract.ts, section "MCP tool results".
| Tool | Answers from | Returns | Bounds |
|---|---|---|---|
get_verdict | meta.json, cve/ .json | Tier, plain-language verdict, score, score_math, every reason chip with points and link, unknowns, KEV, EPSS, CVSS, links to the CVE page, the shard and cve.org. detail: true adds the description, affected products, CWE, SSVC, exploits, tags, timeline and references | 1 to 15 IDs, at most 5 with detail; knob 30 to 80 |
list_signal | signal.json, or index.json for Watch, Quiet or a knob below 35 | Window CVEs in the chosen tiers (default Exploited and Likely next), highest score first. Filters: vendor text, published_since, kev_only | limit 1 to 50 (default 25), offset |
kev_due | kev.json | CISA KEV entries due in the next within_days (0 to 60, default 7) and overdue by up to overdue_days (0 to 14, default 7), soonest first, with days_left in UTC calendar days | limit 1 to 50 (default 50), offset |
woke_up | woke.json | Old CVEs that gained exploitation evidence since since (default 7 days before the data was generated), with their dated signals. Filter by kinds | limit 1 to 50 (default 25), offset |
receipts | receipts.json | How often CVErdict, CVSS 7 or more and EPSS 10% or more flagged a CVE before CISA listed it: the forward log and the hindsight backtest, without the per-CVE lists. id adds one CVE's entries | |
search_cves | index.json | Window CVEs whose ID, CNA, vendor, product or title contain every word of query, highest score first | query 2 to 100 characters, at most 8 words; limit 1 to 50 (default 20), offset |
Dates (published_since, since) are UTC: 2026-10-01, 2026-10-01T06:00Z or 2026-10-01T06:00:00.000Z. A date that does not exist is an error. A filter the server cannot apply is always an error, never silently dropped.
Measured on the live data of 2026-11-03 (16,747 window CVEs), the largest answer any tool can give at its maximum bounds stays under 20,000 tokens; scripts/mcp-measure.ts checks this.
data| Field | Meaning |
|---|---|
generated_at, age_hours | The pipeline run the answer is based on, and its age in whole hours when the server answered |
score_model, knob_default, window | As in meta.json |
sources_down, sources_stale | Sources with no usable data in that run (their evidence is unknown, not absent), and sources that served a cached copy. osv is left out: it feeds only packages.json, never a verdict |
files[] | Every file read: path on the data branch, the url it came from, its own generated_at |
warning | Set when a refresh failed and the answer comes from the last good copy |
Right after an hourly publish a CDN can serve one file from the previous run for a few minutes; files[] then shows both times rather than hiding it.
found: false) is unknown, not safe: the data covers CVEs published in the last 30 days, every CVE in CISA KEV and old CVEs that woke up./data/ copy. Nothing is uploaded and nothing is written to disk.Failures come back as tool results with isError: true and a plain message, for example:
| Case | Message |
|---|---|
| A file is not published | woke.json is not on the data branch yet, so this tool has nothing to read. The other tools still work. |
meta.json is missing at the first base that answers | meta.json is not at the first data base that answered, so no tool can answer. Check CVERDICT_DATA_BASE, ... |
| Every base failed, nothing cached | CVErdict could not load its data right now (raw.githubusercontent.com: HTTP 503 for meta.json; ...). Try again in a few minutes, or read the files directly: https://github.com/markusweldon/cverdict/tree/data/v1 |
| No data within the 10 s limit of a call | CVErdict could not load its data in time (...) |
| The data moved to a new schema | The published data uses schema version 2; this server reads version 1. Update the server: ... |
detail with more than 5 IDs | detail: true takes at most 5 IDs; ask again in groups of 5. |
| Bad arguments | Input validation error: Invalid arguments for tool get_verdict: ... |
get_verdict are fetched in parallel, at most 6 at a time.schema_version 1 and generated_at; row tables must have exactly the published columns.meta.json is checked again after 5 minutes (raw.githubusercontent.com caches for 5 minutes anyway); other files are refetched when meta.json names a newer run. An idle server makes no requests and runs no timers.npx vitest run mcp/test # unit, protocol and spawn tests (what the release workflow runs)
npm test # every test in the repository npm run build:mcp # the single-file bundle in mcp/dist/ npx tsx scripts/mcp-measure.ts # answer sizes against the live data branch npx tsx mcp/test/smoke.ts mcp/dist/cverdict-mcp.mjs # what CI runs on mock data
The SDK (@modelcontextprotocol/server) and zod are exact-pinned dev dependencies of the repository and are bundled into dist/cverdict-mcp.mjs, so the package has no runtime dependencies. The site never imports them: shared/mcp.ts holds the copy both use.
Maintainers only. Set the new version in mcp/package.json, MCP_SERVER.version in shared/mcp.ts, and both version fields in mcp/server.json (a test keeps them equal), commit, and push a tag mcp-v , for example git tag mcp-v0.1.1 && git push origin mcp-v0.1.1. The release workflow (.github/workflows/release-mcp.yml) checks that the tag matches the version, runs the MCP tests and the smoke test, packs the bundle and publishes it to npm through trusted publishing, with provenance. A last job lists the version on the MCP Registry from mcp/server.json, logged in with the workflow's GitHub OIDC identity. No npm or registry token is stored anywhere.
One-time setup: the first version is published by hand (npm run build:mcp at the root, then npm login and npm publish in mcp/). Then on npmjs.com, package cverdict-mcp → Settings → Trusted publishing → GitHub Actions: owner markusweldon, repository cverdict, workflow release-mcp.yml, no environment. Under Publishing access, choose to require two-factor authentication and disallow tokens.
MIT (LICENSE). The bundle includes the MCP TypeScript SDK (Apache-2.0, with contributions under MIT), zod (MIT) and the libraries the SDK vendors; their notices are in LICENSE-THIRD-PARTY. Data terms: docs/DATA.md.