圣经引用链接生成器

一个将Markdown文档中的圣经和天主教教理引用转换为可点击链接的工具,支持Bible Gateway和Obsidian的wiki链接。

  • by psenger
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 psenger/mcp-markdown-bible-enricher

使用说明

圣经丰富MCP服务器-NRSVCE(新修订标准版天主教版)

将Markdown笔记中的纯文本圣经引用转换为圣经门户链接和黑曜石维基链接。

快速开始 • 安装 • 用法 • 配置 • 贡献 • 更新日志


圣经丰富MCP服务器 是一个 模型上下文协议 将Markdown文档中的纯文本圣经和教义问答引用转换为链接引用的服务器 圣经门户 URL和 黑曜石 维基链接。它支持所有 天主教圣经73卷,包括新教翻译中缺失的7本德典书籍。

转换此内容:

Read CCC 528. Also see 1 Samuel 16:1, 16:4-13 and Matthew 2:6.

进入此:

Read [CCC 528](https://www.catholiccrossreference.online/catechism/#!/search/528).
Also see [1 Samuel 16:1, 16:4-13](https://www.biblegateway.com/passage/?search=1%20Samuel%2016%3A1%2C%2016%3A4-13&version=NRSVCE) ( [[1 Sam-16#v1]] , [[1 Sam-16#v4]] - [[1 Sam-16#v13]] )
and [Matthew 2:6](https://www.biblegateway.com/passage/?search=Matthew%202%3A6&version=NRSVCE) ( [[Matt-02#v6]] ).

丰富是 确定性的 --基于正则表达式的解析,转换本身不涉及LLM猜测。


特性

  • 圣经门户链接 --每个圣经参考都变成了一个可点击的链接(默认为NRSVCE)
  • 黑曜石维基链接 --生成 [[Book-Ch#vN]] vault交叉引用格式
  • CCC链接 --天主教教理问答参考链接到天主教交叉参考
  • 模式识别 --处理复杂的模式,如 1 Samuel 16:1, 16:4-13 和 CCC 528-530, 610-612
  • 幂等 --跳过已链接的引用;多次运行同一文档是安全的
  • 完整的天主教圣经 --全部73本书,包括《托比特》、《朱迪思》、《智慧》、《西拉奇》、《巴鲁克》、《马加比书》1-2

快速开始

git clone https://github.com/psenger/mcp-markdown-bible-enricher.git
cd mcp-markdown-bible-enricher
npm install
npm run build
npm run inspect

在MCP检查器中,调用 bible_enrich_markdown 与:

Genesis 1:1 says "In the beginning..."

安装

先决条件

  • Node.js>=18.0.0

克劳德桌面版

  1. 找到您的配置文件:

    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • 视窗: %APPDATA%\Claude\claude_desktop_config.json
    • Linux: ~/.config/Claude/claude_desktop_config.json
  2. 添加服务器:

{
  "mcpServers": {
    "mcp-markdown-bible-enricher": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-markdown-bible-enricher/dist/index.js"]
    }
  }
}
  1. 重新启动克劳德桌面。

要设置自定义圣经版本或黑曜石格式,请添加 env 到配置:

{
  "mcpServers": {
    "mcp-markdown-bible-enricher": {
      "command": "node",
      "args": ["/absolute/path/to/mcp-markdown-bible-enricher/dist/index.js"],
      "env": {
        "BIBLE_VERSION": "NRSVCE",
        "OBSIDIAN_FORMAT": "[[Bible/{abbrev}/{chapter}#v{verse}]]"
      }
    }
  }
}

Claude 代码命令行工具

claude mcp add --transport stdio mcp-markdown-bible-enricher -- node /absolute/path/to/mcp-markdown-bible-enricher/dist/index.js

对于环境变量:

claude mcp add mcp-markdown-bible-enricher \
  -e BIBLE_VERSION=NRSVCE \
  -e 'OBSIDIAN_FORMAT=[[{abbrev}-{chapter2}#v{verse}]]' \
  -- node /absolute/path/to/mcp-markdown-bible-enricher/dist/index.js

使用 --scope user 要在所有项目中全局安装:

claude mcp add --transport stdio --scope user mcp-markdown-bible-enricher -- node /absolute/path/to/mcp-markdown-bible-enricher/dist/index.js

验证:

claude mcp list

光标/VS代码

添加 .cursor/mcp.json:

{
  "mcp-markdown-bible-enricher": {
    "command": "node",
    "args": ["/absolute/path/to/mcp-markdown-bible-enricher/dist/index.js"]
  }
}

用法

处理对话中的文本

Use the bible_enrich_markdown tool to process this text:
"According to Romans 8:28 and CCC 313, all things work together for good."

结果:

According to [Romans 8:28](https://www.biblegateway.com/passage/?search=Romans%208%3A28&version=NRSVCE) ( [[Rom-08#v28]] ) and [CCC 313](https://www.catholiccrossreference.online/catechism/#!/search/313), all things work together for good.

直接处理文件

Use bible_enrich_file with input_path: "/Users/me/Documents/bible-study.md"

文件内容丰富。供应 output_path 写到另一个位置并保留原件。

支持的参考模式

模式 示例 它匹配什么
单句诗 John 3:16 一首诗
Verse范围 Matthew 5:3-12 连续诗句
多节经文 Psalm 23:1, 4, 6 个人诗句
章节+范围 1 Samuel 16:1, 16:4-13 混合章节:诗歌模式
裸露的章节 Isaiah 53 整章
单章书诗 Jude 9 单章书中的诗句
单章书籍范围 Jude 9-14 单章书中的诗歌范围
CCC单 CCC 528 单个段落
CCC范围 CCC 528-530 段落范围
CCC多重 CCC 528-530, 610-612 多个范围

配置

所有配置都是通过环境变量进行的,在服务器启动时加载一次。更改后重新启动MCP服务器。

变量 默认值 描述
BIBLE_VERSION NRSVCE 圣经翻译。NRSVCE和NABRE包括次正典书籍;新教译本(ESV、NIV、KJV)则不然。
OBSIDIAN_FORMAT [[{abbrev}-{chapter2}#v{verse}]] Wiki链接模板。占位符: {abbrev}, {chapter}, {chapter2} (零填充), {verse}
INCLUDE_OBSIDIAN_LINKS true 设置为 false 仅适用于圣经门户链接

示例配置

圣经网关仅链接,非默认翻译:

"env": {
  "BIBLE_VERSION": "ESV",
  "INCLUDE_OBSIDIAN_LINKS": "false"
}

自定义vault文件夹结构:

"env": {
  "OBSIDIAN_FORMAT": "[[Bible/{abbrev}/{chapter2}#v{verse}]]"
}

API 参考

工具

bible_enrich_markdown

用圣经和CCC链接丰富Markdown字符串。

参数 类型 必填 说明
markdown string yes 要丰富的Markdown内容

返回丰富的Markdown字符串。

bible_enrich_file

读取Markdown文件,丰富它,并写入结果。

参数 类型 必填 说明
input_path string yes 输入文件的绝对路径
output_path string no 输出的绝对路径(默认覆盖输入)

返回带有输出路径的成功消息。

提示

bible_enrich_document

指示克劳德打电话的便利提示 bible_enrich_markdown 关于所提供的内容。

参数 类型 必填
markdown string 是

help

显示所有可用的工具、配置选项和使用示例。不要争辩。


支持的书籍

全部 天主教圣经73卷 支持。

德语正典书籍翻译说明 (托比特,朱迪思,智慧,西拉奇,巴鲁克,1-2马加比):这些书只能通过天主教翻译在圣经门户网站上找到。NRSVCE(默认)和NABRE都包含它们。NCB和所有新教译本都没有。

Old Testament (46 books)

新教教规(39本书):

  • 摩西五经:创世记、出埃及记、利未记、民数记、申命记
  • 历史:约书亚、士师、路得、撒母耳记上1-2章、列王记下1-2篇、历代志下1-1章、以斯拉记、尼希米记、以斯帖记
  • 智慧:约伯、诗篇、箴言、传道书、所罗门之歌
  • 先知:以赛亚、耶利米、哀歌、以西结、但以理、何西阿、约珥、阿摩司、俄巴底亚、约拿、米迦、拿鸿、哈巴谷、西番雅、哈该、撒迦利亚、玛拉基

Deuterocanical(7本书-仅天主教):

  • 历史:托比特,朱迪思,1-2马加比
  • 智慧:智慧,西拉奇(传道书)
  • 预言家:巴鲁克
New Testament (27 books)
  • 福音书:马太福音、马可福音、路加福音、约翰福音
  • 历史:行为
  • 保罗书信:罗马书、哥林多前书、加拉太书、以弗所书、腓立比书、歌罗西书、帖撒罗尼迦前书、提摩太书、提多书、腓利门书
  • 一般书信:希伯来书、雅各书、彼得前书1-2、约翰福音1-2-3、犹大书
  • 启示录:启示录
Complete abbreviation list (all 73 books)

旧约(46卷):

摩西五经:创世纪→ Gen,出埃及记→ Exod利未记→ Lev,数字→ Num,申命记→ Deut

历史:约书亚→ Josh,法官→ Judg,露丝→ Ruth1塞缪尔→ 1 Sam2塞缪尔→ 2 Sam,1国王→ 1 Kings,2国王→ 2 Kings,1编年史→ 1 Chron,历代志下→ 2 Chron,以斯拉→ Ezr尼希米→ Neh托比特→ Tob,朱迪思→ JdtEsther→ Esth,1马加比→ 1 Macc,2马加比→ 2 Macc

智慧:工作→ Job,诗篇→ Ps,箴言→ Prov,传道书→ Eccles所罗门之歌→ Song,智慧→ Wis,锡拉赫→ Sir

先知:以赛亚→ Isa,耶利米→ Jer,哀歌→ Lam巴鲁克→ Bar*,以西结→ Ezek,丹尼尔→ Dan何西阿→ Hos乔尔→ Joel,阿莫斯→ Am,俄巴底亚→ Obad†乔纳→ Jonah,Micah→ MicahNahum→ Nah哈巴谷→ Hab,西番雅→ Zeph,哈该→ Hag撒迦利亚→ Zech玛拉基→ Mal

新约(27卷):

福音书:马太福音→ Matt,马克→ Mark,卢克→ Luke约翰→ John

历史:行为→ Acts

保罗书信:罗马书→ Rom哥林多前书→ 1 Cor哥林多后书→ 2 Cor加拉太书→ Gal,以弗所书→ Ephes,腓立比人→ Phil,歌罗西书→ Col帖撒罗尼迦前书→ 1 Thess帖撒罗尼迦后书2→ 2 Thess提摩太前书→ 1 Tim提摩太后书→ 2 Tim,提图斯→ Titus腓利门→ Philem†

一般书信:希伯来书→ Heb,詹姆斯→ James1彼得→ 1 Pet2彼得→ 2 Pet约翰一书→ 1 John约翰二书→ 2 John†,约翰三书→ 3 John†,裘德→ Jude†

启示录:启示录→ Rev

* 次正典——需要NRSVCE或NABRE翻译
† 单章书——支持两者 Jude 1:9 和 Jude 9 表格

别名:所罗门之歌=雅歌;西拉奇=传道书=本·西拉的智慧


运作原理

富集函数在五个连续的正则表达式过程中处理Markdown:

  1. 反勾展开 --删除引用周围的回溯,如 `1 Samuel 16:1:` 处理前
  2. 圣经参考 --比赛 chapter:verse Markdown链接中没有的模式
  3. 单章裸诗 --匹配单章书籍中的裸诗引用(例如。, Jude 9)
  4. 裸露的章节 --仅匹配章节引用(例如。, Isaiah 53)
  5. CCC参考 --匹配教理问答段落编号

关键实施细节:

  • 消极的后向/后向可防止双重丰富已链接的文本
  • 隐式章节继承: 16:1, 4-13 两组都使用第16章
  • 单章书籍使用不同的黑曜石链接格式([[Jude#v9]] 而不是 [[Jude-01#v9]])
  • YAML前体在富集前被剥离,并原封不动地重新附着

输出格式

参考 圣经门户链接 黑曜石维基链接
John 3:16 [John 3:16](https://www.biblegateway.com/...) [[John-03#v16]]
Matthew 5:3-12 [Matthew 5:3-12](https://www.biblegateway.com/...) [[Matt-05#v3]] - [[Matt-05#v12]]
Jude 9 [Jude 9](https://www.biblegateway.com/...) [[Jude#v9]]
Isaiah 53 [Isaiah 53](https://www.biblegateway.com/...) [[Isa-53]]
CCC 528 [CCC 528](https://www.catholiccrossreference.online/...) (无)

黑曜石融合

圣经参考文献丰富了与黑曜石相匹配的维基链接 [[Note#heading]] 公约。如果vault使用不同的文件命名结构,请设置 OBSIDIAN_FORMAT 匹配:

# Flat structure: "Gen 1:1" → [[Gen 1#v1]]
OBSIDIAN_FORMAT="[[{abbrev} {chapter}#v{verse}]]"

# Nested folders: "Gen 1:1" → [[Bible/Gen/01#v1]]
OBSIDIAN_FORMAT="[[Bible/{abbrev}/{chapter2}#v{verse}]]"

# Chapter-only files: "Gen 1:1" → [[Gen-01#verse-1]]
OBSIDIAN_FORMAT="[[{abbrev}-{chapter2}#verse-{verse}]]"

可用占位符: {abbrev}, {chapter}, {chapter2} (零填充), {verse}.


代理使用

此服务器是为使用代理工作流而构建的。Claude Code、Claude Desktop和其他MCP客户端可以直接在对话中调用这些工具。

从Claude Code调用工具

服务器注册后,Claude Code会自动获取工具。您可以直接指示它:

Use bible_enrich_file with input_path: "/Users/me/vault/notes/week-1.md"

或者使用内置 bible_enrich_document 提示以交互式方式丰富您粘贴的文本。

代理操作系统/目录

这 agent-os/ 目录包含机器可读的规范和标准,帮助AI代理在会话中一致地使用此代码库。

agent-os/
├── specs/           # Change-specific specs (one per feature/fix)
│   ├── 2026-03-18-1600-single-chapter-bare-verse-refs
│   ├── 2026-03-18-1700-bare-chapter-refs
│   └── 2026-03-19-0900-frontmatter-protection
└── standards/       # Durable conventions for the codebase
    ├── index.yml    # Index of all standards with descriptions
    ├── books/       # BOOK_MAP key casing, abbreviation sources, alternative names
    ├── config/      # Config loading lifecycle, opt-out patterns
    ├── enrichment/  # Regex pass ordering, lookbehind guards, chapter inheritance
    ├── global/      # Cross-cutting principles (DRY, SOLID, TDD, etc.)
    └── testing/     # Jest config module cache limitations

在建议对代码库进行更改时,请参考相关标准 agent-os/standards/ 在编写代码之前。这 enrichment/three-pass-ordering 例如,standard解释了为什么正则表达式的传递顺序是固定的,不能改变。

CLAUDE.md

CLAUDE.md 项目根目录为Claude Code提供了特定于项目的指导:TypeScript约定、正则表达式测试要求、导入扩展规则和书籍映射模式。它由Claude Code在每个会话开始时自动加载。


错误处理

场景 行为
无法识别的书名 参考文献保持不变
章节/节数无效 内容丰富,但由此产生的圣经门户链接可能为404
找不到文件 返回 Error: ENOENT: no such file or directory
权限被拒绝 返回 Error: EACCES: permission denied

所有工具错误都将返回 isError: true 以及用户可读的消息。


局限性

  • 文件大小 --文件完全加载到内存中;将输入保持在10MB以下
  • 编码 --仅限UTF-8;非UTF-8输入产生不正确的输出
  • 代码块 --三重回溯块仍然丰富;只有内联的单回溯引用才会被解包,然后被丰富
  • CCC格式 --需要一个空格: CCC 528,不 CCC528
  • 配置 --启动时加载一次;更改环境变量后重新启动服务器
  • 圣经门户上的申命记 --仅限NRSVCE和NABRE;NCB和新教译本缺少这些书籍

发展

项目结构

mcp-markdown-bible-enricher/
├── src/
│   ├── __tests__/    # unit tests
│   ├── config.ts     # env var loading
│   ├── index.ts      # MCP server entry point
│   ├── enrichment.ts # core regex logic
│   └── books.ts      # Bible book → abbreviation map
├── agent-os/         # agentic specs and standards
├── dist/             # compiled output (generated)
├── CLAUDE.md         # Claude Code project guidance
├── CONTRIBUTING.md   # contributor guide
├── CHANGELOG.md      # release history
└── package.json

脚本

npm run build           # compile TypeScript
npm run start           # run the compiled server
npm run dev             # watch mode (tsx)
npm run inspect         # MCP Inspector browser GUI
npm test                # run tests
npm run test:watch      # watch mode
npm run test:coverage   # coverage report
npm run lint            # ESLint
npm run format          # Prettier
npm run format:check    # check formatting without writing
npm run clean           # remove dist/

TypeScript注释

  • 模块系统:ES模块("type": "module")
  • 导入扩展名:始终使用 .js 即使源文件是 .ts --Node16模块分辨率所需
  • 目标:ES2022,启用严格模式

添加新的圣经书或别名

看 agent-os/standards/books/ 对于图书地图惯例和 src/books.ts 为了实施。关键规则在 BOOK_MAP 钥匙套和 singleChapter 旗帜。


故障排除

Server not appearing in Claude Desktop
  1. 验证中的路径 claude_desktop_config.json 是一条绝对路径
  2. 确认构建成功: npm run build
  3. 通过帮助查看MCP日志→ Claude Desktop中的开发人员工具
  4. 完全退出并重新启动Claude Desktop
References not being detected
  • 书名不区分大小写,但必须拼写正确
  • 格式必须为 Book chapter:verse --确认没有多余的标点符号
  • Markdown链接中已有引用 [text](url) 故意跳过
  • 对于氘代经典书籍,请确认您使用的是NRSVCE或NABRE
Deuterocanonical books not working

集 BIBLE_VERSION 到 NRSVCE (默认)或 NABRENCB不包括圣经门户网站上的这些书籍,尽管它们是天主教翻译的。新教译本(ESV、NIV、KJV)也缺乏这些内容。

Configuration changes not taking effect

启动时加载一次配置。编辑env-vars后:保存配置文件, 完全退出 Claude Desktop,然后重新启动。

File permission or encoding errors
# Check encoding
file -I /path/to/file.md

# Convert to UTF-8 if needed
iconv -f ISO-8859-1 -t UTF-8 input.md > output.md
Build errors
rm -rf node_modules package-lock.json
npm install
npm run clean
npm run build

贡献

欢迎捐款。看 贡献.md 用于:

  • 开发设置和本地测试
  • 正则表达式模式约定和测试要求
  • 如何添加新的圣经书籍或别名
  • 提交信息和公关惯例(常规提交)
  • 如何使用 agent-os/ 提出变更时的规格

为了报告错误或请求功能, 打开一个问题.


更新日志

看 更改日志.md 查看完整的发布历史。该项目如下 保存更新日志v1.1.0 和 语义化版本.


许可证

根据 GNU通用公共许可证v3.0。参见 许可证 了解全部细节。


致谢


专为天主教圣经学习和代理Markdown工作流程而构建

报告Bug • 请求功能 • 安全