io.github.rm-rf-prod/groundtruth — Live docs MCP server
Live docs MCP server providing evidence-verified answers, code audit, snippets, and dispatch. The package is identified as io.github.rm-rf-prod/groundtruth and is described as a “Live docs” server with over 598 libraries.
🛠️ Key Features
Live docs
Evidence-verified answers
Code audit
Snippets
Dispatch
598+ libraries
🚀 Use Cases
AI-assisted code review and auditing
Referencing documented libraries in responses
Supplying snippet-based answers
Supporting tool-driven “dispatch” workflows
⚡ Developer Benefits
Evidence-verified outputs
Integrated code audit capabilities
Snippet delivery for development workflows
Categories aligned to MCP and developer tooling: mcp, ai-tools, code-audit, developer-tools, devtools
⚠️ Limitations
Documentation excerpt is truncated and does not describe interfaces or supported MCP tools in detail.
Your AI assistant just mass-produced deprecated code again. You merged it because the formatting was clean.
GroundTruth fixes that.
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.
Install
Claude Code
bash
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):
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.
bash
# 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.
Tool
What it does
gt_resolve_library
Find a library by name. Falls back to npm, PyPI, crates.io, pkg.go.dev
gt_get_docs
Fetch live docs for a specific topic
gt_best_practices
Patterns, anti-patterns, and config guidance for any library
gt_auto_scan
Read your manifest, fetch best practices for every dependency
gt_search
Search OWASP, MDN, web.dev, W3C, AI provider docs, Google APIs
gt_audit
Scan source files — issues at exact file:line with live fixes
gt_changelog
Release notes before you upgrade
gt_compat
Browser and runtime compatibility via MDN + caniuse
gt_compare
Compare 2-3 libraries side-by-side
gt_examples
Real-world code examples from GitHub
gt_migration
Migration guides and breaking changes
gt_batch_resolve
Resolve up to 20 libraries in one call
gt_snippets
Pre-indexed, ranked code snippets per library and version, cached on disk
gt_dispatch
Routes 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.
code
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
For every request, GroundTruth tries sources in order and stops at the first one that returns useful content:
llms.txt / llms-full.txt — context files published by maintainers for LLM consumption
Jina Reader — converts docs pages to clean markdown, handles JS-rendered sites
GitHub README / releases — latest release notes and README
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.
Context7 is solid. Here's why I reach for this instead.
GroundTruth
Context7
Hosting
Self-hosted (stdio) + HTTP mode
Cloud backend, local MCP client
Rate limits
None
1,000 free/month ($10/seat for 5,000)
Transport
Stdio + Streamable HTTP
Stdio + Streamable HTTP
Source priority
llms.txt -> Jina -> GitHub -> npm/PyPI
Vector DB with proprietary crawl pipeline
Answer verification
Evidence gate on every topic query; explicit miss when unverifiable
No
Tools
14 specialized tools
2 tools
Code audit
107+ patterns, 18 categories, file:line, live fixes
No
Freeform search
OWASP, MDN, AI docs, Google APIs, web standards
Library docs only
Changelog, compat, compare, examples, migration
Yes
No
MCP Resources + Prompts
2 resources, 8 prompts
No
Lockfile detection
Reads exact versions from lockfiles
No
Libraries
598+ curated + npm/PyPI/crates.io/Go fallback
Undisclosed (claims "thousands")
API key required
No
No
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.
Variable
Purpose
Default
GT_GITHUB_TOKEN
GitHub API auth — raises rate limit from 60 to 5,000 req/hr
none
GT_CACHE_DIR
Disk cache location for persistent cross-session caching
~/.gt-mcp-cache
GT_CONCURRENCY
Parallel fetch limit in gt_auto_scan
8
GT_AUTH_TOKEN
Bearer token required for HTTP transport endpoints
none
GT_HTTP_PORT
Port to enable HTTP transport (otherwise stdio)
none
GT_HTTP_STATEFUL
Set =1 for session-per-request HTTP mode
0 (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.
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.
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.
Install
Configuration
Environment variables
GT_GITHUB_TOKENsecret
GitHub API token for higher rate limits (raises from 60 to 5000 req/hr)