mcpField
G
Groundtruth Mcp

Groundtruth Mcp

本地服务
github.com/rm-rf-prod开发工具63 周前更新

关于 Groundtruth Mcp

GroundTruth 是可自托管的 MCP 服务和命令行工具,可获取最新库文档并依据文档实践审计代码。它面向需要基于库文档和代码仓库获取带来源指导的编码 Agent 与开发者。

主要功能

  1. 01获取实时库文档
  2. 02通过多个软件包注册表解析库
  3. 03审计源代码并提供修复链接
  4. 04搜索最佳实践和迁移指南
  5. 05检查兼容性并比较库
  6. 06提供对应的 MCP 工具和命令行命令

适用场景

  1. 01编码时查询当前实践指南
  2. 02扫描项目依赖并获取实践建议
  3. 03查找代码问题及其文档修复方案
  4. 04升级库前检查变更

MCP 相关

向 MCP 客户端提供文档、搜索、审计、兼容性、迁移等工具,以及资源和提示词。相同功能也可通过命令行使用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"GroundTruth-MCP": {
"command": "npx",
"args": [
"-y",
"@groundtruth-mcp/gt-mcp"
],
"env": {
"GT_GITHUB_TOKEN": "<GT_GITHUB_TOKEN>",
"GT_CACHE_DIR": "<GT_CACHE_DIR>",
"GT_LOG_LEVEL": "<GT_LOG_LEVEL>"
}
}
}
}
启动命令npx -y @groundtruth-mcp/gt-mcp
需要配置的环境变量
GT_GITHUB_TOKEN密钥GitHub API token for higher rate limits (raises from 60 to 5000 req/hr)
GT_CACHE_DIRDisk cache directory (default ~/.gt-mcp-cache)
GT_LOG_LEVELLog level written to stderr: debug, info, warn or error (default info)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@groundtruth-mcp/gt-mcp8.0.1

工具

14

收录的工具列表 · 更新于 3 周前

参数类型必填说明
querystring是纯文本用户意图。示例:'use gt for react'、'find issues'、'migrate next from 14 to 15'、'best practices for fastapi'。
projectPathstring否项目级意图(自动扫描、审计)的可选项目目录。默认为当前工作目录。

详细介绍

GroundTruth:为 AI 编码 Agent 提供实时的官方文档和代码审计,内容来自 llms.txt、文档站点、GitHub、npm、PyPI、MDN 和 OWASP

按编码 Agent 的请求获取最新官方文档。

npm 版本 CI Elastic License 2.0 793+ 个精选库 107+ 个审计模式 2063 项测试 14 个工具 Node 24+

GroundTruth 是一款可自托管的 MCP 服务和命令行工具。模型会根据训练数据编写代码,因此即使 React 19 已将 ref 变为常规属性,它们仍会用 forwardRef 包装组件;即使 Next.js 已将 cookies() 改为异步函数,它们仍会同步调用;即使 Tailwind v4 已用 @import "tailwindcss" 取代 @tailwind 指令,它们仍会输出这些指令。GroundTruth 会在请求时向 Agent 提供该库自己的文档:它读取 llms.txt、以 Markdown 格式读取文档站点,或读取 GitHub 仓库;对能回答问题的章节进行排序,并在返回答案前检查其是否涵盖相关主题。它还会使用 107+ 个模式审计你的源代码,并将每项发现链接到当前的修复方案。它运行在你的机器上。无需账号、无需 API 密钥,也没有自带的速率限制。


安装(60 秒)

需要 Node.js 24 或更高版本。

Claude Code

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

Cursor、Claude Desktop、Windsurf 及其他使用 mcpServers 区块的客户端(.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"]
    }
  }
}

其他 MCP 客户端:将 npx -y @groundtruth-mcp/gt-mcp@latest 作为 stdio 服务运行。

命令行(使用相同的工具,无需 MCP 客户端):

npm install -g @groundtruth-mcp/gt-mcp
gt-mcp bp nextjs caching

@latest 会让 npx 在下次会话启动时获取新版本。当有更新版本时,工具响应会附带一行提示(设置 GT_NO_UPDATE_CHECK=1 可关闭检查)。

可选:GitHub token

GroundTruth 会从 GitHub 读取 README、发行说明、迁移指南和代码示例。没有 token 时,GitHub 每小时允许 60 次请求。使用不带额外权限范围的 token,可将上限提高到 5,000 次,并启用 gt_examples 中的代码搜索。

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

在 JSON 配置中,在 args 旁添加 "env": { "GT_GITHUB_TOKEN": "ghp_yourtoken" }。


你将获得什么

14 个工具。每个工具各司其职,同时也对应一个 CLI 命令。

工具CLI功能
gt_dispatchask将普通请求(“使用 gt 执行 drizzle 迁移”)路由到合适的工具及参数
gt_resolve_libraryresolve按名称查找库;找不到时会转而查询 npm、PyPI、crates.io 和 Go modules
gt_get_docsdocs获取某个主题的实时文档;也接受文档 URL
gt_best_practicesbp提供库的模式、反模式和配置指南
gt_auto_scanscan读取项目清单,并为每个依赖项获取最佳实践
gt_searchsearch搜索与库无关的任意主题:OWASP、MDN、web.dev、W3C、AI 提供商文档、Google API
gt_auditaudit扫描源文件,并以 file:line 的格式报告问题,同时附上修复链接
gt_changelogchangelog升级前查看发行说明
gt_compatcompat查询 MDN browser-compat-data 和 caniuse 中的浏览器及运行时支持情况
gt_comparecompare并排比较两个或三个库
gt_examplesexamples获取 GitHub 上的真实示例代码
gt_migrationmigrate获取版本之间的迁移指南和破坏性变更
gt_batch_resolvebatch一次调用解析最多 20 个库
gt_snippetssnippets按库和版本排列代码片段,并缓存在磁盘上

该服务还提供 2 个 MCP 资源(library-registry、library-docs)和 8 个提示词(audit-my-project、upgrade-check、best-practices-scan、compare-libraries、security-check、migration-guide、find-examples、dependency-audit)。

你不必记住工具名称。直接用自然语言提问:

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

也可以直接调用工具:

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

遍历你的项目,在 18 个类别中运行 107+ 项模式检查,以 file:line 的格式报告每个问题,然后从权威来源获取修复方法。

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
类别检查内容
securityXSS、SQL 注入、命令注入、SSRF、路径遍历、硬编码凭据、CORS 通配符
accessibility缺少替代文本、在 div 上使用 onClick、仅含图标的按钮、没有标签的输入框、outline: none
reactforwardRef(React 19)、useFormState 已重命名、将 index 用作 key、有条件地调用 hooks
nextjs同步 cookies/headers/params(Next.js 16)、Tailwind v3 指令、缺少 metadata
typescriptany 类型、非空断言、@ts-ignore、未处理的 Promise
performance缺少延迟加载、使用 useEffect 获取数据、缺少 Suspense 边界
layout导致 CLS 的图片、移动设备上的 100vh、缺少 font-display
node生产环境中的 console.log、同步 fs 操作、未处理的回调
python通过 f-string 进行 SQL 注入、eval/exec、subprocess shell=True、pickle.loads
其他mobile、css、vue、svelte、angular、testing、seo、i18n、api

输出示例:

## [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

将项目根目录传给它即可。它会读取项目清单和锁文件,确定你使用的库及其版本,并为每个库返回最佳实践,按热门程度排序。默认输出约为 15K 个字符。

它会读取 package.json、deno.json、requirements.txt、pyproject.toml、Cargo.toml、go.mod、pom.xml、build.gradle、build.gradle.kts、composer.json、Gemfile 和 pubspec.yaml。

gt_search

适用于不属于单个库的内容。

领域主题
安全OWASP Top 10、SQL 注入、XSS / CSP、CSRF、HSTS、CORS、JWT、OAuth 2.1、WebAuthn、SSRF、API 安全
无障碍WCAG 2.2、WAI-ARIA、键盘导航
性能Core Web Vitals、图像优化、Web 字体、Speculation Rules
Web APIFetch、Workers、WebSocket、WebRTC、IndexedDB、Web Crypto、Intersection Observer
CSSGrid、Flexbox、Container Queries、View Transitions、Cascade Layers、:has()、Subgrid
AI 提供商Claude、OpenAI、Gemini、Mistral、Cohere、Groq、LangChain、LlamaIndex
GoogleMaps、Analytics、Ads、Cloud、Firebase、Vertex AI、YouTube、Gmail、Sheets
基础设施Docker、Kubernetes、GitHub Actions、Terraform、Cloudflare Workers

命令行界面

终端运行 gt-mcp docs react useEffect:库在 2 ms 内解析,获取 react.dev/llms.txt,对 48 个章节中的 6 个进行排序,证据检查通过,答案连同来源一并输出

gt-mcp <command> 会在进程内运行相同的 14 个工具并输出答案。不带参数时,gt-mcp 仍会像之前一样作为 stdio MCP 服务运行。

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 -
命令功能
tools列出每个命令、对应的工具及其参数(机器可读输出使用 --json)
call <tool> [<json>|-]使用 JSON 参数调用任意工具;- 表示从 stdin 读取参数
help [command]显示命令的标志,这些内容由工具的输入架构生成
--json将完整的 CallToolResult 以 JSON 格式输出,而不是文本

退出码:0 表示成功,1 表示工具错误,2 表示用法错误。除非出现问题,否则日志不会输出到 stderr(命令的 GT_LOG_LEVEL 默认值为 warn)。服务端标志仍然可用:--version、--health、--routing-table、--help。


性能

对比 7.5.0 和 8.0.0 的条形图:启动耗时从 1,130 降至 40 ms,启动到 MCP 就绪从 1,074 降至 186 ms,Next.js 缓存冷启动从 6,893 降至 259 ms,次日从 6,684 降至 92 ms,重复搜索从 86 降至 2 ms,工具列表从 23,638 降至 11,560 字节,启动内存从 194 降至 54 MB

在同一台机器上使用相同的测试工具,对已发布的 7.5.0 和 8.0.0 进行测量。网络耗时取决于你的连接以及文档网站。

测量项7.5.08.0.0变化
gt-mcp --version1,130 ms,194 MB40 ms,54 MB快 28 倍
启动到 MCP 就绪1,074 ms186 ms快 5.8 倍
gt_best_practices Next.js 缓存,冷缓存6,893 ms259 ms快 27 倍
次日执行相同调用(缓存已过期 20 h)6,684 ms92 ms快 73 倍
在新会话中重复执行 gt_search86 ms2 ms快 43 倍

每个会话和每个答案消耗的令牌更少:

测量项7.5.08.0.0
tools/list,每个会话都会产生开销23,638 字节11,560 字节(-51%)
工具描述-75%
每个文档或最佳实践答案的传输字节数减半(移除了重复的 structuredContent)
gt_auto_scan 默认输出~60K 个字符~15K 个字符
gt_dispatch 回复2.7K 个字符0.9K 个字符

在显示 structuredContent 而不是文本的客户端中,更多答案内容会送达模型:

工具7.5.08.0.0
gt_compat220 个字符完整的支持情况表
gt_examples142 个字符3.5K 个字符

耗时减少的原因:二进制文件是一个轻量的引导程序,会延迟加载服务端并使用 Node 编译缓存;文档页面以 Markdown 格式请求;阅读器服务仅作备用;缓存页面采用过期后后台重新验证的方式提供。最多 7 天前的页面会立即返回,并在后台刷新。

工作原理

请求流程:MCP 客户端或 gt-mcp CLI 调用 14 个工具之一;从包含 793 个条目的注册表或 npm、PyPI、crates.io 和 Go 模块中解析库;检查缓存;获取链依次尝试 llms.txt、Markdown 内容协商、HTML 转 Markdown、GitHub 文档和 reader 备用方案;内容经过清理、用 BM25 排序、通过证据门检查后,连同来源一起返回

  1. 解析。 根据库名称,先在精选注册表中匹配,然后查询 npm、PyPI、crates.io 和 Go 模块。
  2. 缓存。 先检查受条目数和字符数限制的内存 LRU 缓存,再检查 ~/.gt-mcp-cache 中的磁盘缓存。
  3. 获取。 按顺序尝试各个来源,使用第一个有用的来源:
    1. llms.txt / llms-full.txt,即维护者为大模型发布的文件。嵌套的 llms.txt 会解析到库自己的索引。
    2. 通过内容协商请求文档页面的 Markdown 版本(使用 Accept: text/markdown),前提是网站支持。Next.js 缓存页面的 HTML 大小为 715 KB,而 Markdown 只有 16 KB。
    3. 将 HTML 页面直接转换为 Markdown。
    4. GitHub:README、文档文件、发布版本。托管在 GitHub 上的库会读取自己的 README,而不是 GitHub 全站的 llms.txt。
    5. Jina reader,作为延迟启动的备用方案:在 1.5 秒后启动,或在直接获取失败后启动。
  4. 清理。 过滤提示词注入、防护 SSRF,并移除导航和模板化内容。
  5. 排序。 BM25 根据主题为各个部分评分,并将提及该主题的部分填入令牌预算。
  6. 检查。 证据门(见下文)判断答案是否涵盖该主题。
  7. 回答。 返回排序后的摘录,以及来源 URL、获取日期和主题覆盖情况。

获取层会将连接保持 60 秒,让相同请求的调用方共享同一个进行中的请求,遵循每次调用的取消操作和 GT_TOOL_TIMEOUT_MS 截止时间,缓存 404 和超大响应正文以避免重试,并在主机连续失败后暂停访问一段时间。


依据证据,而非凭感觉

所有文档工具都会遇到一种失效模式:自信地给出不相关的答案。你询问行级安全,工具却返回 Postgres 首页,然后你的模型根据首页内容编出看似合理的答案。

GroundTruth 会先检查获取的内容是否与问题相关,再返回内容。检查会统计主题词出现的数量和频率,以及它们是否出现在标题或代码块中。链接目标和 URL 查询字符串不计入,因此,即使 404 页面的导航中恰好包含你的主题,也无法通过检查。

  • **覆盖不足时会触发第二次针对主题的获取,**而不是直接返回第一个加载成功的页面。
  • **覆盖率为零时会明确报告未找到。**你会收到已检查的来源、这些页面实际涵盖内容的概述,以及下一步可以尝试的方向。请将其视为确切的否定结果。
  • 每个成功的答案都会以 ## Evidence 页脚结尾:其中包含来源 URL、获取日期和主题覆盖率数据,方便你核查答案的来源。

检查会考虑同义词:rls 查询可以由提到“row level security”的页面满足;通过将“migration”扩展为“upgrade guide”找到的页面,也不会因为缺少原词而判定失败。

准确性:7.5.0 对比 8.0.0:

检查项7.5.08.0.0
在包含 212 个查询的通用语料中错误检测库的次数940
在库语料中正确检测的次数217 / 217
覆盖全部 14 个工具的实时 23 项检查矩阵17 / 2323 / 23

两套路由语料都会在测试套件中运行。


覆盖范围

柱状图显示:21 个语言生态系统中有 793 个登记条目:JavaScript 和 TypeScript 526 个,Python 162 个,Go 50 个,Rust 34 个,Java 30 个,C 和 C++ 26 个,与语言无关 24 个,C# 15 个,Kotlin 12 个,以及 CSS、PHP、YAML、Elixir、Ruby、SQL 等

涵盖 21 个语言生态系统中的 793 个精选库,并可自动回退到 npm、PyPI、crates.io 和 Go 模块,以处理注册表之外的内容。

8.0.0 版本新增 195 个库:Python、数据与 AI 工具、Java、Kotlin 和 Spring、.NET、Go、Rust、Ruby、PHP、Swift、Dart 和 Flutter、Elixir、C 和 C++、基础设施、数据库、可观测性,以及更多 JavaScript 和 TypeScript 库。我们对已有的 598 个条目逐一进行了实时探测:修复了 35 个失效的文档根路径,更新了 115 个迁移的文档站点,并新增了约 190 个经验证的 llms.txt 索引。精选 URL 表(2,638 个 URL)也已重新检查。

生态系统示例
JavaScript / TypeScriptNext.js、React、Tailwind CSS、shadcn/ui、TanStack Query、Zustand、Hono、NestJS、tRPC、Vite、Vitest、Playwright
PythonDjango、FastAPI、Flask、Pydantic、SQLAlchemy、Celery、NumPy、Pandas、Polars、PyTorch、scikit-learn
Java / KotlinSpring Boot、Hibernate、Quarkus、Micronaut、Ktor、Jetpack Compose、JUnit、Mockito
.NETASP.NET Core、Entity Framework Core、.NET MAUI、xUnit.net、Serilog
Go / RustGin、Echo、Fiber、GORM、Tokio、Axum、Actix Web、Serde、sqlx
Ruby / PHP / ElixirRuby on Rails、Sidekiq、RSpec、Laravel、Livewire、Symfony、Phoenix、Ecto、Oban
移动开发Flutter、Riverpod、SwiftUI、Alamofire、React Native、Expo
C / C++CMake、Clang / LLVM、OpenCV、gRPC
数据库PostgreSQL、Redis、MongoDB、SQLite、ClickHouse、Elasticsearch、Prisma、Drizzle ORM
基础设施Docker、Kubernetes、Helm、Terraform、Pulumi、Ansible、Cloudflare Workers
可观测性OpenTelemetry、Prometheus、Grafana、Grafana Loki、Sentry
AIClaude API、OpenAI SDK、Gemini API、Vercel AI SDK、LangChain Python、HuggingFace Transformers

完整列表见注册表源文件:src/sources/registry.ts。


安全

GroundTruth 会获取不可信的 Web 内容并将其交给模型,因此对获取流程进行了加固:

  • SSRF 防护会阻止私有、环回、链路本地和 ULA 地址范围,也适用于重定向。会根据完整的阻止列表检查 IP 字面量 URL,其中包括云元数据地址 100.100.100.200 和 fd00:ec2::254、NAT64 和 6to4。
  • 提示词注入清理器会先解码 HTML 实体并剥除零宽字符和双向文本字符,再进行扫描,然后使用偏移映射对完全匹配的片段进行脱敏。这是尽力而为的模式脱敏;请将获取的文档视为不可信输入。
  • 令牌仅会留在其来源站点。 GT_GITHUB_TOKEN 和 GT_JINA_API_KEY 绝不会转发到其他来源站点,重定向时也不例外。
  • 审计模式可防止 ReDoS。 最坏情况下的输入处理时间从 9.5 s 降至 1 ms。
  • HTTP 模式默认绑定到 127.0.0.1,会验证 Host 和 Origin,并以恒定时间比较 bearer 令牌。
  • 磁盘上不存储用户数据。 磁盘缓存使用哈希键存储获取的文档,不存储提示词或工具输入。

请通过 GitHub 安全公告私下报告漏洞。范围和威胁模型:SECURITY.md。


HTTP 和 Docker

设置 GT_HTTP_PORT 后,GroundTruth 将提供 Streamable HTTP,而不是 stdio。它遵循 MCP 规范 2026-07-28,同时仍支持 2025 年的客户端。

路径用途
/mcpMCP 端点(POST、GET、DELETE)
/health健康状态 JSON,包括缓存目录检查
/metricsPrometheus 指标

仅限本地回环地址:

GT_HTTP_PORT=3100 npx -y @groundtruth-mcp/gt-mcp@latest

它绑定到 127.0.0.1。如果未设置 GT_AUTH_TOKEN,服务会向本地调用方开放,并记录警告。设置令牌后,每个路径都需要 Authorization: Bearer <token>,包括 /health 和 /metrics。

Docker:

docker build -t gt-mcp .
export GT_AUTH_TOKEN="$(openssl rand -hex 32)"
docker run -d --name gt -p 127.0.0.1:3100:3100 -e GT_AUTH_TOKEN gt-mcp
claude mcp add --transport http gt http://localhost:3100/mcp --header "Authorization: Bearer $GT_AUTH_TOKEN"

镜像大小为 277 MB,以非特权用户 gt 运行,并在容器内绑定到 0.0.0.0,因此未设置 GT_AUTH_TOKEN 时会拒绝启动。其健康检查会发送令牌。-p 127.0.0.1: 前缀会将端口限制在主机的回环地址;移除它即可向其他机器提供服务。

位于反向代理之后: 服务使用纯 HTTP。请在代理处终止 TLS,并将公共主机名添加到 GT_HTTP_ALLOWED_HOSTS,否则携带该主机名的请求会收到 403。在非回环地址上绑定时,未设置 GT_AUTH_TOKEN,服务将无法启动。

会话: 默认无状态。设置 GT_HTTP_STATEFUL=1 后,每个 2025 年的客户端都会获得自己的会话;如果 30 分钟内没有请求,会话就会关闭。

通过身份验证的调用方可以让服务抓取公共 URL,并对进程可读取的任意目录运行 gt_audit 和 gt_auto_scan。请勿将不希望被读取的内容挂载到容器中。


配置

所有配置项均为可选。无效的数值或枚举值会导致启动失败,而不会静默回退。

变量默认值用途
GT_HTTP_PORT未设置在此端口上通过 Streamable HTTP 提供 MCP,而不是使用 stdio
GT_HTTP_HOST127.0.0.1HTTP 绑定地址;任何非回环地址都需要 GT_AUTH_TOKEN
GT_HTTP_ALLOWED_HOSTS未设置HTTP 服务接受的额外 Host/Origin 值,以逗号分隔
GT_HTTP_STATEFUL未设置设置为 1 后,每个 2025 年的 HTTP 客户端都会获得自己的会话
GT_AUTH_TOKEN未设置/mcp、/health 和 /metrics 所需的 Bearer 令牌
GT_GITHUB_TOKEN未设置GitHub API 令牌:每小时请求数从 60 提高到 5,000,并启用 gt_examples 代码搜索
GT_JINA_API_KEY未设置Jina 阅读器密钥,可解除页面渲染的匿名速率限制
GT_CACHE_DIR~/.gt-mcp-cache磁盘缓存目录
GT_CACHE_TTL_MS1800000默认缓存时长
GT_SWR_STALE_TTL_MS3600000缓存页面过期后仍可提供服务的时长
GT_TOKEN_LIMIT8000默认答案的 token 数量上限
GT_MAX_TOKEN_LIMIT20000调用可请求的最大 tokens 值
GT_TOOL_TIMEOUT_MS55000每次工具调用的截止时间
GT_FETCH_TIMEOUT_MS15000每个出站 HTTP 请求的超时时间
GT_MAX_CONCURRENT_FETCHES12同时进行的出站请求数
GT_CONCURRENCY8gt_auto_scan 中并行获取的库数量(最多 12)
GT_DEEP_FETCH_MAX_PAGES8首个页面未涵盖主题时读取的关联页面数
GT_DEEP_FETCH_RELEVANCE_THRESHOLD0.3首个页面与主题的相关性阈值(0-1);达到该值时跳过深度抓取
GT_DEEP_FETCH_TIMEOUT_MS25000单次深度抓取的时间预算
GT_CIRCUIT_BREAKER_THRESHOLD3跳过主机前允许的连续失败次数
GT_CIRCUIT_BREAKER_RESET_MS60000跳过故障主机的时长
GT_LOG_FORMATtexttext 或 json;日志写入 stderr
GT_LOG_LEVELinfo(CLI 命令为 warn)debug、info、warn 或 error
GT_NO_UPDATE_CHECK未设置设置为 1 后,跳过 npm 注册表更新检查及其提示
GT_NO_WATERMARK未设置设置为 1 后,移除提示行和不可见水印
NODE_DISABLE_COMPILE_CACHE未设置设置为 1 后,跳过磁盘编译缓存

gt-mcp --help 会打印相同的列表。


从 7.x 升级

8.0.0 有四项重大变更。使用 Node 24 或更高版本的 Stdio 用户,只要读取文本内容,就不会受到这些变更的影响。

变更操作
HTTP 模式默认绑定到 127.0.0.1(7.x 会绑定所有接口)如需公开访问,请设置 GT_HTTP_HOST=0.0.0.0 和 GT_AUTH_TOKEN。Docker 镜像已设置主机,但仍需要令牌。
来自外部 Host 或 Origin 的请求会收到 403将您的公开主机名添加到 GT_HTTP_ALLOWED_HOSTS。
Prose 工具不再返回 structuredContent读取文本内容;其中包含完整答案。gt_resolve_library、gt_batch_resolve 和 gt_dispatch 仍会保留其结构化结果。
Node.js 24 或更高版本升级 Node。

底层还有一些新变化:MCP TypeScript SDK v2(@modelcontextprotocol/server)、tools/list 缓存提示,以及修复后的 HTTP 模式(7.5.0 只响应了第一个 HTTP 请求)。生产依赖从 169 个包(27 MB)减少到 13 个(7.7 MB),Docker 镜像从 566 MB 缩小到 277 MB。完整列表:CHANGELOG.md。


与 Context7 的比较

Context7 是一款不错的产品。两者的区别:

GroundTruthContext7
托管方式自托管(stdio)+ HTTP 模式云后端,本地 MCP 客户端
速率限制无每月免费 1,000 次(5,000 次需 $10/席位)
传输方式Stdio + Streamable HTTPStdio + Streamable HTTP
来源优先级llms.txt、Markdown 文档、HTML、GitHub、reader 回退;在查询时获取使用专有爬取流程构建的向量数据库
答案验证每次主题查询都会经过证据门控;无法验证时会明确说明未找到无
工具14 个专用工具2 个工具
代码审计107+ 种模式、18 个类别、文件:行号、实时修复无
自由文本搜索OWASP、MDN、AI 文档、Google API、Web 标准仅限库文档
变更日志、兼容性、比较、示例、迁移有无
MCP 资源 + 提示词2 个资源、8 个提示词无
锁文件检测从锁文件中读取确切版本无
库793+ 个精选库 + npm/PyPI/crates.io/Go 回退未公开(声称有“数千个”)
是否需要 API 密钥否否

Context7 会将文档索引到向量数据库中,速度很快,但跟进新版本会有延迟。GroundTruth 会在查询时从来源获取内容,并在没有找到相关主题内容时告知模型。


贡献

添加库时,请针对 src/sources/registry.ts 提交拉取请求,并提供 id、name、docsUrl,以及项目发布了 llms.txt 时的 llmsTxtUrl。

pnpm install
pnpm typecheck
pnpm test        # 2063 tests across 267 files
pnpm build

CI 会在 Node 24 和 26 上运行测试套件。问题和功能请求:github.com/rm-rf-prod/GroundTruth-MCP/issues。

参考
内容位置
工具架构和参数任意 MCP 客户端中的 tools/list、gt-mcp tools,或 src/tools/
完整库列表src/sources/registry.ts
审计规则,18 个类别src/sources/audit-patterns.ts
路由表gt-mcp --routing-table
健康状态、遥测、断路器状态gt-mcp --health,或 HTTP 模式下的 /health
发布历史CHANGELOG.md

Star 历史

Star 历史图表

许可证

Elastic License 2.0。可免费使用、自托管并基于此构建。唯一禁止的事项是将其作为托管服务提供。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。