Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Classify PR review comments as actionable or noise, with the rule that fired as evidence.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"reviewthread": {
"command": "npx",
"args": [
"-y",
"@reneturcios/reviewthread",
"mcp"
]
}
}
}ターミナルでこれを実行します
claude mcp add reviewthread -- npx -y @reneturcios/reviewthread mcpプロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"reviewthread": {
"command": "npx",
"args": [
"-y",
"@reneturcios/reviewthread",
"mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"reviewthread": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@reneturcios/reviewthread",
"mcp"
]
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
この設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント CloudCorpRecords で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
レジストリには必須のキーは載っていません。ただし、最初に使うときにサインインを求めるサーバーもあります。
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(0.1.0)がレジストリに届いたのは3 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.js, Dockerも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, FOGA node
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ 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.
A Finch OG Agent cell as an MCP server: read the world, dry-run and take ERC-8414 tenders by policy.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
A pull-request review thread collects everything: a maintainer pointing at a genuinely broken check, a bot cheering "LGTM", the same coverage note posted twice, a comment on code that has since been rewritten. reviewthread sorts a batch of those comments into the five buckets a reviewer actually acts on — actionable, noise, closed, stale, and duplicate — and, for each one, names the exact rule that put it there, so the verdict can be checked rather than trusted.
You supply the facts, per comment: an id, the author's name, whether the author is a bot or a human, the body, the thread state (open, resolved, or outdated), and optionally whether the comment is attached to a currently failing check and the id of another comment it duplicates. Nothing is fetched; the classification is a pure function of what you pass in.
The rules run in a fixed order and the first match wins. A resolved thread is closed and an outdated one is stale, whatever else is true of the comment. A comment whose duplicate_of is non-empty after trimming is a duplicate, and its evidence names the trimmed target id. A comment attached to a failing check is actionable — that outranks everything a bot might say. Only then does authorship matter: a bot whose body is praise-only (after trimming, lowercasing, collapsing whitespace, and stripping trailing ! and . characters, the body is exactly one of a pinned eleven-phrase set such as lgtm, looks good to me, or ship it) is noise, and any other bot comment with no failing check is noise too. What remains — an open human comment — is actionable.
Two judgement calls are pinned. A duplicate_of that is absent, empty, or whitespace-only counts as no duplicate at all. And praise is judged against the exact phrase set only: a bot saying "great job, but the tests fail" is a generic bot comment, not praise-only, because the whole normalized body must match a phrase.
Malformed input — a missing or empty comments array, a comment that is not an object, a missing, empty, or non-string id or author, an author_kind outside bot / human, a missing or non-string body, a state outside open / resolved / outdated, a non-boolean failing_check, or a non-string duplicate_of — is a validation error naming the offending path, with no partial result. Unknown extra fields are ignored, including inside comment items.
npx @reneturcios/reviewthread triage --input args.json
npx @reneturcios/reviewthread --version
args.json contains the full arguments object:
{
"comments": [ { "id": "c1", "author": "ci-bot", "author_kind": "bot", "body": "Coverage dropped below the threshold.", "state": "open", "failing_check": true }, { "id": "c2", "author": "dependabot[bot]", "author_kind": "bot", "body": "LGTM!", "state": "open" }, { "id": "c3", "author": "marisol", "author_kind": "human", "body": "This still races when the cache is cold.", "state": "open" } ] }
The result is printed as JSON:
{
"comments": [ { "id": "c1", "author": "ci-bot", "verdict": "actionable", "evidence": "comment is attached to a failing check" }, { "id": "c2", "author": "dependabot[bot]", "verdict": "noise", "evidence": "praise-only bot comment with no failing check" }, { "id": "c3", "author": "marisol", "verdict": "actionable", "evidence": "open human comment" } ], "counts": { "actionable": 2, "noise": 1, "closed": 0, "stale": 0, "duplicate": 0 }, "total": 3 }
Exit codes: 0 on success, 1 on a runtime error (including an unreadable or invalid input file, or invalid input), 2 on a usage error.
npx -y @reneturcios/reviewthread mcp
MCP client config:
{
"mcpServers": { "reviewthread": { "command": "npx", "args": ["-y", "@reneturcios/reviewthread", "mcp"] } } }
triage_review_comments — Classify pull-request review comments as actionable, noise, closed, stale, or duplicate from caller-supplied comment facts.comments (array, required, at least 1 item) — the review comments to classify. Each item:id (string, required, non-empty) — comment identifierauthor (string, required, non-empty) — comment author nameauthor_kind (string, required, bot or human) — whether the author is a bot or a humanbody (string, required, may be empty) — comment body textstate (string, required, open, resolved, or outdated) — thread state of the commentfailing_check (boolean, optional, absent means false) — whether the comment is attached to a currently failing checkduplicate_of (string, optional) — id of another comment this one duplicatesReturns {comments, counts, total}, where comments is one {id, author, verdict, evidence} per input comment in input order, counts is {actionable, noise, closed, stale, duplicate} in that key order, and total is the number of input comments.
docker run -i ghcr.io/cloudcorprecords/reviewthread
docker run --rm -v "$PWD:/w" ghcr.io/cloudcorprecords/reviewthread triage --input /w/args.json
npm install
npm run build # tsc -> dist/ npm test # tsx --test test/*.test.ts (pure local, no network) npm run dev # run the CLI from source
MIT — Copyright (c) 2026 Rene Turcios