Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
作者による説明(英語の原文)
Live docs MCP server. 793+ libraries, evidence-verified answers, code audit, snippets, dispatch.
この3つを1つのスコアにまとめることはしません。意見、測定、人気はそれぞれ別のものだからです。
このサーバーのやさしい解説はまだ書いていません。以下はレジストリから読み取った事実です。
使っているAIアプリを選んで、設定をコピーしてください。
GT_GITHUB_TOKEN, GT_CACHE_DIR, GT_LOG_LEVEL「秘密」と表示された値は、あなたのアカウントの鍵です。絶対に人に教えたり、チャットに貼り付けたりしないでください。
必要なもの
どのアプリを使っていますか?
上でアプリを選んでください。選んだアプリを覚えておくので、次からはボタンに「…にインストール」と表示されます。
Claude Desktop → Settings → Developer → Edit Config を開き、claude_desktop_config.json にこれを貼り付けます
{
"mcpServers": {
"groundtruth": {
"command": "npx",
"args": [
"-y",
"@groundtruth-mcp/gt-mcp"
],
"env": {
"GT_GITHUB_TOKEN": "your-value",
"GT_CACHE_DIR": "your-value",
"GT_LOG_LEVEL": "your-value"
}
}
}
}ターミナルでこれを実行します
claude mcp add groundtruth --env GT_GITHUB_TOKEN=your-value --env GT_CACHE_DIR=your-value --env GT_LOG_LEVEL=your-value -- npx -y @groundtruth-mcp/gt-mcp動かす前に、空欄の値を入力してください。
プロジェクトの .cursor/mcp.json、または ~/.cursor/mcp.json に貼り付けます
{
"mcpServers": {
"groundtruth": {
"command": "npx",
"args": [
"-y",
"@groundtruth-mcp/gt-mcp"
],
"env": {
"GT_GITHUB_TOKEN": "your-value",
"GT_CACHE_DIR": "your-value",
"GT_LOG_LEVEL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
プロジェクトの .vscode/mcp.json に貼り付けます
{
"servers": {
"groundtruth": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@groundtruth-mcp/gt-mcp"
],
"env": {
"GT_GITHUB_TOKEN": "your-value",
"GT_CACHE_DIR": "your-value",
"GT_LOG_LEVEL": "your-value"
}
}
}
}ブラウザがアプリを開いてよいか確認し、そのあとアプリが設定を表示して確認を求めます。キーの値は空欄のままなので、自分で入力してください。
これはパソコンで動くサーバーですが、ChatGPTがつなげるのはインターネット上のサーバーだけです。ほかのアプリを選んでください。
選んだアプリは、この端末のCookieに保存されます。アカウントは不要です。
GT_CACHE_DIR envGT_LOG_LEVEL envこの設定は、作者のレジストリ登録情報から作成しています。READMEと違う場合は、READMEに従ってください。
パソコンで動くサーバーです。インストールすると、ツール一覧がAIアプリに表示されます。
誰でも見られる情報をチェックしており、コードは読んでいません。当てはまらない項目は数に入れていません。 · 2026年11月6日にチェック
レジストリ名は、リポジトリを所有するGitHubアカウント rm-rf-prod で確認済みです
このリポジトリはまだGitHubから読み取っていません
このリポジトリはまだGitHubから読み取っていません
これはパソコンで動くため、インターネット上のエンドポイントはありません
パソコンで動き、代わりにローカルの設定を使います
パソコンで動くサーバーです。ツール一覧を読み取れるのは、インターネット上のエンドポイントがある場合だけです
レジストリでこのカテゴリにある有効なすべてのサーバーと比較しています。スターは、公開者がリポジトリの所有者である場合だけ数えます。
当てはまる基本チェック1項目のうち1項目に合格しました。コードは読んでいません。キーやトークンを追加する前に、サーバーがどんなアクセスを求めているかを確認し、必要な権限だけを持つキーを使ってください。
入力が必要なもの:GT_GITHUB_TOKEN
あなたのパソコンで動きます。必要なときにAIアプリが起動し、データは作者のサーバーを通りません(サーバー自体がオンラインサービスを呼び出す場合を除きます)。
GitHubリポジトリの最終更新は–、最新バージョン(8.0.1)がレジストリに届いたのは26 日前です。
Claude Desktop、Claude Code、Cursor、VS CodeなどのMCP対応アプリで使えます。パソコンにNode.jsも必要です。
同じカテゴリには:Spec Driven Development, Remote Desktop Commander, Recta
同じカテゴリで、ほかの作者が作ったサーバー。スターの多い順。
カードの見方:★ 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.
Cheaper cross-chain stablecoin routes for AI agents; 5 % of the verified saving, nothing if none.
作者のリポジトリから書かれたとおりにコピーしたものです。PopNx MCPは内容を確認・推奨していません。HTML、画像、スクリプトは取り除いています。リンクはこのサイトの外へ移動します。
Current, official documentation for coding agents, fetched when they ask.
GroundTruth is a self-hosted MCP server and command-line tool. Models write code from what they were trained on, so they still wrap components in forwardRef after React 19 made ref a regular prop, call cookies() synchronously after Next.js made it async, and emit @tailwind directives that Tailwind v4 replaced with @import "tailwindcss". GroundTruth gives the agent the library's own documentation at request time: it reads llms.txt, the docs site as markdown, or the GitHub repository, ranks the sections that answer the question, and checks that the answer covers the topic before returning it. It also audits your source with 107+ patterns and links every finding to the current fix. It runs on your machine. No account, no API key, no rate limit of its own.
Requires Node.js 24 or newer.
Claude Code
claude mcp add gt -- npx -y @groundtruth-mcp/gt-mcp@latest
Cursor, Claude Desktop, Windsurf and other clients that use an mcpServers block (.cursor/mcp.json, claude_desktop_config.json, ~/.codeium/windsurf/mcp_config.json):
{
"mcpServers": { "gt": { "command": "npx", "args": ["-y", "@groundtruth-mcp/gt-mcp@latest"] } } }
VS Code (.vscode/mcp.json):
{
"servers": { "gt": { "type": "stdio", "command": "npx", "args": ["-y", "@groundtruth-mcp/gt-mcp@latest"] } } }
Any other MCP client: run npx -y @groundtruth-mcp/gt-mcp@latest as a stdio server.
Command line (same tools, no MCP client needed):
npm install -g @groundtruth-mcp/gt-mcp
gt-mcp bp nextjs caching
@latest makes npx pick up new releases on the next session start. When a newer version exists, tool responses carry a one-line notice (GT_NO_UPDATE_CHECK=1 turns the check off).
GroundTruth reads READMEs, release notes, migration guides and code examples from GitHub. Without a token GitHub allows 60 requests per hour. A token with no extra scopes raises that to 5,000 and enables code search in gt_examples.
claude mcp add gt -e GT_GITHUB_TOKEN=ghp_yourtoken -- npx -y @groundtruth-mcp/gt-mcp@latest
In a JSON config, add "env": { "GT_GITHUB_TOKEN": "ghp_yourtoken" } next to args.
Fourteen tools. Each does one job, and each is also a CLI command.
| Tool | CLI | What it does |
|---|---|---|
gt_dispatch | ask | Routes a plain request ("use gt for drizzle migrations") to the right tool and arguments |
gt_resolve_library | resolve | Finds a library by name; falls back to npm, PyPI, crates.io and Go modules |
gt_get_docs | docs | Live docs for one topic; also accepts a docs URL |
gt_best_practices | bp | Patterns, anti-patterns and configuration guidance for a library |
gt_auto_scan | scan | Reads your manifest and fetches best practices for each dependency |
gt_search | search | Any topic without a library: OWASP, MDN, web.dev, W3C, AI provider docs, Google APIs |
gt_audit | audit | Scans source files and reports issues at file:line with links to the fix |
gt_changelog | changelog | Release notes before you upgrade |
gt_compat | compat | Browser and runtime support from MDN browser-compat-data and caniuse |
gt_compare | compare | Two or three libraries side by side |
gt_examples | examples | Real-world code from GitHub |
gt_migration | migrate | Migration guides and breaking changes between versions |
gt_batch_resolve | batch | Resolves up to 20 libraries in one call |
gt_snippets | snippets | Ranked code snippets per library and version, cached on disk |
The server also exposes 2 MCP resources (library-registry, library-docs) and 8 prompts (audit-my-project, upgrade-check, best-practices-scan, compare-libraries, security-check, migration-guide, find-examples, dependency-audit).
You don't need the tool names. Ask in plain language:
use gt for nextjs
use gt for drizzle migrations gt audit use gt to check WCAG focus indicators use gt for OpenTelemetry setup find all issues and fix with gt
Or call tools directly:
gt_resolve_library({ libraryName: "nestjs" })
gt_get_docs({ libraryId: "nestjs/nest", topic: "guards" }) gt_best_practices({ libraryId: "vercel/next.js", topic: "caching" }) gt_auto_scan({ projectPath: "." }) gt_search({ query: "OWASP SQL injection prevention" }) gt_audit({ projectPath: ".", categories: ["security", "accessibility"] }) gt_changelog({ libraryId: "vercel/next.js", version: "15" }) gt_compat({ feature: "CSS container queries", environments: ["safari"] }) gt_compare({ libraries: ["prisma", "drizzle-orm"], criteria: "TypeScript support" }) gt_examples({ library: "hono", pattern: "middleware" })
gt_auditWalks your project, runs 107+ patterns across 18 categories, reports each issue at file:line, then fetches the fix from the authoritative source.
gt_audit({ categories: ["all"] }) // all 18 categories
gt_audit({ categories: ["security", "node"] }) // OWASP + Node.js gt_audit({ categories: ["python", "security"] }) // Python OWASP scan gt_audit({ categories: ["accessibility"] }) // WCAG AA gt_audit({ categories: ["typescript", "react"] }) // type safety + React rules
| Category | What it checks |
|---|---|
security | XSS, SQL injection, command injection, SSRF, path traversal, hardcoded credentials, CORS wildcard |
accessibility | Missing alt text, onClick on div, icon-only buttons, inputs without labels, outline: none |
react | forwardRef (React 19), useFormState renamed, index as key, conditional hooks |
nextjs | Sync cookies/headers/params (Next.js 16), Tailwind v3 directives, missing metadata |
typescript | any type, non-null assertions, @ts-ignore, floating Promises |
performance | Missing lazy loading, useEffect data fetching, missing Suspense boundaries |
layout | CLS-causing images, 100vh on mobile, missing font-display |
node | console.log in production, sync fs ops, unhandled callbacks |
python | SQL injection via f-string, eval/exec, subprocess shell=True, pickle.loads |
| Also | mobile, css, vue, svelte, angular, testing, seo, i18n, api |
Sample output:
## [CRITICAL] SQL built via template literal
Category: security | Severity: critical | Count: 2
Fix: db.query('SELECT * FROM users WHERE id = $1', [userId])
Files:
Live fix: OWASP SQL Injection Prevention Cheat Sheet
gt_auto_scanPoint it at a project root. It reads the manifest and lockfile, works out which libraries you use and at which versions, and returns best practices for each, top libraries first. Default output is about 15K characters.
Reads package.json, deno.json, requirements.txt, pyproject.toml, Cargo.toml, go.mod, pom.xml, build.gradle, build.gradle.kts, composer.json, Gemfile and pubspec.yaml.
gt_searchFor anything that isn't one library.
| Area | Topics |
|---|---|
| Security | OWASP Top 10, SQL injection, XSS / CSP, CSRF, HSTS, CORS, JWT, OAuth 2.1, WebAuthn, SSRF, API security |
| Accessibility | WCAG 2.2, WAI-ARIA, keyboard navigation |
| Performance | Core Web Vitals, image optimization, web fonts, Speculation Rules |
| Web APIs | Fetch, Workers, WebSocket, WebRTC, IndexedDB, Web Crypto, Intersection Observer |
| CSS | Grid, Flexbox, Container Queries, View Transitions, Cascade Layers, :has(), Subgrid |
| AI providers | Claude, OpenAI, Gemini, Mistral, Cohere, Groq, LangChain, LlamaIndex |
| Maps, Analytics, Ads, Cloud, Firebase, Vertex AI, YouTube, Gmail, Sheets | |
| Infrastructure | Docker, Kubernetes, GitHub Actions, Terraform, Cloudflare Workers |
gt-mcp runs the same 14 tools in-process and prints the answer. With no arguments, gt-mcp is the stdio MCP server, exactly as before.
gt-mcp docs react useEffect # live docs for one topic
gt-mcp bp nextjs caching # best practices gt-mcp search "OWASP SSRF prevention" gt-mcp audit . # audit the current project gt-mcp scan . # best practices for every dependency gt-mcp compat "CSS container queries" gt-mcp ask "how do I paginate with drizzle" # let gt_dispatch pick the tool gt-mcp call gt_compare '{"libraries":["prisma","drizzle-orm"]}' echo '{"libraryName":"drizzle"}' | gt-mcp call gt_resolve_library -
| Command | Does | |
|---|---|---|
tools | Lists every command, its tool and its arguments (--json for machine output) | |
| `call [ \ | -]` | Calls any tool with JSON arguments; - reads them from stdin |
help [command] | Shows a command's flags, generated from the tool's input schema | |
--json | Prints the full CallToolResult as JSON instead of the text |
Exit codes: 0 ok, 1 tool error, 2 usage error. Logs stay quiet on stderr unless something goes wrong (GT_LOG_LEVEL defaults to warn for commands). The server flags still work: --version, --health, --routing-table, --help.
Measured on one machine with the same harness, published 7.5.0 against 8.0.0. Network timings depend on your connection and on the docs site.
| Measurement | 7.5.0 | 8.0.0 | Change |
|---|---|---|---|
gt-mcp --version | 1,130 ms, 194 MB | 40 ms, 54 MB | 28x faster |
| Spawn to MCP ready | 1,074 ms | 186 ms | 5.8x faster |
gt_best_practices Next.js caching, cold cache | 6,893 ms | 259 ms | 27x faster |
| Same call the next day (20 h old cache) | 6,684 ms | 92 ms | 73x faster |
Repeat gt_search in a new session | 86 ms | 2 ms | 43x faster |
Fewer tokens per session and per answer:
| Measurement | 7.5.0 | 8.0.0 |
|---|---|---|
tools/list, paid by every session | 23,638 bytes | 11,560 bytes (-51%) |
| Tool descriptions | -75% | |
| Wire bytes per docs or best-practices answer | halved (duplicate structuredContent removed) |
| gt_auto_scan default o
冒頭だけを表示しています。続きはリポジトリで読めます