mcpField
C
chinese-history-mcp

chinese-history-mcp

ローカル
github.com/lizhuojunx86科学・教育312 週間前に更新

chinese-history-mcp について

chinese-history-mcpは、先秦から魏晋までの古典中国語文献9種を検索する読み取り専用のMCPサーバーです。歴史調査や資料検索向けに、出典の引用と明示的なレビュー状態を結果に付与します。

主な機能

  1. 01複数文献を横断した事件検索
  2. 02出典付きの人物情報と関係の取得
  3. 03現代の地名による物語検索
  4. 04管理語彙による品質検索
  5. 05書名・章・段落の引用を提示

活用シーン

  1. 01複数の歴史文献における事件の追跡
  2. 02人物の記述や評価を出典付きで確認
  3. 03現代の場所に関連する歴史物語の検索

MCP 対応

イベント検索、人物検索、場所検索、品質検索の4つのJSON出力ツールをMCPクライアントに提供します。結果には出典の引用とレビュー状態のメタデータが含まれます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"lizhuojunx86-chinese-history": {
"command": "uvx",
"args": [
"chinese-history-mcp"
]
}
}
}
起動コマンドuvx chinese-history-mcp

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypichinese-history-mcp0.3.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

chinese-history-mcp

CI PyPI License: MIT Data: CC BY 4.0 Python 3.9+ Dependencies: zero MCP Release

追跡可能な中国史 MCP サーバーです。9 つの古典中国語テキスト(先秦から魏晋まで――史记/汉书/后汉书/三国志/左传/论语/孟子/吕氏春秋/资治通鉴)を対象とした、Model Context Protocol の 4 つのツールを提供します。すべての結果に【書籍 → 章 → 段落】の出典が付与されます。また、review_status を誠実に報告し、実施していない項目ごとの人手レビューを行ったとは決して主張しません。

イベント/人物/現代の地名/品質という4つの軸で、先秦から漢魏にかけての正史・子書9冊を検索できる、出典を追跡可能な中国史物語 MCP サーバーです。返されるすべての項目に原文の出典が付き、機械生成/機械レビュー済みの内容はその旨を正直に表示します。

デモ — すべての結果に出典が付いています

  • 実行時依存関係ゼロ — Python 標準ライブラリのみを使用します。フレームワークを pip install する必要も、MCP SDK も不要です。サーバー全体を少数のファイルで監査できます。
  • 読み取り専用 — コーパスを mode=ro と PRAGMA query_only で開き、書き込みは一切行いません。
  • 設計上、誠実 — 機械生成された句読点/翻訳と、機械判定されたステータスをすべての応答に明記します(AIGC 準拠)。

このプロジェクトの背景:2026年半ばの時点で、公開 MCP エコシステムには古典中国語/中国史を扱うサーバーがありません。このプロジェクトはその不足を補います。収益は一切見込んでいません。公共の利益に役立つものを作ることが目標です。

目次:4つのツール · インストールと実行 · コーパスデータベース · 誠実さ · データと出典 · 設計上の補足


4つのツール

ツール入力戻り値
search_eventskeyword / book / person / kind / limit書籍をまたいで統合した歴史イベントと、出典ごとの来歴(書籍 · 章 · 段落 + 役割:主要/詳細/簡潔/注釈/裏付け)。canonical_summary は LLM が統合した機械生成の物語です。任意の kind フィルター(事件/場面/評価。未指定の場合は、評価を含むすべてが対象)。time_label はレビュー済みの時間アンカーから導出される場合があります。どの方法によるかは time_label_source に示されます(手動か導出か。0.2 より前のデータでは省略)。
get_personname(名前または別名)人物プロフィール(LLM が合成した draft)+ 他者による人物評(原文の引用、そのすべてに出典を付与)+ 帰属する品質 + その人物に言及するイベント + 人物間の関係(26種類に限定した語彙――親族/君臣/師弟/同盟/敵対。機械レビュー済みで、approved/auto_approved のみを公開。時間的な範囲なし。0.2 より前のデータでは空)。
query_by_placeplace(現在の地名) / limit現代の場所にあたる土地を舞台とする古代の物語と、その出典。同名異地の場合は、利用者が判別できるよう候補を返します。黙って候補を選ぶことはありません。方角/地域を表す一般的な名称は除外されます。
query_by_qualityquality(55語の管理語彙から指定。例:忠=忠義、谋略=策略) / limit / include_draftある品質を代表するイベント、人物、物語。それぞれに原文の evidence_quote と根拠が含まれます。

各ツールの呼び出しは JSON を返します。複数の出典を持つイベント、人物評、場所/品質の関連には、すべて出典となった【書籍 → 章 → 段落】が正確に記載されます。それがこのサーバーの目的です。


インストールと実行

Python 3.9 以降が必要です(標準ライブラリのみで、ほかにインストールするものはありません)。 サーバーは stdio 経由で MCP と通信します(改行区切りの JSON-RPC 2.0)。

pip install chinese-history-mcp
# then (after downloading corpus.db from Releases — see below):
chinese-history-mcp --db /path/to/corpus.db

または、チェックアウトから直接、インストールせずに実行します。

PYTHONPATH=src python3 -m storyextractor.mcp.server --db /path/to/corpus.db
MCP クライアントでの設定

Claude Desktop(claude_desktop_config.json)、Cline、Continue などでは、stdio サーバーを 1 つ追加します。pip install chinese-history-mcp の実行後:

{
  "mcpServers": {
    "chinese-history": {
      "command": "chinese-history-mcp",
      "args": ["--db", "/path/to/corpus.db"]
    }
  }
}
別の方法:チェックアウトから実行(インストール不要)、または uvx を使用
{
  "mcpServers": {
    "chinese-history": {
      "command": "python3",
      "args": ["-m", "storyextractor.mcp.server", "--db", "/path/to/corpus.db"],
      "env": { "PYTHONPATH": "src" },
      "cwd": "/absolute/path/to/chinese-history-mcp"
    }
  }
}

または、uv を使ってインストールせずに実行します: uvx chinese-history-mcp --db /path/to/corpus.db。

ハンドシェイクを手動で試す
printf '%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{}}}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
  '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"query_by_quality","arguments":{"quality":"忠","limit":2}}}' \
  | chinese-history-mcp --db /path/to/corpus.db
デモとハルシネーションの比較

python3 scripts/mcp_demo.py --db /path/to/corpus.db を実行すると、4 つすべてのツールを順に試せます(最小限の MCP クライアントの参考例も兼ねています)。同じ質問に対する 素の LLM(捏造/出典を引用できない)と、このサーバー(出典を引用できる) の比較については、docs/MCP_DEMO.md を参照してください。


コーパスデータベース

corpus.db はこのリポジトリには含まれていません(約 90 MB のバイナリファイルです)。このリポジトリの リリース からダウンロードし、--db で指定するか、STORYEXTRACTOR_DB=/path/to/corpus.db を設定してください。

データベースは実行時に読み取り専用です。読み取り専用の媒体でホストする場合は、リリース成果物が sqlite3 corpus.db "VACUUM INTO 'corpus_release.db'" によって生成されていることを確認してください(単一ファイルで、-wal/-shm のサイドカーファイルはありません)。


誠実さについて(お読みください)

このサーバーは、機械生成の出力を学術的成果として取り繕うのではなく、出典を明示することを目的としています。**下流のクライアントや LLM は、結果を「個別に人間が確認済み」として提示してはなりません。**各レスポンスには、その内容が明示されます。

  • 出来事 review_status='approved' — 信頼できる推論の大部分は一括で機械承認されており、項目ごとに人間が確認したものではありません。
  • 人物プロフィール review_status='draft' — LLM が合成したもので、人間による検証はされていません。
  • 品質マッピング — auto_approved は複数の LLM による機械的な合意、draft はレビュー待ちです。evidence_quote は原文に実在する部分文字列で、rationale は LLM による推論です。
  • 地名マッピング — 大部分は複数の LLM による機械的な合意(auto_approved)で、一部は人間が承認しています。信頼度は「高」「中」「疑わしい」に分類されています。
  • テキスト — 原文はパブリックドメインの白文で、句読点と分かち書きは機械生成です。口語訳は全体が機械生成です。

また、このサーバーは下流でのハルシネーションをなくすものではありません。出典を引用できる検索事実を提供しますが、その上に構築された LLM が、それらをもとに虚構を生成する可能性は残ります。引用は、人間が検証するための手がかりです。

対象範囲は上記の 9 作品です。「見つからない」とは「このコーパスに含まれていない」という意味であり、「起きなかった」という意味ではありません。


データと出典

  • 原文:パブリックドメインの古典中国語の白文(パブリックドメイン版に基づく句読点のない本文)に、独自に作成した機械生成の句読点と分かち書きを施したものです(現代の注釈版や校訂版からの転載ではありません)。
  • 口語訳:コーパス全体を通して機械生成されています。
  • 注釈(出来事/エンティティ/場所/品質):機械支援で作成され、一部の層では人間によるレビューを承認の条件としています。ステータスはレコードごとに表示されます。
ライセンス
  • コード(このリポジトリ):MIT — LICENSE を参照してください。
  • コーパスデータ(corpus.db、リリース経由で配布):CC BY 4.0。

テキスト層はパブリックドメインの本文に独自の句読点と分かち書きを施したものなので、自由に配布されます。機械生成された属性には、AIGC のコンプライアンス対応として全体を通してラベルが付けられています。


設計上の注意点

  • 標準ライブラリのみを使って手書きで実装した stdio JSON-RPC 2.0(initialize/tools/list/ tools/call と ping/通知)。サードパーティ製の MCP SDK は使用しません。
  • DB へのアクセスは読み取り専用です(src/storyextractor/mcp/db.py):mode=ro と PRAGMA query_only を使用します。マイグレーションを実行する db.connect は、サーブ時には決して使用しません。
  • テスト:python3 tests/test_mcp_server.py(読み取り専用の強制、プロトコルの形式とエラーコード、 正確な review_status、エイリアスのトークン完全一致と曖昧性の解消、LIKE ワイルドカードのエスケープ) — 一時的なフィクスチャ DB を構築するため、 corpus.db がなくても実行できます。

コントリビューションとプロジェクト情報

  • CONTRIBUTING.md — テスト/lint の実行方法と、このプロジェクトが重視する原則。
  • CHANGELOG.md — リリース履歴。
  • SECURITY.md — 脅威の対象範囲(読み取り専用、ネットワークアクセスなし)と、問題の報告方法。

Issue とプルリクエストを歓迎します。次の制約を念頭に置いてください: 実行時依存関係ゼロ、読み取り専用、すべての結果に出典を付けること、正確な review_status。

コメント

MCP は初めてですか?

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

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