Skip to main content
Glama

Bible MCP 服务器

一个 MCP(模型上下文协议)服务器,让 AI 助手能够从 MyBible 格式的 SQLite 数据库中获取圣经经文、段落和章节。

功能

  • list_bibles — 列出所有已安装的圣经译本

  • list_books — 列出某个译本中的所有书卷

  • get_passage — 获取单节经文或经文范围(例如:约翰福音 3:16,罗马书 8:1-3)

  • get_chapter — 获取包含章节标题的完整章节

Related MCP server: bible-mcp

设置

安装依赖

npm install

添加圣经译本

将 MyBible 格式的 .SQLite3 文件放入 Bibles/ 目录中,每个译本一个文件夹:

Bibles/
├── NIV'11/
│   ├── NIV'11.SQLite3
│   └── NIV'11.commentaries.SQLite3
├── KJV/
│   └── KJV.SQLite3
└── ...

每个子文件夹必须至少包含一个 *.SQLite3 文件(主圣经数据库)。注释数据库(*.commentaries.SQLite3)是可选的。文件夹名称将成为工具调用中使用的译本 ID。

配置你的 AI 客户端

添加到你的 MCP 客户端配置中:

{
  "mcpServers": {
    "bible": {
      "command": "node",
      "args": ["path/to/BibleMCP/dist/index.js"]
    }
  }
}

用于开发:

{
  "mcpServers": {
    "bible": {
      "command": "npx",
      "args": ["tsx", "path/to/BibleMCP/src/index.ts"]
    }
  }
}

配置

环境变量

默认值

描述

BIBLES_DIR

./Bibles

包含圣经译本文件夹的目录路径

开发

npm run build      # Compile TypeScript to dist/
npm run dev        # Run server in dev mode (tsx)
npm test           # Run all tests
npm run test:watch # Run tests in watch mode
npm run typecheck  # Type-check without compiling

MyBible 格式

此服务器读取标准的 MyBible SQLite 模式:

  • info 表 — 元数据(描述、语言)

  • books 表 — 书卷编号、短/长名称(66 卷书,编号 10–730)

  • verses 表 — book_number, chapter, verse, text(文本可能包含 HTML 标记)

  • stories 表 — 章节标题 / 分段标题

  • introductions 表 — 书卷介绍

经文文本以干净的纯文本形式返回,所有 HTML 标记均被剥离。

许可证

此服务器代码根据 MIT 许可证授权。请参阅 LICENSE。

Bibles/ 目录中的圣经译本模块不受此许可证覆盖——它们受各自版权保护,且不随此仓库分发。

Available Tools

4 tools
get_chapterA

Get an entire chapter of the Bible with all verses and section titles.

NameRequiredDescriptionDefault
bookYesThe book name (e.g. "John", "Psalms", "Genesis").
chapterYesThe chapter number.
translationYesThe Bible translation ID (e.g. "NIV'11").

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of disclosure. It clearly states that the tool returns an entire chapter including verses and section titles, which is a read operation. It does not mention potential limitations, performance, or authentication requirements, but for a simple data retrieval tool, this is reasonably transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, well-structured sentence that immediately conveys the tool's purpose. Every word is necessary, and there is no extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with three parameters and no output schema, the description provides adequate context about what the tool returns. It could be slightly improved by explicitly contrasting with get_passage to clarify usage boundaries, but overall it is sufficiently complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with all three parameters having descriptions in the input schema. The tool description does not add any additional meaning or format details beyond what the schema already provides, so it meets the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'entire chapter of the Bible', with additional detail about including all verses and section titles. This distinguishes it from sibling tools like list_bibles (listing translations) and get_passage (likely a subset of verses).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies that this tool is for retrieving whole chapters, but it does not explicitly state when to use it versus siblings like get_passage (which might cover a range of verses). No guidance on prerequisites or alternatives is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_passageA

Get a single Bible verse or a range of verses by book, chapter, and verse number(s).

NameRequiredDescriptionDefault
bookYesThe book name (e.g. "John", "1 Corinthians", "Genesis").
verseYesThe starting verse number.
chapterYesThe chapter number.
endVerseNoThe ending verse number for a range. Omit for a single verse.
translationYesThe Bible translation ID (e.g. "NIV'11").

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It states the core behavior (retrieving a verse or range) but does not disclose what happens on invalid input (e.g., nonexistent verse, invalid translation) or describe the output format. It is not misleading but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 17 words, front-loading the key information ('Get a single Bible verse or a range of verses'). Every word is meaningful, and there is no redundancy or extraneous detail.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 5 parameters (4 required), no output schema, and no annotations, the description adequately covers the retrieval action. However, it could be more complete by specifying the return format (e.g., the verse text) to fully guide the agent. The lack of output schema shifts the burden to the description, which partially meets it.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds minimal value beyond the schema by mentioning 'verse number(s)', hinting at the endVerse parameter for ranges. However, it does not explain the difference between verse and endVerse or the nature of the translation ID, which are already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Get' and the resource 'single Bible verse or a range of verses', specifying the method using book, chapter, and verse numbers. This distinguishes it from sibling tools like list_bibles, list_books, and get_chapter, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance is provided on when to use this tool instead of alternatives like get_chapter for whole chapters, or prerequisites like listing books or translations. The description implies usage by describing the action, but does not offer conditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_biblesA

List all available Bible translations installed in the Bibles directory.

NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description bears full responsibility for behavioral disclosure. It correctly identifies the operation as a read/list action and specifies the data source (the Bibles directory). However, it omits details such as whether the list is sorted, what happens if the directory is empty or missing, or if any authorization is required. For a simple parameterless tool this is adequate but not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence that immediately conveys the tool's action ('List...'), the resource ('Bible translations'), and the context ('installed in the Bibles directory'). Every word earns its place; there is no redundancy or filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no parameters, no output schema, and is part of a small family of tools, the description provides enough high-level context to understand its role. It could mention the nature of the output (e.g., 'returns a list of translation names') to be fully self-contained, but for a simple list operation it is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, and the schema coverage is 100% (vacuously). The description does not need to add parameter-level meaning. With no parameters, a baseline score of 4 is appropriate, and the description adds no additional param information, which is fine.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'List' and the specific resource 'available Bible translations', with the scope 'installed in the Bibles directory'. This effectively distinguishes it from sibling tools like list_books (which lists books within a translation) and get_passage/get_chapter (which retrieve content). The purpose is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description does not explicitly state when to use this tool versus alternatives. While it is implied that one would call list_bibles first to see available translations before using list_books or get_passage, no direct usage context or exclusions are provided. The guidance is minimal, relying on the user to infer the workflow from the tool names alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_booksB

List all books in a specific Bible translation.

NameRequiredDescriptionDefault
translationYesThe Bible translation ID (e.g. "NIV'11"). Use list_bibles to see available IDs.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description bears the full burden of disclosing behavioral traits. It does not mention that this is a read-only operation, whether it requires authentication, what the response format looks like, or if it could be destructive. The description is too brief to convey behavioral context beyond the basic function.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, short sentence that is front-loaded with the key action and resource. It wastes no words, but could arguably be slightly more informative without losing conciseness, hence a 4 rather than a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no output schema, a mandatory parameter, and no annotations, the description should provide more context about what the response contains (e.g., book names, chapters count) and whether the output is sorted or ordered. The current description is insufficient for an agent to understand the complete behavior or handle edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema coverage is 100% and the single parameter 'translation' has a clear description including an example value and a cross-reference to 'list_bibles' for available IDs. The tool description adds no additional semantic value beyond what the schema already provides, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'List' and the clear resource 'books in a specific Bible translation'. It unambiguously states what the tool does and distinguishes it from siblings like 'list_bibles' (which lists translations) and 'get_passage' (which retrieves content).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly implies the tool is for enumerating books within a translation, but does not explicitly state when to use it versus alternatives like 'get_chapter' or 'list_bibles'. It provides no guidance on prerequisites (e.g., user must have a valid translation ID) or exclusions (e.g., not for retrieving chapters).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv1.0.0
    • First observedget_chapter
    • First observedget_passage
    • First observedlist_bibles
    • First observedlist_books

TDQS

A3.7/5.0

Scored across 4 tools

Disambiguation5/5

Each tool targets a distinct purpose: browsing translations, listing books, retrieving a specific passage, or fetching a full chapter. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern (list_bibles, list_books, get_passage, get_chapter), making the set predictable and easy to navigate.

Tool Count4/5

With 4 tools, the server feels well-scoped for its purpose. While minimal, it covers browsing and reading operations without unnecessary bloat. One or two additional tools (e.g., search) could be expected but not required.

Completeness3/5

The server covers basic lookup workflows (list translations, list books, retrieve passages/chapters), but lacks search, cross-reference, or note capabilities. Users can successfully read verses but may encounter dead ends for discovery beyond hierarchical listing.

Maintenance

ActivityInactive
ResponsivenessNo recent community issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to retrieve Bible passages from multiple translations (ESV, NIV, KJV, NASB, NKJV, NLT, AMP, MSG). Supports querying single or multiple passages and provides both MCP protocol integration and REST API endpoints.
    1
    13
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to look up Bible verses, search across translations, and compare different versions locally without API keys.
    1
    -