圣经语义搜索服务

提供德语路德圣经(1545年)、英王钦定版圣经和新心英文圣经的语义搜索功能,支持跨语言查询。

  • by happyherp
  • Python
  • 混合部署
  • 更新于
在 GitHub 查看 happyherp/luther-mcp

使用说明


标题:路德圣经MCP 表情符号📖 颜色来源:蓝色 颜色To:紫色 sdk:docker 应用端口:7860 固定:false

路德圣经MCP服务器

对德语路德圣经(1545年)、詹姆斯国王译本和新心英语圣经的语义搜索。由...支持 intfloat/multilingual-e5-small 嵌入式-不需要API密钥。

跨语言搜索是开箱即用的:用英语查询德语诗句,反之亦然。

在HuggingFace Spaces上托管: 法语/路德圣经


快速入门-托管,无需安装

克劳德桌面版

添加到 claude_desktop_config.json (%APPDATA%\Claude\claude_desktop_config.json):

{
  "mcpServers": {
    "Luther Bible": {
      "type": "sse", 
      "url": "https://aifreund-luther-bible.hf.space/sse"
    }
  }
}

重新启动克劳德桌面。完成。没有API密钥,没有本地安装。

克劳德代码

在你的shell运行

claude mcp add -s user -t sse luther-mcp https://aifreund-luther-bible.hf.space/sse

将其添加到您的 .claude.json.

注: 免费的HuggingFace层可以在大约48小时的不活动后入睡。唤醒后的第一个请求需要~15s;后续请求为~50ms。


本地设置(用于开发或离线使用)

1.安装依赖项

pip install -r requirements.txt

2.获取ChromaDB(选择一个)

选项A——下载预构建(约700 MB)

set CHROMA_PATH=C:\Projects\luther-mcp\bible_chroma_db
python -m luther_mcp download

选项B——从头开始构建(约10分钟)

复制圣经数据:

cd C:\Projects
git clone --depth 1 --filter=blob:none --sparse https://github.com/scrollmapper/bible_databases
cd bible_databases
git sparse-checkout set "formats/sqlite/GerBoLut.db" "formats/sqlite/KJV.db" "formats/sqlite/NHEB.db"
git checkout

运行索引器:

cd C:\Projects\luther-mcp
python -m luther_mcp index

3.添加到克劳德桌面

编辑 claude_desktop_config.json:

{
  "mcpServers": {
    "Luther Bible": {
      "command": "C:\\Python313\\python.exe",
      "args": ["-m", "luther_mcp"],
      "cwd": "C:\\Projects\\luther-mcp",
      "env": {
        "CHROMA_PATH": "C:\\Projects\\luther-mcp\\bible_chroma_db",
        "PYTHONPATH": "C:\\Projects\\luther-mcp"
      }
    }
  }
}

PYTHONPATH 是必需的--Claude Desktop不添加 cwd 自动转到Python的模块搜索路径。


可用工具

search_bible

语义搜索——按意义而不是关键字查找诗句。

参数 类型 默认值 说明
query string 必填 任何语言的查询
translation 字符串 "GerBoLut" "GerBoLut" / "KJV" / "web" / "all"
n_results 整数 10 返回结果(最多50个)
testament string -- "OT" 或 "NT" 过滤

get_verse

按书/章/节精确查找参考文献。

参数 类型 默认值 说明
book string 必填 德文或英文书名
chapter integer 必填 章节号
verse integer 必填 对数值
translation 字符串 "GerBoLut" "GerBoLut" / "KJV" / "web" / "all"

list_translations

返回可用的翻译,包括语言、描述和字数。


REST端点(不需要MCP)

对于不想通过SSE与MCP通信的普通HTTP客户端,SSE服务器 还将语义搜索暴露为一个简单的 GET /search 终点。它包裹着 相同 search_bible 逻辑并直接返回JSON——无需握手,无需会话。

GET /search?query=<text>&translation=GerBoLut&n_results=10&testament=NT
参数 类型 默认值 说明
query string 必填 任何语言的查询
translation 字符串 "GerBoLut" "GerBoLut" / "KJV" / "web" / "all"
n_results 整数 10 返回结果(限为1-50)
testament string -- "OT" 或 "NT" 过滤

示例(托管空间):

curl "https://aifreund-luther-bible.hf.space/search?query=the%20Lord%20is%20my%20shepherd&translation=all&n_results=3"

答复:

{
  "query": "the Lord is my shepherd",
  "translation": "all",
  "count": 3,
  "results": [
    { "reference": "Psalmen 23:1", "reference_en": "Psalms 23:1", "text": "...", "translation": "web", "score": 0.8827 }
  ]
}

错误的输入返回4xx {"error": "..."} 身体。端点仅 以SSE模式服务(python -m luther_mcp --sse,或当 PORT 已设置,如on 拥抱面部空间);它不是stdio传输的一部分。


查询示例

  • "Gottes Liebe zur Welt" → 1. 约翰福音4:9,约翰福音3:16。..
  • "God so loved the world" → 约翰福音3:16(跨语言)
  • "blessed are the peacemakers" 马太福音5:9
  • "the Lord is my shepherd" → 诗篇23:1
  • get_verse("John", 3, 16, translation="all") → 所有三种翻译

翻译

ID 语言 描述
GerBoLut 德语 路德圣经1545(现代拼写)
KJV 中文 英王钦定本
web 英语 新心英语圣经

数据来源于 scrollmapper/bible_databases.


发展

pip install -r requirements-dev.txt
python -m pytest tests/ -v

部署到HuggingFace Spaces是通过推送时的GitHub操作自动触发的 mainDocker镜像是自包含的——索引在构建时内置到镜像中。


发布新闻稿

将预构建的ChromaDB发布到GitHub Release(for python -m luther_mcp download):

set GITHUB_TOKEN=ghp_your_token_here
python scripts/create_release.py

碰撞 __version__ 在 luther_mcp/__init__.py 跑步前。标签和下载URL是自动导出的。

数据来源于 scrollmapper/bible_databases.