Back to Discover

GroundTruth-MCP

connector

rm-rf-prod

Live docs MCP server. 598+ libraries, evidence-verified answers, code audit, snippets, dispatch.

View on GitHub
0 starsSynced Aug 5, 2026

Install to Claude Code

/plugin marketplace add rm-rf-prod/GroundTruth-MCP

README

   ██████╗ ████████╗    ███╗   ███╗  ██████╗ ██████╗
  ██╔════╝ ╚══██╔══╝    ████╗ ████║ ██╔════╝ ██╔══██╗
  ██║  ███╗   ██║       ██╔████╔██║ ██║      ██████╔╝
  ██║   ██║   ██║       ██║╚██╔╝██║ ██║      ██╔═══╝
  ╚██████╔╝   ██║       ██║ ╚═╝ ██║ ╚██████╗ ██║

Your AI assistant just mass-produced deprecated code again.
You merged it because the formatting was clean.

GroundTruth fixes that.

npm version CI Elastic License 2.0 598+ curated libraries 107+ audit patterns 1394 tests 14 tools Node 24+

Self-hosted MCP server. 598+ libraries. 14 tools. A dispatch tool routes "use gt mcp" to the right call.
Every answer is checked against your question before you get it — no generic filler.
SSRF and Unicode-injection hardened. Per-tool telemetry. Atomic disk cache. No rate limits, no API keys.


The problem

Your model doesn't know that React 19 killed forwardRef, that Next.js made cookies() async, or that Tailwind v4 nuked @tailwind directives. It writes deprecated patterns with full confidence. It hands you SQL injection dressed up as a query builder and uses any in TypeScript like it's a feature.

GroundTruth runs on your machine. Fetches docs from the source — llms.txt, Jina Reader, GitHub — right when you ask. 598+ curated libraries, plus npm, PyPI, crates.io, and pkg.go.dev as fallback. The audit tool reads your actual files, finds issues at exact file:line locations, and fetches the current fix from the real spec.


GroundTruth architecture — library nodes connected to a central hub, code audit panel, live documentation fetch


Install

Claude Code

claude mcp add gt -- npx -y @groundtruth-mcp/gt-mcp@latest

Cursor / Claude Desktop / VS Code

Add to your MCP config (claude_desktop_config.json, .cursor/mcp.json, or .vscode/mcp.json):

{
  "mcpServers": {
    "gt": {
      "command": "npx",
      "args": ["-y", "@groundtruth-mcp/gt-mcp@latest"]
    }
  }
}

No build step. No config file. Node.js 24+. Using @latest means npx pulls the newest version on every session start — you always get the latest libraries, audit patterns, and fixes without doing anything.

Optional: GitHub token

GroundTruth fetches README files, release notes, migration guides, and code examples from GitHub. Unauthenticated requests are limited to 60/hr. A token with no extra scopes takes it to 5,000/hr.

# Claude Code
claude mcp add gt -e GT_GITHUB_TOKEN=ghp_yourtoken -- npx -y @groundtruth-mcp/gt-mcp@latest

# Cursor / Claude Desktop / VS Code — add env to your config:
"env": { "GT_GITHUB_TOKEN": "ghp_yourtoken" }

What it does

Fourteen tools. Each does one thing.

ToolWhat it does
gt_resolve_libraryFind a library by name. Falls back to npm, PyPI, crates.io, pkg.go.dev
gt_get_docsFetch live docs for a specific topic
gt_best_practicesPatterns, anti-patterns, and config guidance for any library
gt_auto_scanRead your manifest, fetch best practices for every dependency
gt_searchSearch OWASP, MDN, web.dev, W3C, AI provider docs, Google APIs
gt_auditScan source files — issues at exact file:line with live fixes
gt_changelogRelease notes before you upgrade
gt_compatBrowser and runtime compatibility via MDN + caniuse
gt_compareCompare 2-3 libraries side-by-side
gt_examplesReal-world code examples from GitHub
gt_migrationMigration guides and breaking changes
gt_batch_resolveResolve up to 20 libraries in one call
gt_snippetsPre-indexed, ranked code snippets per library and version, cached on disk
gt_dispatchRoutes a plain-text query ("use gt mcp") to the right tool with args

How to use it

You don't need to memorize tool names. Just talk to your AI assistant.

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
use gt for Google Gemini API
use gt for Claude tool use

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_audit — the one that finds what you missed

Walks your project, runs 107+ patterns across 18 categories, pinpoints issues at file:line, then fetches fix guidance 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
CategoryWhat it checks
securityXSS, SQL injection, command injection, SSRF, path traversal, hardcoded credentials, CORS wildcard
accessibilityMissing alt text, onClick on div, icon-only buttons, inputs without labels, outline: none
reactforwardRef (React 19), useFormState renamed, index as key, conditional hooks
nextjsSync cookies/headers/params (Next.js 16), Tailwind v3 directives, missing metadata
typescriptany type, non-null assertions, @ts-ignore, floating Promises
performanceMissing lazy loading, useEffect data fetching, missing Suspense boundaries
layoutCLS-causing images, 100vh on mobile, missing font-display
nodeconsole.log in production, sync fs ops, unhandled callbacks
pythonSQL injection via f-string, eval/exec, subprocess shell=True, pickle.loads

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:
  - src/db/users.ts:47
  - src/api/search.ts:23

Live fix: OWASP SQL Injection Prevention Cheat Sheet

gt_auto_scan — best practices for your whole stack

Point it at your project root. It reads the manifest, figures out what you're using, and pulls best practices for each dependency.

gt_auto_scan({ projectPath: "." })

Supports package.json, requirements.txt, pyproject.toml, Cargo.toml, go.mod, pom.xml, build.gradle, and composer.json.


gt_search — anything that isn't a specific library

Covers security, accessibility, performance, web APIs, CSS, HTTP, AI providers, Google APIs, infrastructure, databases, and more.

gt_search({ query: "WCAG 2.2 focus indicators" })
gt_search({ query: "Core Web Vitals LCP optimization" })
gt_search({ query: "Claude tool use best practices" })
gt_search({ query: "Google Gemini API function calling" })
gt_search({ query: "JWT vs session cookies" })
gt_search({ query: "gRPC vs REST tradeoffs" })
AreaTopics
SecurityOWASP Top 10, SQL injection, XSS / CSP, CSRF, HSTS, CORS, JWT, OAuth 2.1, WebAuthn, SSRF, API security
AccessibilityWCAG 2.2, WAI-ARIA, keyboard navigation
PerformanceCore Web Vitals, image optimization, web fonts, Speculation Rules
Web APIsFetch, Workers, WebSocket, WebRTC, IndexedDB, Web Crypto, Intersection Observer
CSSGrid, Flexbox, Container Queries, View Transitions, Cascade Layers, :has(), Subgrid
AI providersClaude, OpenAI, Gemini, Mistral, Cohere, Groq, LangChain, LlamaIndex
GoogleMaps, Analytics, Ads, Cloud, Firebase, Vertex AI, YouTube, Gmail, Sheets
InfrastructureDocker, Kubernetes, GitHub Actions, Terraform, Cloudflare Workers

GroundTruth — documentation source network: llms.txt, OWASP, MDN, GitHub, npm

How docs are fetched

For every request, GroundTruth tries sources in order and stops at the first one that returns useful content:

  1. llms.txt / llms-full.txt — context files published by maintainers for LLM consumption
  2. Jina Reader — converts docs pages to clean markdown, handles JS-rendered sites
  3. GitHub README / releases — latest release notes and README
  4. npm / PyPI / crates.io / pkg.go.dev — fallback for packages outside the curated registry

Evidence, not vibes

The failure mode of every docs tool is the confident non-answer: you ask about row-level security, the tool hands back the Postgres landing page, and your model writes something plausible from it.

GroundTruth checks the content it fetched against the question you asked before returning it. The check measures how many of your topic's terms appear, how often, and whether they show up in a heading or inside a code block. Link targets and URL query strings don't count — a 404 page whose nav links happen to contain your topic doesn't pass.

Three things follow from that:

  • Weak coverage triggers a second, topic-targeted fetch rather than shipping the first page that loaded.
  • Zero coverage returns an explicit miss. You get the sources that were checked, an outline of what those pages do cover, and what to try next. Treat it as a true negative, not a failure.
  • Every successful answer carries an ## Evidence footer — source URLs, fetch date, and topic-coverage stats — so you can audit where it came from.

Docs vocabulary rarely matches yours, so the check is synonym-aware: an rls query is satisfied by a page that says "row level security", and a page found by expanding "migration" to "upgrade guide" isn't then failed for lacking the literal word.


Library coverage

598+ curated entries with 100% best-practices and URL pattern coverage, plus automatic fallback to npm, PyPI, crates.io, and pkg.go.dev. Any public package in any major ecosystem is resolvable.

EcosystemLibraries
React / Next.jsReact, Next.js, shadcn/ui, Radix UI, Tailwind CSS, Headless UI
State managementZustand, Jotai, TanStack Query, SWR, Redux Toolkit, XState
Backend (Node.js)Express, Fastify, Hono, NestJS, Elysia, tRPC
Backend (Python)FastAPI, Django, Flask, Pydantic
Backend (Go / Rust)Gin, Fiber, GORM, Axum, Actix Web, Tokio
Database / ORMPrisma, Drizzle, Kysely, TypeORM, Supabase, Neon, Turso
AI / LLMClaude API, OpenAI API, Gemini API, Vercel AI SDK, LangChain, LlamaIndex
TestingVitest, Playwright, Jest, Testing Library, Cypress, MSW
AuthClerk, NextAuth, Better Auth, Lucia
MobileExpo, React Native, React Navigation, NativeWind
Build toolsVite, Turbopack, SWC, Biome, ESLint, Turborepo
CloudVercel, Cloudflare Workers, AWS SDK, Firebase, Google Cloud
MonitoringSentry, PostHog, OpenTelemetry

The full curated list is the registry source itself: src/sources/registry.ts.


vs. Context7

Context7 is solid. Here's why I reach for this instead.

GroundTruthContext7
HostingSelf-hosted (stdio) + HTTP modeCloud backend, local MCP client
Rate limitsNone1,000 free/month ($10/seat for 5,000)
TransportStdio + Streamable HTTPStdio + Streamable HTTP
Source priorityllms.txt -> Jina -> GitHub -> npm/PyPIVector DB with proprietary crawl pipeline
Answer verificationEvidence gate on every topic query; explicit miss when unverifiableNo
Tools14 specialized tools2 tools
Code audit107+ patterns, 18 categories, file:line, live fixesNo
Freeform searchOWASP, MDN, AI docs, Google APIs, web standardsLibrary docs only
Changelog, compat, compare, examples, migrationYesNo
MCP Resources + Prompts2 resources, 8 promptsNo
Lockfile detectionReads exact versions from lockfilesNo
Libraries598+ curated + npm/PyPI/crates.io/Go fallbackUndisclosed (claims "thousands")
API key requiredNoNo

Context7 indexes docs into a vector database — fast lookups, but with indexing lag on new releases. GroundTruth fetches from the source at query time, prioritizes llms.txt, and scores content quality so your model knows when to retry.


Environment variables

All optional. Works out of the box with zero configuration.

VariablePurposeDefault
GT_GITHUB_TOKENGitHub API auth — raises rate limit from 60 to 5,000 req/hrnone
GT_CACHE_DIRDisk cache location for persistent cross-session caching~/.gt-mcp-cache
GT_CONCURRENCYParallel fetch limit in gt_auto_scan8
GT_AUTH_TOKENBearer token required for HTTP transport endpointsnone
GT_HTTP_PORTPort to enable HTTP transport (otherwise stdio)none
GT_HTTP_STATEFULSet =1 for session-per-request HTTP mode0 (stateless)

Contributing

The public registry lives in src/sources/registry.ts. Adding a library is a PR with id, name, docsUrl, and llmsTxtUrl if the project publishes one.

Issues and requests: github.com/rm-rf-prod/GroundTruth-MCP/issues


Active development

GroundTruth is under active development. New curated registry entries, audit patterns, search topics, and features are added regularly. The registry covers 598+ libraries with 100% bestPracticesPaths and urlPatterns coverage. Automatic fallback to npm, PyPI, crates.io, and pkg.go.dev means any public package is resolvable out of the box.

To stay updated:

  • Star and watch the GitHub repo for release notifications
  • Use @latest in your MCP config (the default install command) — npx fetches the newest version automatically
  • Check tool responses — GroundTruth appends an update notice when a newer version is available

Reference

Every tool ships its own full schema and description — your MCP client lists them, and gt_dispatch explains which one it would pick for a given phrasing and why.

WhatWhere
Tool schemas and parameter docstools/list in any MCP client, or src/tools/
Complete library listsrc/sources/registry.ts
Audit rules — 107 patterns, 18 categoriessrc/sources/audit-patterns.ts
Routing tablenpx @groundtruth-mcp/gt-mcp --routing-table
Health, telemetry, circuit-breaker statenpx @groundtruth-mcp/gt-mcp --health, or /health in HTTP mode
Release historyCHANGELOG.md

Star history

Star History Chart

License

Elastic License 2.0 — free to use, free to self-host, free to build on. The one thing you can't do is turn it into a managed service and sell it. Fair enough.

Rendered live from rm-rf-prod/GroundTruth-MCP's GitHub README — not stored, always reflects the source repo.

1 Install Method

NameDescriptionCategorySource
npm packageInstall via npm (stdio transport)mcp-server@groundtruth-mcp/gt-mcp

0 Comments

Login required
Log in to post a comment or update on this repo.

No comments yet — be the first to share an update.