Bibelstudium MCP について
Bibelstudium MCP は、検証可能な聖書本文と原語の詳細を必要とする読者・研究者向けの、ドイツ語聖書研究サーバーです。複数のドイツ語訳に形態情報、コンコーダンス、相互参照、検索、版比較を組み合わせ、ローカルデータベースは初期設定後にオフラインで動作します。
主な機能
- 01複数版のドイツ語本文検索
- 02形態情報付きのヘブライ語・ギリシャ語本文
- 03コンコーダンスと言語研究
- 04相互参照と並行箇所
- 05全文検索
- 06ギリシャ語版の比較
活用シーン
- 01聖句の正確な表現の確認
- 02単語の形態と出現箇所の調査
- 03ギリシャ語新約聖書の版の比較
- 04箇所に関連する参照先の検索
MCP 対応
MCP クライアントに聖書本文、原語、コンコーダンス、相互参照、検索、版比較のツールを提供します。ガイド付き MCP プロンプトを 3 種類備え、ローカル版は初期設定後、SQLite データベースをオフラインで利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.bibelstudium-mcp.de/mcpclaude mcp add --transport http de-bibelstudium-mcp-bibelstudium https://mcp.bibelstudium-mcp.de/mcp{"mcpServers":{"de-bibelstudium-mcp-bibelstudium":{"type":"http","url":"https://mcp.bibelstudium-mcp.de/mcp"}}}Cursor で開く{"servers":{"de-bibelstudium-mcp-bibelstudium":{"type":"http","url":"https://mcp.bibelstudium-mcp.de/mcp"}}}VS Code で開く{"mcpServers":{"de-bibelstudium-mcp-bibelstudium":{"type":"http","url":"https://mcp.bibelstudium-mcp.de/mcp"}}}{"mcpServers":{"de-bibelstudium-mcp-bibelstudium":{"serverUrl":"https://mcp.bibelstudium-mcp.de/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
7| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| book | string | はい | ドイツ語の書名(例:"Jesaja"、"1. Mose"、"Römer"、"Ps"、"Mt") |
| verses | string | いいえ | 節:単一の節は "4"、範囲は "16-17"、リストは "1,3,5"、組み合わせは "1-3,7"。章全体の場合は省略してください。版によっては1回の呼び出しで引用できる節数に上限があります。その場合、応答の `hinweis` と `gekuerzt` にその旨が示され、`reference` に収録内容が記載されます。 |
| chapter | number | はい | 章番号 |
| translation | string | いいえ | 翻訳:"LUT"(Luther 1912)、"SCH"(Schlachter 1951)、"ELB"(Elberfelder 1871)、"MB"(Menge 1939)、"SLT"(Schlachter 2000)。デフォルト:"SLT"(Schlachter 2000)。"luther"、"schlachter" などの別名も使用できます。このインスタンスで実際に読み込まれた版のみ指定できます。bible_server_info に一覧があります。 |
詳細
Bibelstudium MCP
ドイツ語で逐語的な聖書研究を行うための MCP サーバーです。4つの版の原文を単語ごとに、完全な形態論情報とともに提供します。さらに、コンコーダンス、相互参照、全文検索、本文批評に基づく版の比較も利用できます。4つの自由なライセンスの翻訳を含む単一の SQLite ファイルでローカルに実行でき、完全にオフラインで利用できます。ホスト型サービスでは、これに加えて Schlachter 2000 も利用できます。
言語について:このドキュメントは、サーバーがドイツ語圏を対象としているため、 全編ドイツ語で書かれています。ツール名とフィールド名は API の一部であり、 説明文ではないため、コードと同様に英語またはドイツ語のままにしています (設計上の決定を参照)。
開発の背景
言語モデルは記憶を頼りに聖書を引用します。複数の翻訳を混ぜたり、意訳したり、ときには節全体を捏造したりすることもあります。文言が重要な場面で、これはあってはなりません。また、質問が原文に関わる場合(「そこは単数形ですか、複数形ですか?」「この節を含む写本はどれですか?」)、データのないモデルには推測しかできません。
このサーバーは、代わりにモデルへデータを提供します。具体的には、正確なドイツ語の聖書本文、形態論情報を特定したギリシャ語またはヘブライ語の原文、そして8つの版における個々の単語の証言です。これにより、あらゆる記述をローカルデータベースで検証できます。
機能
- ドイツ語聖書本文の正確なテキスト(
bible_lookup):Luther 1912、Schlachter 1951、Elberfelder 1871、Menge 1939をすべてのインストールで利用できます。ホスト型サービスでは、さらにSchlachter 2000も利用できます。 - 原文の逐語解析(
bible_original):聖書全巻に対応しています。ヘブライ語はWestminster Leningrad Codex(旧約聖書)、ギリシャ語はByzantine Majority Text/SBLGNT/Textus Receptus(新約聖書)です。各単語について、見出し語、Strong番号、3つのネイティブスキーマ(Robinson、MorphGNT、OSHB)に基づいて完全にデコードされた形態論情報を提供します。 - コンコーダンスと語句研究(
bible_concordance):Strong番号または見出し語を指定して、原文の単語が出現する箇所をすべて検索できます。書ごとの分布、屈折形、語彙データ(Tyndaleの語釈、Strongの定義、ギリシャ語の完全なAbbott-Smith項目)も表示します。 - 相互参照と並行箇所(
bible_crossrefs):コミュニティの評価に基づいて重み付けされたTreasury of Scripture Knowledge(OpenBible.info拡張版)を、ドイツ語の参照先本文とともに表示します。複数節にわたる参照先は、さらに節ごとに分解して表示します。 - 全文検索(
bible_search):ウムラウトを正規化するFTS5を使用し、フレーズ検索と接頭辞検索に対応しています。翻訳と書で絞り込めます。trefferは該当する節数、vorkommen_gesamtは単語の出現数を示し、verteilungは書ごと、または章ごとの内訳を表示します。本文中の該当箇所は⟦…⟧で示されます。 - 版の比較(
bible_compare):新約聖書の節を対象に、3つの完全なギリシャ語版の単語単位の差分を示します。さらに、8つの版における各単語の証拠も表示します(一覧は版とデフォルト設定を参照)。Comma Johanneumのような異読について、完全な証拠一覧、各版および各異読の単語数とともに表示します。 - ガイド付きワークフロー:3つのMCPプロンプト(
word-study、variant-check、translation-compare)が、ツールを連携させて一連の学習ワークフローを実行します。 - 出典情報を組み込み済み:ダウンロードごとに、ソースURL、リクエスト数、SHA-256チェックサムをデータベースに記録します。
bun run pruefe:quellenを実行すると、リポジトリ内のquellen-pruefsummen.jsonに記録された期待値と照合します。 - すべての回答に出典の帰属表示:
quellenフィールドには、回答で実際に使用したソースのみについて、著作物、ライセンス、ライセンスで要求される帰属表示が記載されます。出力に帰属表示が必要な場合、同じ回答のhinweisで、その文面を転載するすべての文書にも帰属表示を含める必要があることを伝えます。
並行箇所は、重み付けされた参照とは異なる問いに答えるため、別途説明する必要があります。UBS Parallel Passage Databaseに節が登録されている場合、bible_crossrefsはその並行グループ、つまり並行箇所のまとまり(共観福音書のペリコーペ、列王記と歴代誌の重複記事、新約聖書における旧約聖書の引用、定型的な繰り返し)も示します。マルコ2:12では、最も評価の高い10件の参照にルカ5:25-26もヨハネ5:9も含まれませんが、並行グループには両方が含まれます。回答を短縮する場合は、その旨と省略した件数を示します。
既知の制限
重要:データベースは同梱されず、初回起動時に原典から読み込まれます(完成したデータベースは約145 MBです)。これは意図的な仕様です。理由は設計上の決定に記載しています。セットアップにターミナルは不要です。サーバーが自動で構築できます。
- 語彙データ(Strong、Abbott-Smith、グロス)は英語です。同等の深さを持つ、自由にライセンスされたドイツ語の辞書が存在しないためです。
- NT の既定値はビザンチン多数派本文です。これは文書化された編集上の決定であり、研究上の総意を示すものではありません。SBLGNT(批判版)と Textus Receptus は、パラメーターを1つ変更するだけで選択できます。
- 自由にライセンスされたドイツ語訳4種類は古いものです(1871年から1951年)。現代の翻訳は自由にライセンスされていません。例外は、ホスト型サービスを通じて利用できる Schlachter 2000 です。
- 2種類のSchlachter版では、使用するツールにかかわらず、1回の取得で本文を出力するのは最大20節です(
src/translations.tsのVERSE_MAX_GBG)。本文を公開した Genfer Bibelgesellschaft への配慮によるものです。上限に達した場合、応答のgekuerztフィールドとhinweisにその旨が示され、含まれる節はreferenceに記載されます。パブリックドメインの翻訳3種類にはこの制限は適用されません。また、bible://uebersetzungenには各版のverse_maxが記載されています。- 版によって節の数が異なる章があります。1190章のうち140章で節数が異なります(たとえば、列王記第一6章は Elberfelder、Menge、Schlachter 2000 では23節ですが、Luther と Schlachter 1951 では30節です)。そのため、同じ箇所の指定でも、版によって異なる本文を指します。
bible_lookupはhinweisでその旨を示し、版ごとの長さを記載します。節同士の対応表はなく、本文に基づいて照合します。- ツール名とツールの説明は(開発者向けインターフェースのため)英語ですが、出力フィールドはドイツ語です(
bedeutung、bezeugung、verweiseなど)。
このサーバーの用途ではないもの
- **解釈ではありません。**本文、形態論、証言を提供します。節の意味を判断するのは、それを読む人です。サーバーはそのための基礎を提供するだけです。
- **複数ユーザー向けサービスではありません。**単一のユーザーが stdio 経由で利用することを想定して作られています。HTTP トランスポートには TLS もアクセス制御もなく、このため
127.0.0.1にバインドされます。外部からアクセス可能にする場合は、その前段に両方を自分で設定してください(SECURITY.md を参照)。 - **聖書アプリではありません。**ユーザーインターフェースも、読書機能も、メモ機能もありません。このサーバーは MCP クライアント向けのツールボックスです。
- **独自のインストール環境で現代の翻訳を利用することはできません。**自由にライセンスされているものは古い版です。確認済みの選択肢と費用については、docs/UEBERSETZUNGEN.md を参照してください。
前提条件
Claude Desktop では、完成済みのバンドルで十分です(下記を参照)。ランタイムが含まれているため、Bun をインストールする必要はありません。
| 要件 | 対象 | 用途 |
|---|---|---|
| Bun 1.2+ | リポジトリから実行する場合 | TypeScript を直接実行し、SQLite も含まれているため、ビルド工程もコンパイラーも不要です。リポジトリにテキスト形式の bun.lock が含まれているため、1.2 が下限です。また、実測済みです。1.2.0 では 08.08.2026 に全テストが通過しました |
unzip | どちらの方法でも | 相互参照のダウンロードに必要です。macOS にはプリインストールされていますが、最小構成の Linux イメージにはありません(sudo apt install unzip)。ない場合、この手順だけが失敗しますが、残りのデータベースは引き続き作成されます |
| 空き容量 約 1 GB | どちらの方法でも | 完成済みデータベース約 145 MB に加えて、構築時に一時コピーが必要です |
| インターネット接続 | どちらの方法でも | データ構築を一度行うときだけ必要で、その後サーバーは完全にオフラインで動作します |
各プラットフォームでの確認状況:
| プラットフォーム | 状況 |
|---|---|
| Linux (x64) | 動作確認済みです。 型チェック、不完全なデータベースがある場合とない場合の起動動作、および test:http は、プッシュのたびに ubuntu-latest で実行されます(.github/workflows/lint.yml を参照) |
| macOS (arm64) | 動作確認済みです。 開発プラットフォームです。これまでのところ、MCPB バンドルは bun-darwin-arm64 用のみがビルドされ、インストールされています |
| Windows (x64) | 動作するはずですが、未テストです。 src/db-path.ts は APPDATA パスに対応しており、bun run build:mcpb bun-windows-x64 でバンドルを生成できます。試した人はいません |
ゴールデンテスト(bun run test)には構築済みのデータベースが必要なため、
CI では実行されず、手動で実行します。
クイックスタート
git clone https://github.com/fidpa/bibelstudium-mcp.git
cd bibelstudium-mcp
bun install # eine Laufzeit-Abhängigkeit: @modelcontextprotocol/sdk
# Datenbank aufbauen, alle neun Schritte auf einmal:
bun run setup
# ...oder einzeln, streng der Reihe nach, niemals parallel:
bun run download # 4 deutsche Übersetzungen, MUSS zuerst laufen
bun run download:byz # Griechisch: Byzantinischer Mehrheitstext (Edition 'byzantine')
bun run download:sblgnt # Griechisch: SBLGNT + MorphGNT (Edition 'sblgnt')
bun run download:tr # Griechisch: Textus Receptus (Edition 'tr')
bun run download:heb # Hebräisch: Westminster Leningrad Codex (Edition 'wlc')
bun run download:crossrefs # Querverweise (OpenBible.info)
bun run download:parallels # Parallelstellen (UBS Parallel Passage Database)
bun run download:tagnt # Bezeugung über acht Editionen (STEPBible TAGNT)
bun run download:lexicon # Lexika (Strong + STEPBible-Glossen/Abbott-Smith)
なぜ逐次実行するのでしょうか? 各スクリプトは現在のデータベースのコピーを使って作業し、最後にそれをアトミックに置き換えます。2 つを同時に実行すると、最後に置き換えた方が残ります。もう一方のデータは失われます。
MCP クライアントにサーバーを登録します。たとえば、Claude Code の .mcp.json の場合:
{
"mcpServers": {
"bibelstudium": {
"command": "bun",
"args": ["run", "/pfad/zu/bibelstudium-mcp/src/server.ts"]
}
}
}
データベースの場所は db-path.ts が決定します。BIBLE_DB_PATH が優先され、そうでなければリポジトリの隣にある data/bible.db が使用されます。インストール済みバンドルの場合は、ユーザーフォルダーが使用されます(macOS では ~/Library/Application Support/bibelstudium-mcp/)。いずれの場合も、クライアントの作業ディレクトリは関係ありません。
ホステッドサービス:インストール不要
一般公開されている稼働中のインスタンスがあります。Bun もダウンロードもデータベースも必要ありません:
https://mcp.bibelstudium-mcp.de/mcp
トランスポートは Streamable HTTP です。URL で独自の MCP サーバーを登録できるクライアント(claude.ai の Connectors など)では、このアドレスだけで十分です。公式の MCP Registry には、サービスが de.bibelstudium-mcp/bibelstudium として登録されています。
独自にインストールする場合との違いは 3 つあります:
- デフォルトは Schlachter 2000 です。 独自に構築したデータベースには含まれていません。自由にライセンスされた 4 つの訳も、そちらには含まれており、
translationパラメーターで指定できます。 - 意図的に認証なしとしています: クライアントがサーバーをコネクターとして登録できるようにするには、これが唯一の方法です。その前段にはトンネルとレート制限があり、サービスは
127.0.0.1にバインドされています。詳細は SECURITY.md を参照してください。配信するのは聖書本文のみです。 - 可用性は保証されません。 サービスを頼りにする必要がある場合は、サーバーを自分で運用してください。そのために構築されています。
Claude Desktop:設定ファイルの代わりにバンドルを使用
Claude Desktop では、claude_desktop_config.json を手動で編集する代わりに、サーバーを MCPB バンドルとしてインストールできます。
bun run build:mcpb # erzeugt tmp/bibelstudium-mcp-<version>-<plattform>.mcpb
設定 > Extensions > Advanced settings > Extension Developer > Install Extension からインストールします。
インストールダイアログでは、既存の bible.db を指定するよう求められます。このフィールドは空欄のままにしておけます。その場合、サーバーがデータを自動でダウンロードします。最初に聖書について質問すると、データがないことを知らせ、ダウンロードするかどうかを尋ねます。確認すると、オリジナルのソースから約 145 MB をダウンロードして、ユーザーフォルダーに保存します。その後、Claude Desktop を一度再起動する必要があります。実行中のサーバープロセスは、新しいファイルを認識できないためです。
つまり、セットアップにターミナルも、Bun も、スクリプトも必要ありません。データベースをすでに作成済みの場合は、代わりにダイアログで指定すれば、ダウンロードを省略できます。
所要時間について:直近の計測では、全体の構築は 26 秒で完了しました。当時は 8 つのステップで、並行箇所にはまだ対応していませんでした。所要時間は 9 つの外部ソースへの接続状況によって変わるため、保証するものではありません。
9 つのソースのいずれかが利用できなくても、残りの処理は続行されます。その場合、レポートには失敗したステップ、そのために利用できない機能、実行すればその処理をやり直せるコマンドが記載されます。必須なのはドイツ語訳だけで、それがなければデータベースは作成されません。
JSON を使う方法と比べた利点は 2 つあります。バンドルには単体で動作するバイナリが含まれるため、マシンに Bun をインストールする必要がありません。また、Claude Desktop が終了時に設定ファイルを書き戻し、未知のキーを破棄してしまう影響も受けません。
バンドルに含まれるバイナリは 1 つだけなので、ビルド対象のプラットフォームとアーキテクチャでのみ動作します。別の対象向けには、bun run build:mcpb bun-windows-x64 を実行してください(未知の入力が指定された場合、スクリプトが対応している対象を表示します)。パッケージ化には npx @anthropic-ai/mcpb を使うため、Node が一度必要です。
推奨: Claude Desktop で、 docs/anweisungen/claude-desktop.txt のテキストも 設定 > Claude への指示 に追加してください。ツールを呼び出すかどうか、またその結果をどう返すかはクライアントが決定します。サーバーにできるのは、ツールを提供することだけだからです。このテキストの効果については、 docs/anweisungen/README.md をご覧ください。
運用
子プロセスを起動できないクライアントを使う場合は、HTTP トランスポートを有効にします。
MCP_HTTP_PORT=8931 bun run src/server.ts # /mcp und /health, gebunden an 127.0.0.1
127.0.0.1 にバインドするのは意図的です。外部からアクセスする場合は、その前に TLS とアクセス制御を配置してください。サーバーにはどちらも備わっていません。
運用は、すべて任意の8つの環境変数で制御できます。
| 変数 | 効果 | 未指定の場合 |
|---|---|---|
BIBLE_DB_PATH | データベースの保存場所 | リポジトリの隣の data/。インストール済みバンドルの場合はユーザーフォルダー |
BIBLE_DEFAULT_TRANSLATION | translation を指定せずに取得した場合に返す訳。値が不明、または訳が読み込まれていない場合はルター訳のままとなり、サーバーはその旨を stderr に記録します | LUT(ルター訳 1912) |
MCP_HTTP_PORT | 設定すると HTTP トランスポートを有効にします | stdio |
MCP_HTTP_HOST | HTTP トランスポートがバインドするアドレス | 127.0.0.1 |
MCP_HTTP_ALLOWED_ORIGINS | HTTP トランスポートで追加許可する Origin 値のカンマ区切りリスト。claude.ai のようなブラウザクライアントが 403 になる場合に必要です(docs/FEHLERBEHEBUNG.md を参照) | 空。組み込みのルールのみ適用 |
MCP_HTTP_ALLOWED_HOSTS | 許可する Host 値のカンマ区切りリスト。クライアントが送信する形式でポートも含めます(127.0.0.1:8931)。設定すると、異なる Host を持つすべてのリクエストに 421 を返します。これにより GET /health も含め、DNS リバインディングを防ぎます。トンネルまたはプロキシの背後では、公開ホスト名とローカルアドレスを含めてください(docs/FEHLERBEHEBUNG.md を参照) | 空。照合なし |
MCP_METRICS_PORT | 設定すると、Prometheus 用の /metrics を備えた2つ目のポートを開きます | メトリクスポートなし |
MCP_METRICS_HOST | メトリクスポートがバインドするアドレス | 127.0.0.1 |
メトリクスポートを独立したポートにしているのは意図的です。/mcp の隣にパスとして設けているわけではありません。 トンネルやリバースプロキシがホスト名全体を MCP ポートに転送する場合、/metrics が外部からアクセス可能になってしまいます。また、プロキシは 127.0.0.1 から接続するため、オリジン検証も役に立ちません。
記録するのは、ツール、プロンプト、リソース種別ごとの呼び出し回数のみで、いずれも集計値です。引数、聖書の箇所、検索語、リソース URI、接続元アドレスは記録しません。これに加えて、プロセス自体に関する2つの情報、起動時刻とバージョンを表示します。これらは、カウンターがいつから動作しているか、どのバージョンで値が記録されたかを示します。ポートをバインドできない場合、サーバーはその旨を stderr に出力して動作を続けます。
HTTP モードでは bible_setup を利用できません。 外部ソースから 145 MB をダウンロードしてデータベースを置き換える処理であり、任意の呼び出し元ではなく、運用者が行うべきものです。/health は呼び出しのたびにデータベースを確認し、データベースがなくなっている場合は理由を添えて 503 を返します。それ以外のエンドポイントの動作(許可されるメソッド、Origin 検証、プロトコルのバージョン)については、docs/ENTSCHEIDUNGEN.md を参照してください。
データベースは、サーバー上で bun run setup を実行して構築します。Bun がない場合は、バイナリ自体が構築します。
./bibelstudium-server --setup # dieselben neun Schritte, danach beendet sich der Prozess
使用方法
ツールを自分で呼び出す必要はありません。アシスタントに質問すれば、アシスタントがデータを取得します。
「ヨハネによる福音書 1章1節には、ギリシャ語で何と書かれていますか?」 「ヨハネの手紙一 5章7節のコンマ・ヨハンネウムは本物ですか?」 「新約聖書のどこに ἀγάπη が出てきますか?」 「ヨハネによる福音書 3章16節を、すべての翻訳で見せてください。」 「ローマの信徒への手紙 8章1節には、どのような相互参照がありますか?」
最初の質問には、各単語について、基本形、解析した形態論、Strong 番号を個別に返します。2つ目の質問には、3つのギリシャ語版を並べて表示し、8つの版のうちそれぞれの単語を記載している版も示します。この追加箇所は Textus Receptus にのみ存在するため、回答では評価ではなく、証拠となる写本の数を示します。
回答の例は、MCP クライアントを使わずにサーバーを試す方法とともに、docs/BEISPIELE.md に掲載されています。
ツール
| ツール | 目的 |
|---|---|
bible_lookup | 参照箇所(書/章/節)を指定して、正確な聖書本文を取得します(翻訳を選択可能)。出力に本文の上限がある場合は、その verse_max まで取得します。回答では参照箇所を2回示します。reference はデータベース上の書名、kurzref は引用に使うドイツ語の略記です |
bible_original | 1節をヘブライ語/ギリシャ語で語ごとに示し、基本形、Strong 番号、デコード済みの形態情報を付けます |
bible_concordance | 原語の単語(Strong/基本形)の全出現箇所を、統計情報と辞書データとともに示します |
bible_crossrefs | ある節への相互参照を、票数に応じて重み付けして示します。さらに、UBS データベースの並行箇所グループと、出力の本文上限が許す範囲でドイツ語の対象本文も示します |
bible_search | 全文検索(単語、「フレーズ」、prefix*)を行います。ウムラウトを同一視し、翻訳/書ごとに検索できます |
bible_compare | 新約聖書の1節について、ギリシャ語の3つの版の語句の差分と、8つの版における証拠を示します |
bible_server_info | このサーバーのバージョン、読み込み済みの聖書データと提供するリソース、各翻訳のライセンス、必要なクレジット表記、verse_max、および正典の範囲を示します。聖書本文は返しません |
bible_setup | 聖書データがまだない場合に読み込みます。stdio 経由でのみ表示され、データベースが存在しない間に限り利用できます。明示的な確認後にのみ読み込みます |
プロンプト
| プロンプト | 表示名 | 引数 | 手順 |
|---|---|---|---|
word-study | 単語研究 | word(必須)、reference | 原語の単語、次にコンコーダンス、次に重要な箇所、最後に意味の範囲 |
variant-check | テキスト異読の確認 | reference(必須) | 版の差分、次に証拠、次に各版の異読、最後に慎重な評価 |
translation-compare | 翻訳の比較 | reference(必須) | 読み込み済みの全翻訳を並べて、原語と照合します |
表示名は title フィールドに設定され、クライアントの選択メニューに表示されます。プロンプトを呼び出すときは、引き続き1列目の識別子を使います。
リソース
モデルがツールとプロンプトを選ぶ一方、リソースはユーザー自身が添付します。固定の4項目でデータの内容を示します。
| URI | 内容 |
|---|---|
bible://buecher | 66巻の番号、名称、章数、旧約/新約の区分 |
bible://uebersetzungen | 読み込み済みの翻訳と、ライセンス、必要なクレジット表記、verse_max |
bible://editionen | 読み込み済みの原語版と、言語、表記上の特徴、ライセンス |
bible://quellen | このインスタンスが実際にデータを保持するすべての情報源 |
聖書本文自体は URI テンプレートから取得します。書名に含まれる特殊文字はパーセントエンコードします(R%C3%B6mer)。略称も使用できます。
| テンプレート | 内容 | 例 |
|---|---|---|
bible://kapitel/{uebersetzung}/{buch}/{kapitel} | 章全体を節ごとに示します。出力に本文の上限がある場合は、その verse_max まで取得します | bible://kapitel/LUT/Psalter/23 |
bible://vers/{uebersetzung}/{buch}/{kapitel}/{verse} | 単独の節、範囲、またはリスト | bible://vers/SCH/Johannes/3/16-17 |
bible://grundtext/{edition}/{buch}/{kapitel}/{vers} | 1節を語ごとに示します | bible://grundtext/wlc/1%20Mose/1/1 |
テキストを返す各リソースには、ツールの回答と同様に quellen が含まれます。データベースが構築されていない場合、どちらのリストも空で、取得は拒否されます。
Claude Code では、リソースは @ を使って添付します(@bibelstudium:bible://quellen)。提供されたリソースが内容なしで届く既知の原因は2つあり、どちらの解決策も docs/FEHLERBEHEBUNG.md に記載されています。
翻訳
| 略号 | 翻訳 | ライセンス | 利用可能な場所 |
|---|---|---|---|
SLT | Schlachter 2000 | Genfer Bibelgesellschaft の許可を得て使用 | ホスト型サービス(既定値) |
LUT | Luther 1912 | パブリックドメイン | すべての環境(組み込みの既定値) |
SCH | Schlachter 1951 | CC BY 4.0(Genfer Bibelgesellschaft / ebible.org) | すべての環境 |
ELB | Elberfelder 1871 | パブリックドメイン | すべての環境 |
MB | Menge 1939 | パブリックドメイン | すべての環境 |
「ライセンス」列は src/translations.ts の license フィールドを示しており、
各応答の quellen にも同じ内容が記載されます。
自由にライセンスされた4つの訳は、bible_setup がそれぞれの原典からダウンロードします。
Schlachter 2000 はダウンロードされません。独自に構築したデータベースには含まれず、
そこで SLT を指定すると「未ロード」というメッセージが表示されます。実行中のインスタンスに
実際に含まれる訳は、bible_server_info で確認できます。
版と既定値
bible_original は聖書全体を対象とし、書ごとに振り分けます。
texttyp | 版 | 範囲 | 役割 |
|---|---|---|---|
wlc | Westminster Leningrad Codex(マソラ本文、OSHB形態論) | 旧約聖書(1〜39巻) | 旧約聖書唯一のソースのため、主要版 |
byzantine | 多数派本文(Robinson-Pierpont 2018) | 新約聖書(40〜66巻) | 新約聖書の既定値 |
sblgnt | SBL Greek New Testament(批判校訂版、Nestle-Alandに近い) | 新約聖書 | 参考、比較用 |
tr | Textus Receptus(Robinson。異読がある箇所ではStephanus 1550) | 新約聖書 | 比較用(TR独自の異読) |
bible_compare はさらに、8つの版のうちどれが各単語を証言しているかを報告します。8つの版はNA28、NA27、Tyndale House、SBL、Westcott-Hort、Tregelles、Textus Receptus、ビザンティン本文です。これらはSTEPBible TAGNTの証言注記に由来し、src/greek-diff.ts の TAGNT_WITNESS_RE にパターンとして定義されています。そのうち4つはこのデータベースに全文が収録されており、残り4つは校異表の証人としてのみ収録されています。
TAGNTの証言注記に記載されるのは、独自の校異表にある証人のみです。また、そこにある「Byz」は、ここで読み込まれる Robinson-Pierpont 2018 と同じものではありません。新約聖書から無作為に抽出した400節以上を調べたところ、注記と版の本文が約11%のケースで一致しませんでした。サーバーは両者を照合し、矛盾を脚注に隠さず、応答の先頭に warnung として提示します。「この版には何と書かれているか」という問いには、版の本文が答えとなります。
アーキテクチャ
Bun上のTypeScriptで、実行時依存関係は1つ(MCP SDK)のみ、ビルド工程はありません。データは読み取り専用で開くSQLiteファイルに保存されています。scripts/ 以下は一度限りのデータ構築時にのみ実行され、サーバー稼働中に実行されることはありません。HTTPトランスポートは専用ファイルにあり、ツールについては把握していません。各ファイルの役割については
CONTRIBUTING.md をご覧ください。
設計上の決定事項
データベースを同梱しないのはなぜですか? 理由は3つあります。STEPBibleは、データファイルを自らのリポジトリからのみ配布するよう求めています。provenanceテーブル(ダウンロードごとのソースURLとSHA-256)を備えたデータベースを自分で構築すれば、ダウンロード済みのデータの塊では決してできない、再検証可能な形で出典を確認できます。bun run pruefe:quellenは各チェックサムをquellen-pruefsummen.jsonと照合し、不足しているものと余分なものの両方を報告します。また、構築スクリプトには個々の語句の出典も記録されています。
以前は、その代わりにターミナルでの作業が必要でした。今ではbible_setupがその作業を担います。
サーバーがデータを要求されるまで構築しないのはなぜですか? 構築時には、9つの外部ソースから約145 MBをダウンロードします。モデルが聖句を尋ねただけで実行するのではなく、ユーザーの同意を得てから実行すべきです。確認がない場合、bible_setupは実行する内容を提示するだけです。
デフォルトをLuther 1912にしているのはなぜですか? 最もよく知られたパブリックドメインのドイツ語訳であり、bun run downloadが例外なく読み込むため、すべてのインストールに含まれます。これが本当の理由です。読み込まれていない版をデフォルトにすると、translationを指定しない検索はすべてエラーになってしまいます。Schlachter 1951(CC BY)、Elberfelder 1871、Menge 1939は、パラメーターを1つ指定するだけで利用でき、translation-compareで並べて比較できます。
エンドポイントごとにコードを変更せず別の版をデフォルトにできます。BIBLE_DEFAULT_TRANSLATIONを設定すると、その略称の版が読み込まれている場合にデフォルトを変更できます。実際に適用されるデフォルトは、bible://uebersetzungenのvoreinstellungフィールドで確認できます。ホスト型サービスでは、Schlachter 2000をデフォルトにしています。
NTのデフォルトをビザンツ多数派本文にしているのはなぜですか? このサーバーは逐語的な作業に使うもので、同梱されているドイツ語訳は多数派本文の伝統に属しています(LutherとSchlachterはTR/ビザンツ系統に従っています)。批判本文のSBLGNTはtexttyp: "sblgnt"で完全に利用でき、bible_compareでは各版が異なる箇所と、それぞれの読みを判断するための証拠を確認できます。
ドイツ語で出力するのに、ツール名が英語なのはなぜですか? MCPのツール名は開発者向けのインターフェース(英語の慣例)です。人が読む内容は、提供される聖書本文がドイツ語なので、ドイツ語になっています。
依存関係が1つだけで、ビルド工程もないのはなぜですか? bun:sqliteはBunに組み込まれており、BunはTypeScriptをそのまま実行できます。実行時の依存関係はMCP-SDKのみです。攻撃対象領域が小さく、コンパイルは不要で、壊れる要素もありません。
ドキュメント
| ドキュメント | 内容 |
|---|---|
| docs/README.md | ドキュメントの索引:各セクションの用途、status: の意味、フロントマターがある場所とない場所 |
| docs/anweisungen/claude-desktop.txt | Claude Desktop の 設定 > Claude への指示 に貼り付ける完成済みテキスト |
| docs/anweisungen/README.md | クライアント向け指示の目的、配置場所、聖書に関する質問がなくても毎回のセッションで読み込まれるため簡潔にする必要がある理由 |
| docs/BEISPIELE.md | 回答例:基本テキスト、本文批評、詩句、および MCP クライアントを使わずにサーバーを試す方法 |
| docs/ENTSCHEIDUNGEN.md | コードがこのような形になっている理由:測定した結果、採用しなかった代替案、クライアントや外部ソースで得た知見 |
| docs/FEHLERBEHEBUNG.md | データ構築時とサーバー起動時に発生するエラーの症状と、それぞれの原因および解決方法 |
| docs/TYPESCRIPT.md | コードスタイルのルール、型チェック、意図的に採用していない規約 |
| docs/UEBERSETZUNGEN.md | 追加の翻訳に関する検討済みの選択肢:ライセンス状況、自由に利用できる候補、追加にかかるコスト |
| mcpb/manifest.json | Claude Desktop 向け MCPB バンドルのマニフェストソース。bun run build:mcpb でビルドします |
| CONTRIBUTING.md | 貢献方法:基本ルール、確認手順、プルリクエストの手順 |
| CHANGELOG.md | 各バージョンでの変更点と、その理由および測定値 |
| THIRD_PARTY_LICENSES.md | すべての聖書データの完全なソースおよびライセンス一覧 |
| SECURITY.md | セキュリティモデルと脆弱性の報告方法 |
データソースとライセンス
このリポジトリが読み込むすべてのデータソースは、パブリックドメインまたは CC-BY(-SA) です。完全な一覧は THIRD_PARTY_LICENSES.md に記載されています。そこには、Schlachter 1951(CC BY 4.0、© Genfer Bibelgesellschaft)に必要な著作権表示と、STEPBible の再配布に関する注意事項も含まれます。Schlachter 2000 は独自の条件に基づいています。このリポジトリには含まれず、Genfer Bibelgesellschaft の許可を得て、ホスト型サービスを通じてのみ提供されます。
貢献
貢献を歓迎します。詳しくは CONTRIBUTING.md をご覧ください。データ品質に関するルールに従ってください。テキストに関するすべての記述は、データベースで検証できる必要があります(プロジェクト内のルールは「主張ではなく根拠を示す」です)。
ライセンス
MIT ライセンスです。詳しくは LICENSE をご覧ください。このライセンスはコードに適用されます。聖書データはローカルにダウンロードされ、それぞれ独自のライセンスが適用されます(上記を参照)。
作者
Marc Allgeier (@fidpa)
開発した理由:聖書を注意深い読者のように扱う AI アシスタントが欲しかったのです。正確に引用し、推測ではなく基本テキストを確認し、写本に異同がある箇所を率直に示すものです。公開されている MCP エコシステムには、優れた辞書を備えた英語のサーバーはありましたが、ドイツ語のものも、複数の基本テキスト版を使えるオフライン対応のものも、本文の異読をその証拠となる写本とともに示せるものもありませんでした。このサーバーは、その空白を埋めます。
関連項目
- lydia-bible-bot:このサーバーのホスト型サービスから聖書テキストを取得する、Telegram グループ向けのセキュリティ強化型 AI 聖書アシスタント
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。