Groundcheck について
Groundcheckは、取得した情報源に基づいて事実の主張を検証し、判定、信頼度、引用を返すエージェント向けMCPサーバーです。引用チェックや、エージェント間取引向けの署名付き配達レシートにも対応します。
主な機能
- 01証拠に基づく主張判定
- 02信頼度と引用の提示
- 03複合主張の分解
- 04草稿の引用チェック
- 05署名付き配達レシート
活用シーン
- 01エージェントが事実を述べる前の確認
- 02AI生成草稿の主張の点検
- 03有料サービスの提供内容の検証
- 04証券名を正規FIGIレコードに解決
MCP 対応
ローカルのstdioサーバーまたはリモートのstreamable-HTTPエンドポイントを通じて、検証などのツールをMCPクライアントに提供します。サーバーは検索と判定生成を担うPythonエンジンと通信します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://groundcheck.seiche.info/mcpclaude mcp add --transport http groundcheck https://groundcheck.seiche.info/mcp{"mcpServers":{"groundcheck":{"type":"http","url":"https://groundcheck.seiche.info/mcp"}}}Cursor で開く{"servers":{"groundcheck":{"type":"http","url":"https://groundcheck.seiche.info/mcp"}}}VS Code で開く{"mcpServers":{"groundcheck":{"type":"http","url":"https://groundcheck.seiche.info/mcp"}}}{"mcpServers":{"groundcheck":{"serverUrl":"https://groundcheck.seiche.info/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
5| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| claim | string | はい | 完全な平叙文1文で表した事実主張(質問や段落ではありません)。 |
| max_sources | integer | いいえ | 取得して評価する情報源の数(1-10)。 |
詳細
Groundcheck
日付が特定されたSOFR、EFFR、OBFRの正確なパーセンテージに関する主張は、一般的な検索の前にNY Fedの公式ベンチマークAPIで確認します。たとえば、SOFR was 3.88% on 2026-09-29. は、その適用日の公表済みpercentRateと照合されます。
証拠には日付、取得時刻、レスポンスのダイジェストが保持されます。値が見つからない場合や曖昧な場合は未検証のままとなります。このルートでは、日付を推測したり、元の過去時点のデータであることを保証したり、言語モデルのキャリブレーションを引き継いだりすることはありません。

エージェントが回答を確定する前に実行する、根拠確認です。
Groundcheckはライブソースを使って事実に関する主張を検証し、判定、信頼度スコア、引用を返します。Claude Code、Cursor、独自のものなど、あらゆるエージェントがタスクの途中で呼び出し、確信のない事実を述べる前に確認できます。
また、エージェント型コマースの検証レイヤーでもあります。エージェントがx402経由で別のサービスに支払う際、attest_deliveryは納品物を宣伝内容と照合して検証し、署名付きでオフライン検証可能な納品レシートを発行します。これは支払い→納品→根拠のあるコンテンツを結び付けるもので、a2a-payments関連文献で欠けているレイヤーとされている、中立的な説明責任の証跡です(docs/delivery-attestation.md)。
アーキテクチャ
2つの部分で構成され、それぞれに適した言語を使用します。
server/ TypeScript MCP server — thin protocol layer (stdio). Holds no logic.
engine/ Python FastAPI service — retrieval + stance classification + the verdict brain.
MCP サーバーはstdio経由でクライアントによって起動され、HTTP経由でエンジンと通信します(GROUNDCHECK_ENGINE_URL、デフォルトはhttp://127.0.0.1:8723)。判定方法の唯一の情報源はエンジンであり、正規のPython free-llm-router(無料利用枠のプロバイダー)を通じて、ソースの見解を分類します。
verify_claim ─▶ TS MCP server ─HTTP▶ Python engine
├─ retrieval (Wikipedia, keyless; or your own search)
├─ stance (free-llm-router → supports/refutes/neutral)
└─ verdict (refuses on conflict, saturating confidence)
ツール
| ツール | 使用する場面 | 返されるもの |
|---|---|---|
verify_claim(claim, maxSources?) | 確信のない事実を断言しようとしているとき | { verdict, confidence, rationale, sources } |
check_citations(text, maxClaims?) | AI 生成の草稿を公開する前 | 主張ごとの判定レポート |
attribution_badge() | コンテンツがチェック済みであることを示したいとき | Markdown バッジ |
resolve_instrument(query, idType?, maxResults?) | テキストに証券名があり、正確にどの証券かを特定する必要があるとき | 正規の FIGI レコードと来歴(Bloomberg open symbology) |
extract_claims(text, maxClaims?) | 根拠を付けるために費用をかける前に、文書の主張を確認したいとき | 個別に検証可能な主張と、入力ハッシュにひも付けられた署名付きレシート |
attest_delivery(service, response_text, …) | x402 経由で別のサービスに支払い、その出力に基づいて行動する(または説明責任を果たす)とき | 支払い → 配信 → 根拠のあるコンテンツをひも付ける署名付き 配信レシート(ドキュメント) |
verdict は supported・refuted・unverified のいずれかです。各判定には
sufficiency タグ(sufficient・insufficient・no_sources・
no_stance・conflict)も付き、エージェントは「何も見つからなかった」
「ソースはあるが主張を立証できない」「ソース同士が食い違っている」を
区別できます。棄却が起きるこの3つのケースはそれぞれ異なる意味を持ち、
ひとまとめにされなくなりました
(SURE-RAG)。
複合的な主張は分解されます。 「Marie Curie はノーベル賞を2度受賞し、
パリで生まれた」 のような主張は個別の要素に分割され
(Fact in Fragments)、それぞれを
独立した証拠で検証し、最も弱い要素に基づいて再結合します。1つでも誤った
部分があれば全体が反証され、1つでも立証されていない部分があれば
supported にはなりません。真の部分が誤った部分をチェックから
すり抜けさせることはありません。要素の内訳は atoms で返されます。
(分解はルールベースで、高い精度を重視しています。明確な接続の境界でのみ
分割し、それ以外では主張全体をそのままにします。GROUNDCHECK_DECOMPOSE=0
で無効化できます。)
リモート MCP(インストール不要): リモート MCP サーバーとして
https://groundcheck.seiche.info/mcp を追加します(Claude/ChatGPT/Cursor の
コネクター、または Smithery/Glama などのゲートウェイを利用できます)。
streamable-HTTP JSON-RPC で通信します。verify_claim は無料で、支払いが必要な
ツールは HTTP 402 と x402 オファーを返します。
クイックスタート
MCP サーバーは、Python エンジンがまだ実行されていない場合、自動で起動するため、 登録は1回だけで済みます。別プロセスを管理する必要はありません。
make install # deps for both halves (pip + npm)
npm --prefix server run build # compile the server
export GROQ_API_KEY="gsk_..." # one free key for stance classification (Groq: ~2 min, 14,400/day)
# register with your MCP client — the engine spawns on first use and stops with the server
claude mcp add groundcheck -- node "$PWD/server/dist/server.js"
エンジンを自分で起動済みです(make engine または docker compose up -d)か?
サーバーはそのエンジンを検出して再利用し、自身が起動していないエンジンには
手を加えません。起動を完全に無効にするには GROUNDCHECK_NO_SPAWN=1 を設定します。
npm で公開された後は、登録コマンドは
claude mcp add groundcheck -- npx -y groundcheck-mcpになります。 自動起動にはローカルのengine/と Python の依存関係が必要です。npx のみでインストールする場合は、docker compose up -dでエンジンを起動すると、サーバーがGROUNDCHECK_ENGINE_URL経由で接続します。
プロバイダーキーがなくてもエンジンは動作します。検索は機能しますが、すべての判定は
unverified になります。無効なバックエンド、キーの不足、ソースの競合はいずれも
unverified に至るよう、正直に動作します。設定されていない Groundcheck が
supported を返すことはありません。
注:OpenRouter の
:freeモデルはクォータによって制限され(HTTP 429)、単独の プロバイダーとしては適していません。高速な分類レイヤーには Groq または Cerebras を推奨します。
なぜ LLM の判断ではなく、根拠に基づく判定なのか
LLM にある主張が真実かどうかを判断させると、見落としやすい形で信頼性が損なわれます。 TraderBench(Yuan ほか、2026)では、同じ候補回答を3つの最先端 LLM 判定者が再評価したところ、知識検索セクションのスコアに約29ポイントの差が生じました。一方、検証可能な計算を基準とするパフォーマンス評価セクションの差は0.3でした。教訓は次のとおりです。外部証拠によって判断を制約するほど、ばらつきは小さくなります。
Groundcheck はこの原則に基づいて構築されています。パラメトリックメモリーをもとに、モデルに「これは本当ですか?」と尋ねることはありません。代わりに、次の処理を行います。
- まず情報源を検索し、その後、証拠に基づく限定的な質問だけをします。つまり、引用されたこの箇所は主張を支持するか、反証するか、それとも中立か(スタンス分類)。
- 矛盾がある場合は判断を拒否し、確信度を飽和させるため、意見の不一致は自信に満ちた推測ではなく、
unverifiedに反映されます。 - 引用を返すため、判定を確認できます。モデルの言葉をそのまま信じる必要はありません。
これが LLM 判定者とグラウンディングチェックの違いです。判定者では裁量そのものが成果物ですが、ここでは裁量が検索された証拠によって意図的に制限されています。
キャリブレーションされた判定:「誤り ≤ α」の保証
約束の付いていない確信度の数値は、小数点付きの雰囲気にすぎません。キャリブレーション成果物をデプロイすると、Groundcheck は方向性のある判定に guarantee オブジェクトを付与します。これは分割コンフォーマル予測(Multi-LLM Adaptive Conformal Inference、arXiv:2602.01285 を応用)を用いて構築されています。
- スタンス分類はパネルとして実行されます。最大
GROUNDCHECK_ENSEMBLE_MAX個の無料プロバイダーが、主張を個別に判定します(モデルファミリーによって誤判定する主張が異なるため、アンサンブルはどの単体モデルよりも優れています)。情報源ごとのスタンスは多数決で決定され、各パネリストはスニペットのみを根拠とした主張の真実性の確率も出力します。これらを組み合わせて、重み付きのensemble_scoreを算出します。 scripts/calibrate.pyはラベル付きの主張セットに対して実際のパイプラインを実行し、主張グループ(instrument/general、フォールバックとしてglobal)ごとの有限標本しきい値をcalibration/calibration.jsonに保存します。- 判定がしきい値を超えた場合にのみ、認定済み(
guarantee.certified: true)となります。数理的な保証により、キャリブレーションセットと交換可能な主張について、誤った主張がsupportedと認定される確率は ≤ α(デフォルトは0.1)となり、refutedについても対称的に保証されます。分布に関する仮定はなく、有限標本で厳密に成立します。
ほかの場合と同様、正直に性能を低下させます。成果物がなければ保証を主張することはありません。指定した α に対してキャリブレーションデータが不足している場合、しきい値を外挿せずに判定を拒否します。この保証の精度は交換可能性の仮定に依存します。新しいドメインで利用する前に、そのドメインの主張を使って再キャリブレーションしてください。
設定(エンジン)
| 変数 | デフォルト | 用途 |
|---|---|---|
GROUNDCHECK_SEARCH_BACKEND | (unset) | 実際の検索を無効にするには stub を指定 |
GROUNDCHECK_SEARCH_URL | Wikipedia | カスタム JSON 検索エンドポイント({results:[{title,url,snippet,stance?}]}) |
GROUNDCHECK_SEARCH_KEY | — | カスタムエンドポイントのベアラートークン |
GROUNDCHECK_ROUTER_PATH | 隣接するチェックアウト | free-llm-router Python パッケージへのパス |
GROUNDCHECK_ENGINE_HOST / _PORT | 127.0.0.1 / 8723 | エンジンのバインドアドレス |
GROQ_API_KEY (または任意のルータープロバイダーキー) | — | スタンス分類を有効化 |
GROUNDCHECK_ENSEMBLE | 1 | 複数プロバイダーによるスタンス判定パネル(0 = 単一ルーター) |
GROUNDCHECK_ENSEMBLE_MAX | 3 | 主張ごとのパネリストの最大同時実行数 |
GROUNDCHECK_CALIBRATION | calibration/calibration.json | コンフォーマル成果物のパス |
機械決済対応ホスティング(x402)
ホスト型エンジンでは、x402 プロトコルを介して、AI エージェントに USDC で呼び出しごとに課金できます。HTTP 402 と署名付き送金承認を使用し、アカウントも API キーも必要ありません。GROUNDCHECK_X402_PAY_TO を設定しない限り無効です。/verify は永久に無料で、支払いの前に出力を評価するために利用できます。有料機能の料金は、きめ細かな検証ループに基づいて設定されています。抽出 $0.005 → グラウンディング $0.02 → 配信証明バンドル $0.05(さらに /resolve は $0.005)です。両方のプロトコル世代(v1 と v2)に対応しており、エージェントは GET /.well-known/x402 でオファーを確認できます。オペレーター向けの完全なガイドは、docs/x402.md をご覧ください。
サーバー側:
| 変数 | デフォルト | 目的 |
|---|---|---|
GROUNDCHECK_ENGINE_URL | http://127.0.0.1:8723 | サーバーがエンジンを見つける場所 |
GROUNDCHECK_NO_SPAWN | (未設定) | エンジンの自動起動を無効にするには設定します |
GROUNDCHECK_ENGINE_DIR | リポジトリの engine/ | 自動起動時のエンジンの場所 |
GROUNDCHECK_PYTHON | python3 | エンジンの起動に使用するインタープリター |
GROUNDCHECK_REPO_URL | リポジトリの URL | 帰属表示のフッター/バッジに使用する URL |
開発
make test # engine pytest (verdict rule + x402 gating) + server typecheck
make engine # run the engine
make server # run the MCP server in dev (tsx)
make build # compile the server to server/dist
興味深いロジックは engine/groundcheck_engine/verdict.py にあります。どの程度のソース間の一致を「裏付けあり」とみなすか、矛盾をどう扱うか、信頼度がどのように飽和するかを確認できます。
MIT.
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。