Token导航 LogoToken导航TokenDH.com
Bible MCP logo
搜索检索stdio官方级别未说明来源级核验

Bible MCP

MCP Server

Bible MCP 是一个结构化的圣经搜索引擎和查询工具集合,提供精确的章节查找、关键词搜索、实体元数据查询等功能,适用于LLM或客户端调用。

工具数

8

提示词数

0

GitHub Stars

0

资源数

0
Python搜索文档处理

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

parsifal295

提供方

parsifal295

最后核验

2026/5/17 20:23

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python3 -m venv .venv

详细介绍

圣经mcp

  • 查询圣经章节
  • 搜索正文关键字/语义
  • 查看人物、地点和事件元数据
  • 人物关系查询
  • 查询与实体相关联的代表性语句
  • 返回MCP tool形式的结构化响应

也就是说,Bible MCP不是“直接说出答案的应用程序”。 前面的LLM或客户端可以调用 圣经搜索引擎+结构化查询工具套件 是。

核心Use Case

根据目前的实施标准,核心用例有以下5种:

  1. 准确的章节查询

- 示例: 창1:1, 창 1:1-3, 롬8장, John 3:16 - 合适的工具: lookup_passage, expand_context

  1. 搜索主题/关键字正文

- 示例: 믿음, 창조, 하나님 나라, 태초 - 合适的工具: search_bible

  1. 搜索实体

- 示例: 아브라함, 예루살렘 위치, 출애굽 사건 - 合适的工具: search_entities, route_entity_query

  1. 关系查询

- 示例: 예수의 제자들, 다윗의 아버지, 야곱의 자녀 - 合适的工具: get_entity_relations, route_entity_query

  1. 实体代表语句查询

- 示例: 예루살렘 대표 구절, 출애굽 사건 관련 구절, 아브라함 등장 구절 - 合适的工具: get_entity_passages, route_entity_query

推荐使用方法

建议MCP客户端或LLM应用程序使用以下规则进行调用:

  1. 如果使用者说了正确的圣经参考 lookup_passage

- 如果需要更多的上下文 expand_context - 如果用户请求正文本身: passage_text 建议返回全文,不要进行摘要。 - 即使在回答主题问题时引用圣经句子,引用的句子也最好原封不动地呈现正文全文,而不是一行摘要。 - 更严格地说,无论哪种形式的回答,如果包括圣经句子或引用,每一句都可以安全地先展示全文,然后再添加说明。

  1. 如果用户说出了主题或关键字, search_bible

- 该服务器负责查找正文候选,最终说明由前面的人负责生成

  1. 如果用户提出了以人物/地点/事件为中心的问题, route_entity_query

- 示例: 예수의 제자들, 예루살렘 대표 구절, 요단강 위치

  1. 如果实体查询在韩语中失败,前面的LLM将依次重试英语候选

- 示例: 요단강 -> Jordan -> Jordan River - route_entity_query用原文先呼叫1次, not_found建议仅在时按顺序重新调用相同工具作为英语候选。 - 如果出现成功、模糊或错误之一,请立即停止,并用韩语生成最终答案。

  1. 最终用户响应用韩语生成

- Bible MCP提供结构化的基础数据,前面LLM负责生成韩语说明的形式最自然。 - 但是,在直接章节/正文要求中,最好先原封不动地展示圣经正文全文,而不是韩语摘要。

界限

当前实施的主要限制包括:

  • 不是一般的交互式问答系统。

- 示例: 예수는 왜 십자가에 달렸나 对于同一个解释性问题,您的角色不是立即生成完整答案。

  • 实体关系查询以direct relation为中心。

- 示例: 야곱의 손자, 다윗의 후손 전체 同样的multi-hop查询超出了当前范围。

  • search_entities直接调用时,默认范围为 people是。

- 地点/事件 entity_type=places|events明确表示比较安全。

  • 韩语实体元数据仍然有限。

- 目前使用以英语为中心的元数据,建议在韩语查询失败时重新尝试前面的LLM中的英语。

  • summarize_passage, suggest_related_passages不是直接输入问题的工具。

- 它类似于一种后处理工具,可以将已获取的正文文本进行摘要或查找类似句子。 - 特别是,不能直接用于替代章节查询响应,只在显示正文全文后用户单独要求摘要时使用比较安全。

一目了然

准备好后,通常会出现以下文件。

  • data/source.sqlite

用户准备的圣经原始数据库

  • data/app.sqlite

bible-mcp内部使用的应用程序DB

  • data/chunks.faiss

用于正文搜索的矢量索引

  • data/vendor/theographic/...

下载的圣经元数据快照

准备物

  • python 3.12 异常
  • 终端可用环境
  • 一个包含圣经正文的SQLite文件
  • 互联网连接

- fetch-theographic 在步骤中,从GitHub下载元数据。 - 初 index 如果步骤中的嵌入模型不在本地,则可能会出现其他下载。

快速产品视图摘要

实际粘贴该项目时,通常可以理解为以下内容:

  • lookup_passage:查看准确的章节
  • search_bible:搜索正文
  • route_entity_query:以实体为中心的自然查询入口点
  • get_entity_relations:人际关系查询的低级工具
  • get_entity_passages:实体代表性语句查询的低级工具

建议的入口点大部分是 lookup_passage, search_bible, route_entity_query 三个。 前面的应用程序可以收到此结果并配置韩语答案。

选择结构的原因

该项目不是“将所有东西都放在一个SQLite中的结构”,也不是“必须运行单独的矢量数据库的结构”。 现在 SQLite+FTS5+失败 使用组合。

  • data/source.sqlite

用户拥有的原始圣经DB。

  • data/app.sqlite

包含正文区块、FTS索引目标数据和实体元数据的应用程序DB。

  • data/chunks.faiss

存储正文块嵌入的矢量索引。

选择此配置的原因如下:

  • 简化了本地运行和部署。

- 无需PostgreSQL、Elasticsearch或单独的矢量数据库即可运行。

  • 确保准确的单词搜索和语义搜索。

- 正确的关键词,章节附近的表达是SQLite FTS5抓好了。 - 即使表达不同,意义相似的主题查询也会嵌入+ FAISS进行补充。

  • 易于数据检查和恢复。

- 应用程序DB sqlite3可以直接打开查看,矢量索引 chunks.faiss 通过文件分离,简化了再生。

  • 明确角色分离。

- 原始DB是“圣经正文来源” - 应用程序DB为“搜索/元数据的加工结果” - FAISS是“用于语义搜索的索引”

也就是说,该项目与其说是“以矢量数据库为中心的产品”,不如说是“以矢量数据库为中心的产品”。 混合搜索服务器,在圣经搜索应用程序DB上同时添加FTS和矢量搜索接近。

简单的体系结构图

flowchart LR
    A["source.sqlite
원본 성경 DB"] --> B["bible-mcp index"]
    C["Theographic snapshot
people / places / events / verses"] --> D["bible-mcp sync-theographic"]
    D --> E["app.sqlite
verses / passage_chunks / entity metadata"]
    B --> E
    B --> F["chunks.faiss
passage chunk embeddings"]
    E --> G["bible-mcp serve"]
    F --> G
    G --> H["MCP tools
lookup_passage / search_bible / route_entity_query"]
    H --> I["LLM / MCP client"]

从一行来看,加工原始圣经DB和元数据快照 app.sqlitechunks.faiss创建, serve 在步骤中将两者一起阅读,以提供章节查询、混合正文搜索和实体查询的结构。

搜索方式

此项目中的搜索根据目的的不同而有不同的行为。

简单的搜索流程图

flowchart TD
    A["사용자 질문"] --> B{"질문 유형은?"}
    B -->|"정확한 장절/본문"| C["lookup_passage"]
    C --> D["필요하면 expand_context"]
    B -->|"주제/키워드 본문 검색"| E["search_bible"]
    E --> F["FTS5 + FAISS 하이브리드 결과"]
    B -->|"이미 확보한 본문과 유사 구절"| G["suggest_related_passages"]
    G --> H["FAISS 유사 청크 추천"]
    B -->|"인물/장소/사건 중심 질문"| I["route_entity_query"]
    I --> J["search_entities / get_entity_relations / get_entity_passages"]

实际上,首先要区分“是否是正确的引用”、“是否是主题搜索”、“是否是实体问题”。 发送到相应工具的方式最稳定。

0、准确的章节查询

  • 工具: lookup_passage, expand_context
  • 用途:

- 用户 창 1:1, 롬 8장, John 3:16像这样给出了正确的参照。

  • 特性:

- 比搜索更接近“精确查询”。 - 在这种情况下,返回正文全文优先于摘要。

1.搜索主题/关键词正文

  • 工具: search_bible
  • 用途:

- 믿음, 자녀 교육, 하나님 나라, 태초如所示查找主题或关键字。

  • 动作:

- FTS5 查找关键字搜索候选项。 - 嵌入相同的查询 FAISS 还查找语义搜索候选项。 - 将两个结果合并,生成最终排名。

按照当前实施标准 search_bible不是纯矢量搜索 混合搜索是。 分数现在 keyword 0.6 + semantic 0.4 以方式合计。

所以像下面这样理解就可以了。

  • 查找包含正确单词的正文:

- FTS方面比较强。

  • 即使表达方式不同,也要寻找类似的主题:

- 嵌入式+FAISS方面比较强。

  • 最终结果:

- 混合两种方式,另一方弥补一方的弱点。

2.推荐类似文本

  • 工具: suggest_related_passages
  • 用途:

- 想找与已经找到的正文相似的其他句子时

  • 动作:

- 嵌入输入文本后 FAISS在中查找类似区块。

与其说这个工具是直接提出问题的切入点, 基于已获取的正文扩展类似正文的后处理工具确实是这么看的。

3.人物/地点/事件搜索

  • 工具: search_entities, route_entity_query
  • 用途:

- 아브라함, 예루살렘, 출애굽 사건像这样以图元为中心的查询

  • 动作:

- 基于元数据和alias查找实体,而不是嵌入正文搜索。

4.搜索关系/代表句

  • 工具: get_entity_relations, get_entity_passages, route_entity_query
  • 用途:

- 다윗의 아버지, 예수의 제자들, 예루살렘 대표 구절

  • 动作:

- 使用实体关系表格和实体-语句链接。

更改译本时

如果将原始圣经DB替换为相同结构的其他译本,例如 개역개정한글개역如果换成, bible-mcp index确实要重新运行。

原因如下:

  • verses 表格正文将更改。
  • 从那篇课文 passage_chunks.text将重新创建。
  • 基于区块文本 FTS 索引和 FAISS 必须重新创建向量。

实际上,理解如下即可。

  • 如果只更改了元数据 sync-theographic通常不需要重新进行。
  • 如果改变了本文的翻译 index必须重新做。

注意:

  • 目前的完整性检查主要检查是否与chunk ID匹配映射。
  • 如果在保持相同章节范围的情况下改变本文, chunks.faiss在格式上仍然可以通过。
  • 因此,在替换译本后,您可以使用现有的 app.sqlite, chunks.faiss不要完全信任 bible-mcp index重新运行比较安全。

1.安装

1-1.创建虚拟环境

在项目文件夹中运行以下命令:

python3 -m venv .venv

1-2.打开虚拟环境

macOS/Linux:

source .venv/bin/activate

虚拟环境打开后,通常在终端左侧 (.venv)显示。

1-3.安装项目

pip install -e '.[dev]'

安装完成后 bible-mcp 可以写命令。

2.准备圣经原始SQLite文件

bible-mcp读取用户拥有的SQLite圣经DB。 基本上 verses 找到表格,必须有以下列。

  • book
  • chapter
  • verse
  • text

translation 专栏可有可无。

2-1.首要条件

book 根据目前的标准,专栏必须是英语圣经书的名称。例如:

  • Genesis
  • Exodus
  • Matthew
  • John

相反,如果是这样的值,则当前import可能会失败。

  • 창세기
  • 출애굽기
  • 마태복음

2-2.文件位置示例

例如,将原始DB文件保留如下。

data/source.sqlite

2-3.检查我的SQLite文件结构

可以在终端上查看如下内容。

查看表格列表:

sqlite3 data/source.sqlite ".tables"

verses 查看表格结构:

sqlite3 data/source.sqlite "PRAGMA table_info(verses);"

正常情况下,结果至少应显示以下名称。

  • book
  • chapter
  • verse
  • text

查看示例数据:

sqlite3 data/source.sqlite "SELECT book, chapter, verse, text FROM verses LIMIT 5;"

2-4.表格名称为 verses如果不是

默认值为 verses是。 如果源数据库中的表名称不同 BIBLE_SOURCE_TABLE 必须指定为环境变量。

示例:

export BIBLE_SOURCE_TABLE=my_verses

3.设置环境变量

至少 BIBLE_SOURCE_DB必须指定。

export BIBLE_SOURCE_DB=data/source.sqlite

如果需要,还可以更改以下值。

export BIBLE_APP_DB=data/app.sqlite
export BIBLE_FAISS_INDEX=data/chunks.faiss
export THEOGRAPHIC_VENDOR_DIR=data/vendor/theographic

大部分都可以按默认值写。

4.数据import完整顺序

第一次设置时,按照以下顺序进行即可。

bible-mcp fetch-theographic
bible-mcp sync-theographic
bible-mcp index

最后运行服务器。

bible-mcp serve

5.详细说明数据import

这一步是最重要的。 特别是不熟悉电脑的话。 fetch, sync, index很容易混淆每个是什么角色。

5-1. fetch-theographic

bible-mcp fetch-theographic

该命令从GitHub下载圣经人物、地点和事件元数据。

根据首选项,请使用以下存储库:

  • GitHub存储库: robertrouse/theographic-bible-metadata
  • 缺省分支/参照值: master

也就是说,默认情况下,这是将此存储库中的数据复制到本地的步骤。

实际上在下载什么?

fetch-theographic将整个存储库 git clone 不做。 相反,只使用GitHub API和raw文件URL下载所需的JSON文件。

内部顺序如下:

  1. 首先,使用GitHub API master确认当前指向哪个提交。
  2. 然后,根据确认的提交哈希值,只下载所需的单独JSON文件。
  3. 将下载的文件保存到本地快照文件夹中。
  4. 最后从哪个提交收到了什么文件 manifest.json写入。

默认情况下,将下载以下4个文件。

  • people.json
  • places.json
  • events.json
  • verses.json

也就是说,“只选择下载所需的元数据文件”。

下载到哪个URL

根据代码,大致如下所示。

首先,使用GitHub API检查提交哈希。

https://api.github.com/repos/robertrouse/theographic-bible-metadata/commits/master

然后,使用收到的实际提交哈希作为响应导入raw文件。

例如 people.json从这种形式的地址接收。

https://raw.githubusercontent.com/robertrouse/theographic-bible-metadata//json/people.json

其他文件也是同样的方式。

  • .../json/places.json
  • .../json/events.json
  • .../json/verses.json

也就是说,不只是简单地获得“当前master”。 首先固定master指向的实际提交,然后接收该提交的raw JSON文件。是。

这样以后很容易跟踪“写的是什么时间点的数据”。

运行结果:

  • data/vendor/theographic/... 下面将出现快照文件夹。
  • 还没有进入应用程序DB。
  • 顾名思义,只是“下载”的状态。

更确切地说,按默认路径存储如下:

data/vendor/theographic//

例如,出现了这种结构。

data/vendor/theographic//
├── manifest.json
└── raw/
    ├── people.json
    ├── places.json
    ├── events.json
    └── verses.json

manifest.json里面有什么

此文件是记录“这次下载是什么”的元文件。

这里通常包含以下信息。

  • 从哪个GitHub存储库收到的
  • 以什么样的ref为基准收到的
  • 实际解释的提交哈希是什么
  • 什么时候下载的
  • 每个文件的大小和SHA-256散列
  • 许可信息

也就是说,以后出现问题时:

  • 收到了哪个版本的数据
  • 文件是否中途更改
  • 重新接收是否也是同一快照

可以查看。

许可证的标识是什么?

当前fetch步骤中记录的Theographic许可标记为以下值:

  • CC BY-SA 4.0

这个值也是。 manifest.json一起记录在中。

仅fetch还无法检索

这部分很重要。

  • fetch-theographic只下载。
  • app.sqlite不导入到。
  • search_entities不是直接在中使用的状态。

也就是说,以下步骤应该继续。

bible-mcp fetch-theographic
bible-mcp sync-theographic

sync-theographic只有这样,下载的JSON才会正规化并进入应用程序DB。

如果成功的话,通常会出现这种意思的信息。

Theographic snapshot fetched: ...

如果想使用其他存储库或分支

如果希望使用其他存储库或其他ref而不是默认值,可以将其替换为环境变量。

示例:

export THEOGRAPHIC_REPO=robertrouse/theographic-bible-metadata
export THEOGRAPHIC_REF=master

简单地说,原理是:

  • THEOGRAPHIC_REPO:从哪个GitHub存储库接收
  • THEOGRAPHIC_REF:根据哪个分支、标签和提交接收

表示。

5-2. sync-theographic

bible-mcp sync-theographic

此命令将刚才下载的元数据 bible-mcp整理成写的形式 app.sqlite放入。

运行前在内部检查:

  • BIBLE_SOURCE_DB 文件是否真实存在
  • 是否存在源数据库所需的表和列
  • 元数据指向的圣经句子是否真的存在于原始数据库中

运行结果:

  • data/app.sqlite将创建或更新。
  • 包含人物、地点、事件、alias和句子连接信息。
  • 可以跳过原始数据库中不存在的句子链接。

如果成功的话,通常会出现这样的信息。

Theographic sync complete: ...

如果中间出现类似如下的消息,则表示元数据中的某些句子链接与当前圣经DB不符,因此被跳过。

Skipped ... unresolved entity verse links during sync

5-3. index

bible-mcp index

此命令创建搜索实际正文所需的索引。

发生了什么:

  1. 原版 source.sqlite在读圣经正文。
  2. app.sqliteverses 将正文移到表格中。
  3. 创建用于搜索的passage chunk。
  4. 创建FTS搜索索引。
  5. 用于矢量搜索 chunks.faiss 创建文件。

重要信息:

  • 此命令 sync-theographic必须先结束。
  • 如果元数据为空,则失败。
  • 由于模型下载,首次运行可能需要更长的时间。

成功的话一般都会这样

Index build complete

5-4. serve

bible-mcp serve

此命令检查准备好的数据库和索引,然后运行MCP服务器。

运行前检查:

  • app.sqlite是否有
  • 看看有没有需要的桌子。
  • chunks.faiss是否有
  • FAISS索引和DB chunk ID是否相互匹配

6.最简单的开始示例

在项目文件夹中按以下顺序运行即可。

python3 -m venv .venv
source .venv/bin/activate
pip install -e '.[dev]'
export BIBLE_SOURCE_DB=data/source.sqlite
bible-mcp fetch-theographic
bible-mcp sync-theographic
bible-mcp index
bible-mcp serve

7.经常堵车的情况

Missing required environment variable: BIBLE_SOURCE_DB

意思是没有指定原始圣经DB路径。

export BIBLE_SOURCE_DB=data/source.sqlite

Source DB not found: ...

文件路径无效或文件尚未存在。 请重新检查路径。

Source table not found: verses ...

在源SQLite中 verses 意思是没有桌子。 如果表格名称不同 BIBLE_SOURCE_TABLE必须一起指定。

示例:

export BIBLE_SOURCE_TABLE=my_verses

Missing required source columns: ...

在源数据库中 book, chapter, verse, text 意思是没有一部分。

请使用以下命令再次检查表格结构。

sqlite3 data/source.sqlite "PRAGMA table_info(verses);"

Unknown book name: ...

book 这意味着该值与import当前期望的英语书名不同。 例如 창세기像这样,如果是韩文书的名字,可能会失败。

No Theographic snapshot found. Run fetch-theographic first.

必须先执行以下命令。

bible-mcp fetch-theographic

Theographic metadata is missing or incomplete. Run bible-mcp sync-theographic before bible-mcp index.

index更早 sync-theographic意思是要做。

顺序要像下面一样。

bible-mcp fetch-theographic
bible-mcp sync-theographic
bible-mcp index

8.整理主要命令

  • bible-mcp fetch-theographic

下载Theographic元数据快照。

  • bible-mcp sync-theographic

将下载的元数据与本地应用程序DB同步。

  • bible-mcp index

导入原始圣经正文并创建搜索索引。

  • bible-mcp serve

使用准备好的应用程序DB和索引运行MCP服务器。

  • bible-mcp doctor

确保原始数据库和运行时交付项正常,而不释放服务器。

9.实体搜索和韩语输入

目前,Bible MCP的前提是在MCP客户端处理实体重试,而不是在服务器内部。

例如,用户 요단강的元数据是英语 Jordan如果保存为,建议前面的LLM依次重试英语候选。

建议的提示策略如下:

  1. route_entity_query首先调用用户的原文
  2. 结果 not_found仅在时生成英语候选
  3. 对同一工具依次重新调用英语候选项
  4. 如果出现成功、模糊或错误,请立即停止
  5. 对用户隐藏内部重试过程,只返回韩语答案

有关详细规则,请参阅以下文档。

10.章节回复和摘要规则

如果直接要求圣经句子或正文 lookup_passage 不要概括结果。 passage_text 建议原封不动地返回全文。

建议的提示策略如下:

  1. 如果用户请求特定章节或正文 lookup_passage 呼叫
  2. 成功的话。 passage_text 完整返回
  3. 如果答案中包括圣经句子或参考,则无论原因如何,每个引用句子 lookup_passage通过查询,先显示全文
  4. 不简短概括或意译替换本文
  5. 仅在显示全文后才添加说明、应用和解释
  6. summarize_passage仅当用户单独要求摘要、说明和默想时使用

有关详细规则,请参阅以下文档。

11.请参见

  • 应用程序DB默认路径: data/app.sqlite
  • 矢量索引默认路径: data/chunks.faiss
  • Theographic vendor默认路径: data/vendor/theographic
  • 源数据库默认表名称: verses

目录标签

目录标签

Python搜索文档处理圣经搜索本地部署结构查询元数据检索宗教技术文本分析

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

部署方式(deploymentType,部署类型)

local-only

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiononelocal-only

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP