mcpField
G
Groundtruth Mcp

Groundtruth Mcp

ローカル
github.com/rm-rf-prod開発ツール63 週間前に更新

Groundtruth Mcp について

GroundTruthは、最新のライブラリドキュメントを取得し、記載された指針に基づいてコードを監査するセルフホスト可能なMCPサーバー兼CLIです。ライブラリの公式資料やリポジトリに基づく情報を必要とする開発者やコーディングエージェント向けです。

主な機能

  1. 01ライブラリの最新ドキュメント取得
  2. 02複数のパッケージレジストリでライブラリを検索
  3. 03修正リンク付きのソースコード監査
  4. 04ベストプラクティスと移行ガイドの検索
  5. 05互換性確認とライブラリ比較
  6. 06MCPツールとCLIコマンドを提供

活用シーン

  1. 01コーディング中に最新の指針を確認
  2. 02プロジェクト依存関係のベストプラクティスを調査
  3. 03コードの問題と文書に基づく修正方法を特定
  4. 04ライブラリのアップグレード前に変更を確認

MCP 対応

ドキュメント、検索、監査、互換性、移行などのツールに加え、リソースとプロンプトをMCPクライアントに公開します。同じ機能をCLIからも利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの 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:llms.txt、ドキュメントサイト、GitHub、npm、PyPI、MDN、OWASPから取得した、AI コーディングエージェント向けの最新の公式ドキュメントとコード監査

コーディングエージェントが求めたときに取得する、最新の公式ドキュメント。

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 は、要求時にエージェントへライブラリ独自のドキュメントを提供します。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 クライアントでは、stdio サーバーとして npx -y @groundtruth-mcp/gt-mcp@latest を実行してください。

コマンドライン(同じツールを使用でき、MCP クライアントは不要です):

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

@latest を指定すると、npx は次回のセッション開始時に新しいリリースを取得します。新しいバージョンがある場合、ツールの応答に1行の通知が表示されます(GT_NO_UPDATE_CHECK=1 で確認を無効にできます)。

任意:GitHub トークン

GroundTruth は GitHub から README、リリースノート、移行ガイド、コード例を読み込みます。トークンがない場合、GitHub のリクエスト上限は1時間あたり60件です。追加のスコープを設定していないトークンを使うと、上限が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 個のツールがあります。それぞれ 1 つの役割を担い、CLI コマンドとしても使えます。

ツールCLI機能
gt_dispatchask「drizzle のマイグレーションに gt を使って」のような自然言語のリクエストを、適切なツールと引数に振り分けます
gt_resolve_libraryresolve名前でライブラリを検索し、見つからない場合は npm、PyPI、crates.io、Go モジュールを検索します
gt_get_docsdocsトピックごとの最新ドキュメントを取得します。ドキュメントの URL も指定できます
gt_best_practicesbpライブラリのパターン、アンチパターン、設定ガイダンスを提供します
gt_auto_scanscanマニフェストを読み込み、各依存関係のベストプラクティスを取得します
gt_searchsearchライブラリに依存しないトピックを検索します。OWASP、MDN、web.dev、W3C、AI プロバイダーのドキュメント、Google APIs が対象です
gt_auditauditソースファイルをスキャンし、修正へのリンクとともに file:line 形式で問題を報告します
gt_changelogchangelogアップグレード前にリリースノートを確認できます
gt_compatcompatMDN browser-compat-data と caniuse に基づいて、ブラウザーとランタイムのサポート状況を確認できます
gt_comparecompare2 つまたは 3 つのライブラリを並べて比較します
gt_examplesexamplesGitHub から実例のコードを取得します
gt_migrationmigrateバージョン間のマイグレーションガイドと破壊的変更を確認できます
gt_batch_resolvebatch1 回の呼び出しで最大 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 ワイルドカード
accessibilityalt テキストの欠落、div への onClick、アイコンのみのボタン、ラベルのない入力、outline: none
reactforwardRef(React 19)、useFormState の名称変更、key としての index、条件付きフック
nextjs同期的な cookies/headers/params(Next.js 16)、Tailwind v3 ディレクティブ、メタデータの欠落
typescriptany 型、非 null アサーション、@ts-ignore、未処理の Promise
performance遅延読み込みの欠落、useEffect によるデータ取得、Suspense 境界の欠落
layoutCLS の原因となる画像、モバイルでの 100vh、font-display の欠落
node本番環境での console.log、同期的な fs 操作、未処理のコールバック
pythonf-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

1 つのライブラリに該当しないものはすべて対象です。

分野トピック
セキュリティ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

CLI

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 ms から 40 ms、起動から MCP の準備完了までは 1,074 ms から 186 ms、Next.js キャッシュの初回利用時は 6,893 ms から 259 ms、翌日は 6,684 ms から 92 ms、検索の再実行は 86 ms から 2 ms、ツール一覧は 23,638 バイトから 11,560 バイト、起動時のメモリは 194 MB から 54 MB

同一のハーネスを使用し、1 台のマシンで公開済みの 7.5.0 と 8.0.0 を測定しました。ネットワークの計測値は、接続環境とドキュメントサイトによって異なります。

測定項目7.5.08.0.0変化
gt-mcp --version1,130 ms、194 MB40 ms、54 MB28 倍高速
起動から MCP の準備完了まで1,074 ms186 ms5.8 倍高速
gt_best_practices Next.js キャッシュ、キャッシュなし6,893 ms259 ms27 倍高速
翌日の同じ呼び出し(キャッシュ経過時間 20 時間)6,684 ms92 ms73 倍高速
新しいセッションで gt_search を再実行86 ms2 ms43 倍高速

セッションあたり、回答あたりのトークン数が減少します:

測定項目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 としてリクエストされ、リーダーサービスはフォールバックとしてのみ使用されます。また、キャッシュ済みページは stale-while-revalidate 方式で提供されます。最長 7 日前のページをすぐに返し、バックグラウンドで更新します。

仕組み

リクエストの流れ:MCP クライアントまたは gt-mcp CLI が 14 個のツールのいずれかを呼び出します。ライブラリは 793 件のレジストリ、または npm、PyPI、crates.io、Go モジュールから解決されます。キャッシュを確認した後、取得チェーンは llms.txt、Markdown 形式のネゴシエーション、HTML から Markdown への変換、GitHub ドキュメント、リーダーのフォールバックを順に試します。コンテンツはサニタイズされ、BM25 でランク付けされ、エビデンスゲートで確認されてから、ソースとともに返されます

  1. 解決。 ライブラリ名を、厳選されたレジストリ、次に npm、PyPI、crates.io、Go モジュールと照合します。
  2. キャッシュ。 エントリー数と文字数に上限を設けたインメモリ LRU を確認し、次に ~/.gt-mcp-cache のディスクキャッシュを確認します。
  3. 取得。 ソースを順に試し、最初に見つかった有用なソースを使用します。
    1. llms.txt / llms-full.txt。メンテナーが LLM 向けに公開しているファイルです。ネストされた llms.txt は、ライブラリ独自のインデックスを解決します。
    2. Accept: text/markdown によるコンテンツネゴシエーションを介した、Markdown 形式のドキュメントページ(サイトが対応している場合)。Next.js のキャッシュページは、HTML では 715 KB、Markdown では 16 KB です。
    3. HTML ページを直接 Markdown に変換します。
    4. GitHub:README、ドキュメントファイル、リリース。GitHub でホストされているライブラリでは、GitHub 全体の llms.txt ではなく、ライブラリ独自の README を読み込みます。
    5. Jina リーダー。直接取得に失敗した場合、または 1.5 秒後に開始するヘッジ付きフォールバックです。
  4. サニタイズ。 プロンプトインジェクションフィルターと SSRF ガードを適用し、ナビゲーションや定型文を除去します。
  5. ランク付け。 BM25 で各セクションをトピックに照らしてスコア付けし、そのトピックに言及しているセクションでトークン予算を満たします。
  6. 確認。 エビデンスゲート(以下参照)が、回答でトピックをカバーしているかを判断します。
  7. 回答。 ランク付けされた抜粋を、ソース URL、取得日、トピックのカバー率とともに返します。

取得レイヤーは接続を 60 秒間維持し、同一の呼び出し元間で進行中のリクエストを 1 つに共有し、呼び出しごとのキャンセルと 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 modules に自動的にフォールバックします。

リリース 8.0.0 では、Python、データ・AI ツール、Java、Kotlin と Spring、.NET、Go、Rust、Ruby、PHP、Swift、Dart と Flutter、Elixir、C と C++、インフラストラクチャ、データベース、オブザーバビリティ、さらに JavaScript と TypeScript のライブラリなど、195 のライブラリが追加されました。既存の 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 秒から 1 ミリ秒になりました。
  • HTTP モードはデフォルトで 127.0.0.1 にバインドし、Host と Origin を検証し、ベアラートークンを定数時間で比較します。
  • ユーザーデータはディスクに保存されません。 ディスクキャッシュに保存されるのは、ハッシュ化されたキーで管理される取得済みドキュメントであり、プロンプトやツール入力ではありません。

脆弱性は、GitHub Security Advisories を通じて非公開で報告してください。対象範囲と脅威モデルについては、SECURITY.md を参照してください。


HTTP と Docker

GT_HTTP_PORT を設定すると、GroundTruth は stdio の代わりに Streamable HTTP を提供します。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 がない場合は、ローカルからの呼び出しに対して認証なしで起動し、警告をログに出力します。トークンを設定すると、/health と /metrics を含むすべてのパスで Authorization: Bearer <token> が必要です。

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 トークン。1 時間あたりのリクエスト数が 60 回から 5,000 回になり、gt_examples のコード検索が有効になります
GT_JINA_API_KEY未設定Jina Reader キー。ページのレンダリングに匿名利用時のレート制限が適用されなくなります
GT_CACHE_DIR~/.gt-mcp-cacheディスクキャッシュのディレクトリ
GT_CACHE_TTL_MS1800000デフォルトのキャッシュ有効期間
GT_SWR_STALE_TTL_MS3600000有効期限切れ後もキャッシュ済みページを提供できる期間
GT_TOKEN_LIMIT8000デフォルトの回答サイズ(トークン数)
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深掘り取得 1 回あたりの時間予算
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 には、互換性を破る変更が 4 つあります。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 件は 1 シートあたり $10)
トランスポートStdio + Streamable HTTPStdio + Streamable HTTP
ソースの優先順位llms.txt、Markdown ドキュメント、HTML、GitHub、リーダーによるフォールバック。クエリ時に取得独自のクロールパイプラインを備えたベクターデータベース
回答の検証すべてのトピッククエリにエビデンスゲートを適用。検証できない場合は明示的に見つからなかったと通知なし
ツール特化型ツール 14 個ツール 2 個
コード監査107 以上のパターン、18 カテゴリ、ファイルと行番号、ライブ修正なし
自由形式検索OWASP、MDN、AI ドキュメント、Google API、ウェブ標準ライブラリのドキュメントのみ
変更履歴、互換性、比較、例、移行ありなし
MCP リソース+プロンプトリソース 2 個、プロンプト 8 個なし
ロックファイルの検出ロックファイルから正確なバージョンを読み取りなし
ライブラリ厳選された 793 以上+npm/PyPI/crates.io/Go へのフォールバック非公開(「数千」と主張)
API キーが必要いいえいいえ

Context7 はドキュメントをベクターデータベースにインデックス化しており、高速ですが、新しいリリースへの追従には遅れがあります。GroundTruth はクエリ時にソースから取得し、そのトピックについて何も見つからなかった場合はモデルに伝えます。


貢献

ライブラリの追加は、id、name、docsUrl、およびプロジェクトが公開している場合は llmsTxtUrl を指定して、src/sources/registry.ts にプルリクエストを送ってください。

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

CI では Node 24 と 26 でテストスイートを実行します。Issue やリクエストはこちら: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。無料で使用、セルフホスト、拡張できます。できないことは、マネージドサービスとして提供することだけです。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。