mcpField
C
citeguard

citeguard

リモート
github.com/FranksterinoAI・エージェント012 週間前に更新
リポジトリ

citeguard について

citeguardは、AI生成文書や主張とURLの組み合わせについて、引用元が主張を裏付けているかを検証します。取得した情報に基づく判定と証拠の引用を返し、真偽そのものではなく引用の確認を支援します。

主な機能

  1. 01主張ごとの引用判定
  2. 02引用元の取得と状態確認
  3. 03記事本文とPDFの抽出
  4. 04原文の証拠引用と確信度
  5. 05文書の引用整合性スコア

活用シーン

  1. 01AI生成レポートの引用監査
  2. 02指定URLと主張の照合
  3. 03文書内のリンク切れ確認

MCP 対応

MCP サーバーは、MCP クライアント向けに `verify_claims`、`check_document`、`check_links` を提供します。`check_links` はLLMキーなしでリンクの状態を確認できます。

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://citeguard.boundy.workers.dev/mcp
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
npmciteguard0.1.2

ツール

3
パラメーター型必須説明
claimsarrayはい

詳細

CiteGuard

AI が生成したテキストの主張ごとの引用検証です。 CiteGuard は引用されたソースをすべて取得し、実際にその主張を裏付けているかを、根拠となる引用箇所とともに示します。そのため、判定を数秒で自分で確認できます。

vibe citingの時代に向けて作られました。AI が作成したレポートには、実在する URL に解決されるものの、本文で述べられている内容を実際には書いていない引用があふれています。

できること

CiteGuard にドキュメント(Markdown またはプレーンテキスト)か、明示的な主張と URL の組み合わせを渡します。各主張について、次の処理を行います。

  1. 引用されたソースを取得 — タイムアウト処理、リダイレクトの追跡、5 MB の上限を備え、リンク切れの場合は archive.org に自動的にフォールバックします。
  2. ソースの有効性を確認 — リンク切れの URL、DOI のリダイレクト、「ソフト 404」(ホームページに転送されるリダイレクト)を明示的に指摘します。
  3. 実際のコンテンツを抽出 — Readability を使って定型文を除いた記事本文を抽出します。PDF にも対応しています。
  4. 含意関係を判定 — LLM は取得したソーステキストのみを読み(自身の世界知識は使用しません)、6 種類の判定のいずれかを返します。
判定意味
supportedソースに主張が明確に記載されているか、直接含意されています
partially_supported主張の一部は含まれていますが、重要な要素が異なるか、欠けています
contradictedソースには反対の内容が記載されています
unsupportedソースは実在しますが、主張は含まれていません
uncertainソースのテキストが断片的または曖昧すぎて判断できません
could_not_fetchソースに到達できず、アーカイブのスナップショットもありません — 推測はしません

すべての判定には、原文どおりの根拠となる引用、信頼度スコア、ソースの完全なステータスが付属します。ドキュメントの監査では、**引用の整合性スコア(0〜100)**も返されます。

CiteGuard は決して過剰な主張をしません。ソースを取得できない場合は、根拠なく判定するのではなく、その旨を伝えます。また、判断が難しいケースは uncertain となります。目的は人間による検証を 10 倍速くすることであり、検証を置き換えることではありません。

クイックスタート(MCP)

Claude Code/Claude Desktop/任意の MCP クライアントに追加します。

{
  "mcpServers": {
    "citeguard": {
      "command": "npx",
      "args": ["-y", "citeguard-mcp"],
      "env": {
        "CITEGUARD_JUDGE_PRESET": "qwen",
        "CITEGUARD_JUDGE_KEY": "sk-..."
      }
    }
  }
}

公開されるツール:verify_claims、check_document、check_links(有効性のみを確認するため、LLM キーは不要です)。

クイックスタート(CLI)

npm install -g citeguard

citeguard extract report.md   # show extracted claim/source pairs (no network)
citeguard links report.md     # dead-link check (no LLM needed)
citeguard check report.md     # full audit (needs judge configured)

判定設定

CiteGuard はモデルに依存しません。OpenAI 互換のチャットエンドポイントを備えたものなら何でも動作します。

# Preset providers
export CITEGUARD_JUDGE_PRESET=qwen        # or: openai, anthropic
export CITEGUARD_JUDGE_KEY=sk-...

# Or any OpenAI-compatible endpoint
export CITEGUARD_JUDGE_URL=https://your-endpoint/v1
export CITEGUARD_JUDGE_MODEL=your-model
export CITEGUARD_JUDGE_KEY=sk-...

ホステッド API

Cloudflare Workers 上で、無料のホステッドエンドポイント(IP あたり 1 日 50 リクエスト)を提供しています。

curl -X POST https://citeguard.YOUR-SUBDOMAIN.workers.dev/api/verify \
  -H "content-type: application/json" \
  -d '{"claims":[{"text":"The Eiffel Tower is 330 m tall.","source":"https://en.wikipedia.org/wiki/Eiffel_Tower"}]}'

リモート MCP エンドポイント:POST /mcp(ストリーミング可能な HTTP、ステートレス)。

CiteGuard が対象としないもの

  • AI テキスト検出ツールではありません。 誰がテキストを書いたかは問いません。引用されたソースが主張を裏付けているかを確認します。
  • 真実を判定するものではありません。 supported 判定が意味するのは引用されたソースにこのように書かれているということであり、これが真実であるということではありません。質の低いソースからは、質の低い裏付けしか得られません。
  • 検索エンジンではありません。 手元にある引用を検証します。より良い引用は(まだ)探しません。

抽出形式

Markdown のインラインリンク、参照形式のリンク、脚注、単独の DOI(doi.org 経由で解決)、単独の URL に対応しています。APA 形式の解析と、入力ドキュメントとしての PDF 対応は今後のロードマップに含まれています。

開発

git clone https://github.com/Franksterino/citeguard
cd citeguard
npm install
npm run typecheck
npx tsx src/cli.ts extract test/fixtures/sample.md

ライセンス

MIT

コメント

MCP は初めてですか?

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

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