FLOGVIT.bible について
FLOGVIT.bibleは、聖書本文や学習資料の閲覧・検索に使うMCPサーバーです。複数の翻訳、ヘブライ語・ギリシャ語の原文、関連する学習ツールを扱い、出典ページへのリンクも示します。
主な機能
- 01最大5版の聖書本文を取得
- 02語句で聖書の節を検索
- 03ヘブライ語・ギリシャ語の原文を閲覧・検索
- 04相互参照と章の学習資料を確認
- 05人物、テーマ、今日の聖句を検索
活用シーン
- 01複数の聖書版で同じ箇所を比較
- 02節を横断してヘブライ語・ギリシャ語の語を調査
- 03章の人物、テーマ、背景を調べる
MCP 対応
Streamable HTTP経由で、聖句、検索、原文、相互参照、学習資料、人物、テーマ、版の情報をMCPクライアントに提供します。アカウントやキーは不要です。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.bible.flogvit.com/mcpclaude mcp add --transport http flogvit-bible https://mcp.bible.flogvit.com/mcp{"mcpServers":{"flogvit-bible":{"type":"http","url":"https://mcp.bible.flogvit.com/mcp"}}}Cursor で開く{"servers":{"flogvit-bible":{"type":"http","url":"https://mcp.bible.flogvit.com/mcp"}}}VS Code で開く{"mcpServers":{"flogvit-bible":{"type":"http","url":"https://mcp.bible.flogvit.com/mcp"}}}{"mcpServers":{"flogvit-bible":{"serverUrl":"https://mcp.bible.flogvit.com/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
bible.flogvit.com MCP サーバー
AI アシスタントが bible.flogvit.com の聖書を読み、検索できるようにします。対象は、オープンな OSNB、OSNN、OSEN の各翻訳、ヘブライ語とギリシャ語の原典、およびサイトの学習資料です。すべての回答には、出典となったページへのリンクが付きます。
アドレス: https://mcp.bible.flogvit.com/mcp — Streamable HTTP、アカウント不要、キー不要です。
アシスタントを接続する
すべてのクライアントを対象とした、8言語すべての完全なガイドは
bible.flogvit.com/en/mcp にあります。
https://mcp.bible.flogvit.com/ を開くと、ガイドの簡易版が表示されます。どちらも
../src/lib/mcp-info.ts と ../src/lib/dictionaries-mcp.ts の mcp.* キーから生成されており、test/landing.test.ts では、そこに記載されたツール一覧が tools/list と一致することを確認しています。
Claude(デスクトップアプリと claude.ai): Settings → Connectors → Add custom connector を選択します。アドレスを貼り付け、認証欄は空のままにします。
ChatGPT: Settings → Apps & Connectors で開発者モードを有効にし、アドレスを指定して認証なしのコネクターを作成します。
Claude Code:
claude mcp add --transport http flogvit-bible https://mcp.bible.flogvit.com/mcp
Cursor(~/.cursor/mcp.json):
{ "mcpServers": { "flogvit-bible": { "url": "https://mcp.bible.flogvit.com/mcp" } } }
VS Code(.vscode/mcp.json):
{ "servers": { "flogvit-bible": { "type": "http", "url": "https://mcp.bible.flogvit.com/mcp" } } }
あとはいつものように質問してください。「ギリシャ語ではヨハネによる福音書 3:16 は何と書かれていますか?」「聖書ではどこで赦しについて語られていますか?」「タマルとは誰ですか?」などです。アシスタントがツールを自動で選びます。
ツール
| ツール | 回答できる内容 |
|---|---|
get_passage | 1つ以上の箇所を、最大5つの版で並べて表示します。翻訳者の注釈も任意で取得できます |
search_bible | 指定されたすべての単語を含む節を、1つの版から検索します。書または旧約・新約の指定も任意で行えます |
get_original_text | 箇所のヘブライ語またはギリシャ語の原文を、語ごとの説明付きで取得します(ノルウェー語) |
search_original_word | ヘブライ語またはギリシャ語の単語が登場する節をすべて検索します |
get_cross_references | 各節に関連する箇所を取得します |
get_chapter_study | 章の概要、背景、キーワード、人物、テーマ、物語、預言、並行箇所、年表を取得します |
get_book_overview | 書の紹介を取得します |
search_people、get_person | 聖書の人物、その家族、主な出来事を検索・取得します |
search_topics、get_topic | 物語、テーマ、預言、福音書の並行箇所を検索・取得します |
get_daily_verse | 今日の聖句を取得します |
list_editions | 各版とそのライセンスを確認します |
参照は英語式とノルウェー語式のどちらでも指定できます。例:John 3:16-18、
Joh 3,16.18、1 Cor 13:4-7、Gen 1:1-2:3。; で区切って複数指定することもできます。書名は、サイトの8言語すべての表記に加え、ノルウェー語の書名(«Romerbrevet»)にも対応しています。
引用された聖書本文には出典行が付いています。翻訳は CC BY 4.0 で公開されており、アシスタントが本文を掲載する際は、必ず出典表示も添える必要があります。
掲載先と削除方法
server.json は公式 MCP Registry のエントリーです。その version はサーバーの SERVER_VERSION(src/server.ts)と一致している必要があり、レジストリでは同じバージョンを二度登録できません。エントリーを変更する ⇒ 両方のバージョンを上げる、その後に公開します。
cd mcp
mcp-publisher validate # checks against the live registry
mcp-publisher login github --token "$(gh auth token)" # gh must be logged in as flogvit
mcp-publisher publish
curl -s 'https://registry.modelcontextprotocol.io/v0/servers?search=io.github.flogvit/bible'
mcp-publisher は brew install mcp-publisher でインストールできます。名前空間は GitHub(io.github.flogvit/…)であり、DNS(com.flogvit/…)ではありません。flogvit.com の DNS は Domeneshop で手動編集しますが、GitHub へのログインはスクリプトで実行できます。
| 掲載先 | 状況(2026-10-26) | 削除方法 |
|---|---|---|
| MCP Registry | 公開済み、1.0.0 | mcp-publisher status --status deleted --all-versions --message "<why>" io.github.flogvit/bible — 非表示になります。--status active で再表示できます。レジストリはメタデータを削除しません。 |
| Glama | 掲載済み、レジストリから読み込み | レジストリのエントリーとともに削除されます |
| PulseMCP | レジストリを自動で読み込み(独自の申請フォームは閉鎖済み) | レジストリのエントリーとともに削除されます |
| mcp.so | 申請済み:chatmcp/mcpso#6153 | イシューをクローズして、そこで依頼します |
| mcpservers.org | 無料フォームから申請済み(2週間以内に審査) | [email protected] にメールします |
| awesome-remote-mcp-servers | flogvit/awesome-remote-mcp-servers フォークからの PR punkpeye/awesome-remote-mcp-servers#2991 | PR をクローズします。マージ後は、3行を削除する PR を作成します。リモート専用サーバーはこのリストに掲載し、awesome-mcp-servers には掲載しません。CONTRIBUTING にそのように記載されています。 |
| Smithery | 未申請 — flogvit としてのログインが必要 | Smithery の設定からサーバーを削除します |
| cursor.directory | 未申請 — ログインが必要 | そこで削除します |
| Claude のコネクターディレクトリ | 未申請 — Pro/Max/Team アカウントからのみ申請できます。claude.ai/directory/manage → Submit new → MCP connector にアクセスします | 同じポータルで掲載を削除します |
未申請の3件は、ログイン以外に必要なものはありません。住所、説明、Anthropic のフォームで求められるすべての項目(短い説明、説明、ドキュメントとプライバシーに関する URL、サポート窓口、ユースケース、プロンプトの例)は、イシュー #157 に記載されています。
各掲載先で何を申請し、いつ申請したかは、GitHub のイシュー #157 に記録されています。
ガイドページは ../src/routes/pages/mcp.tsx の /mcp です。削除する場合は、ルート、../src/views/layout.tsx のフッターリンク、../src/lib/sitemap-paths.ts と test/pages.ts の /mcp、および llms.txt(../src/routes/seo.ts)の参照を削除し、その後 bibel をデプロイします。
ローカルで実行する
サイトで使われているローカルデータベースが必要です(../.env、DB_PORT=3326)。
cd mcp
bun install
bun run dev # http://localhost:8080/mcp
MCP Inspector(npx @modelcontextprotocol/inspector、トランスポートは Streamable HTTP、URL は http://localhost:8080/mcp)で試すか、手動で実行します。
curl -s -X POST localhost:8080/mcp \
-H 'content-type: application/json' -H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_passage","arguments":{"reference":"John 3:16"}}}'
GET /healthz は、データベースユーザーがすべてのコンテンツテーブルを読み取れることを確認し、John 3:16 を読み込みます。詩編を含む 200、または理由を示す 503 が返されます。権限が不足している場合は、その名前が示されます。
テスト
cd mcp && bun run test && bun run typecheck
test/server.test.ts は、ローカルデータベースに対して HTTP 経由ですべてのツールを呼び出し、各回答のリンクが bible.flogvit.com 上のローカライズされたページ(またはライセンスで指定されたソース)だけを参照し、サイトの [ref:…] マークアップを表示しないことを確認します。test/grants.test.ts は、本番環境でサーバーに付与される権限だけを持つローカル MySQL ユーザーを作成し、そのユーザーとしてすべてのツールを実行します。ユーザーテーブルへのアクセスが拒否されること(権限外のテーブルを必要とするツールはここで失敗します)と、権限を取り消したテーブルを /healthz が示すことも確認します。test/books.test.ts は、サイトに表示されるすべての書名と略称について、すべての言語でそれぞれの書名が正しく見つかることを確認します。
リポジトリのルートで実行する bibel 独自の bun test では、これらのテストは実行されません(bunfig.toml)。このパッケージには独自の依存関係があります。
仕組み
- 独自のパッケージ、独自のイメージです。
@modelcontextprotocol/sdkとその依存関係はここに配置され、サイトのイメージには含まれません。サーバーはサイト独自のsrc/lib/のゲッターを使ってデータベースを読み取るため、イメージはリポジトリのルートからビルドします(docker build -f mcp/Dockerfile .)。ここでの回答は、あちらのページです。 - 独自のデータベースユーザーを使用し、コンテンツへのアクセスは読み取り専用です。
src/grants.tsは、インポートが管理するテーブル(CONTENT_TABLES)に対する SELECT のみを許可し、それ以外は許可しません。そのため、ユーザーのメモ、原稿、共有コンテンツにはアクセスできません。 - ステートレスです。 リクエストごとに MCP サーバーを起動します。どのリクエストも、どのプロセスにも割り当てられる可能性があります。
- 上限は IP ごとではなく、全体に適用されます。 Claude と ChatGPT はそれぞれのサーバーからコネクターを呼び出すため、1 つの IP から複数のユーザーがアクセスします。上限を超えると、サーバーは無期限にキューへ追加するのではなく、
Retry-Afterを付けて 503 を返します。
設定
| 変数 | デフォルト | |
|---|---|---|
PORT | 8080 | |
DB_HOST、DB_PORT、DB_USER、DB_PASSWORD、DB_NAME | サイトと同じ | データベースユーザーには grantStatements() のみを許可してください |
DB_TLS | オフ | 1 を指定すると TLS で接続します。平文での接続が拒否されるデータベースユーザー向けです |
DB_POOL_MAX | 5 | |
MCP_MAX_CONCURRENT | 4 | 同時に処理するリクエスト数 |
bun scripts/grants.ts <database> は、データベースユーザー向けの GRANT ステートメントを出力します。これらは CONTENT_TABLES から生成されますが、実際に適用されるのは誰かが実行した場合のみです。インポート対象に新しいコンテンツテーブルが追加されたら、データベース管理者として再度実行してください。それまでは /healthz は 503 を返し、テーブル名を示します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。