Skip to main content
Glama
felixLandlord

BibleMCP

BibleMCP

Production-ready MCP server that lets LLMs explore, analyze, and reason over the Bible using local ChromaDB stores and Mistral embeddings.

Supported translations

Each translation is stored in its own isolated local Chroma directory (never mixed):

Alias

helloao ID

Display name

BSB

BSB

Berean Standard Bible

ASV

eng_asv

American Standard Version (1901)

BBE

eng_bbe

Bible in Basic English

KJAV

eng_kjv

King James (Authorized) Version

Related MCP server: miniMCP

Architecture

MCP client (Cursor / Claude Desktop)
        │ stdio
        ▼
  biblemcp/server.py  →  tools  →  services  →  storage (Chroma per translation)
                                      ↓
                              helloao API (ingest)
                              Mistral API (embeddings)

Setup

1. Install

uv sync --extra dev

This creates .venv, installs the project in editable mode, and adds dev dependencies (pytest).

Note: onnxruntime is pinned to <=1.19.2 because newer releases dropped Intel Mac (x86_64) wheels. BibleMCP uses Mistral for embeddings, not Chroma's built-in ONNX embedder — this pin only satisfies ChromaDB's install requirement.

Run project commands through uv without activating the venv:

uv run biblemcp ingest --help
uv run pytest
uv run python -m biblemcp.server

2. Configure environment

Copy .env.example to .env and set your Mistral key:

cp .env.example .env

Required for ingest and semantic search:

  • MISTRAL_API_KEY

Optional:

  • BIBLEMCP_DATA_DIR (default ./data/chroma)

  • BIBLEMCP_DEFAULT_TRANSLATION (default BSB)

3. Ingest Bible text

Before semantic tools work, populate the local databases:

uv run biblemcp ingest --translation BSB
uv run biblemcp ingest --all

This fetches text from helloao, embeds verses with mistral-embed, and upserts into data/chroma/{bsb,asv,bbe,kjav}/.

Re-running ingest is safe (upsert).

MCP client configuration

Cursor

Add to your MCP settings:

{
  "mcpServers": {
    "biblemcp": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/to/BibleMCP", "run", "python", "-m", "biblemcp.server"],
      "env": {
        "MISTRAL_API_KEY": "your_key",
        "BIBLEMCP_DATA_DIR": "/absolute/path/to/BibleMCP/data/chroma"
      }
    }
  }
}

Claude Desktop

{
  "mcpServers": {
    "biblemcp": {
      "command": "uv",
      "args": ["--directory", "/absolute/path/to/BibleMCP", "run", "python", "-m", "biblemcp.server"],
      "env": {
        "MISTRAL_API_KEY": "your_key",
        "BIBLEMCP_DATA_DIR": "/absolute/path/to/BibleMCP/data/chroma"
      }
    }
  }
}

Use absolute paths for --directory and BIBLEMCP_DATA_DIR. If uv is not on your PATH for the MCP host, use the full path to the uv binary.

Screenshots

Configured in Cursor

Once connected, biblemcp shows as active with all 10 tools available:

BibleMCP configured in Cursor MCP settings

In action

Ask for verses on a theme — the agent searches and fetches passages through the MCP tools:

Agent searching and fetching passages via BibleMCP

BibleMCP returning five verses on final judgment

The 10 tools

Tool

What it does

search_verse

Semantic keyword/phrase search

get_verse

Exact single-verse lookup

get_passage

Exact verse range within a chapter

cross_reference

Semantic neighbors for a reference (not curated TSK)

topic_lookup

Semantic topic search

original_language_lookup

Semantic search framed by a term (not Strong's)

character_profile

Relevant verses about a character (no biography DB)

timeline_event_lookup

Relevant verses for an event (no date database)

summarize_passage

Chapter text + instructions for the host LLM to summarize

theological_analysis

Primary + related passages + question for host LLM analysis

All tools accept an optional translation field (BSB, ASV, BBE, KJAV).

Development

Run tests:

uv run pytest

Run the server locally:

uv run python -m biblemcp.server

CLI help:

uv run biblemcp ingest --help

Project layout

src/biblemcp/
  bible/          # book aliases, reference parsing
  clients/        # helloao + Mistral embeddings
  models/         # Pydantic types
  services/       # ingest, retrieval, search, context
  storage/        # per-translation Chroma store
  tools/          # MCP tool schemas, handlers, registry
  server.py       # FastMCP entrypoint
  cli.py          # ingest CLI
tests/            # unit, service, and tool tests
data/chroma/      # local vector stores (gitignored)

License

Apache-2.0 — see LICENSE.

Available Tools

10 tools
character_profileA
Read-only

Return verses about a biblical character (no curated biography database).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the agent knows this is a safe read operation. The description adds that it returns verses, which is consistent, but provides no additional behavioral context such as rate limits, error handling, or what happens for non-existent characters.

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, focused sentence with no fluff. It immediately conveys the core functionality and a key differentiator.

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

Completeness3/5

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

Given that an output schema exists, the description doesn't need to detail return format. However, it omits how the tool handles ambiguous names, or how it selects verses (e.g., by direct mention or broader association). This leaves gaps for an AI agent to resolve, especially alongside similar sibling tools.

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

Parameters2/5

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

Schema description coverage is 0% for parameters, meaning the schema itself lacks meaningful descriptions. The tool description does not mention any parameter details (name, limit, translation) or how they affect results, forcing the agent to infer from parameter names and constraints.

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 tool returns verses about a biblical character and explicitly distinguishes itself from a curated biography database. This verb+resource combination is specific and differentiates from sibling tools like search_verse or get_verse.

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 usage for retrieving raw verses rather than biography, but it does not explicitly state when to use this tool versus alternatives like search_verse or topic_lookup. No exclusions or when-not-to-use guidance is provided.

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

cross_referenceA
Read-only

Find semantically related verses for a reference (not a curated cross-ref index).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior4/5

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

Annotations provide readOnlyHint=true, so the agent knows the operation is safe. The description adds value by clarifying the tool uses semantic matching ('not a curated cross-ref index'), which is a behavioral trait beyond the annotation. No contradictions.

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, front-loaded sentence with no wasted words. The parenthetical adds essential clarification without bloat. It earns its place.

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?

Despite having an output schema (reducing need to explain returns), the description does not address the input structure or constraints. It lacks guidance on how to use parameters like limit or translation, making it incomplete for a tool with moderate complexity.

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

Parameters1/5

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

The description does not mention any parameters or their roles. Schema description coverage is 0% (the tool description lacks param info), and while the schema itself has some field descriptions, the tool description adds no meaning beyond the schema. For a tool with three sub-parameters, this is insufficient.

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 'Find semantically related verses for a reference', specifying the verb ('Find') and resource ('semantically related verses'). It also distinguishes itself from a curated cross-ref index, differentiating it from siblings like search_verse or topic_lookup.

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 usage for finding related verses via semantic similarity rather than a curated index, but it does not explicitly state when to prefer this over alternatives like search_verse or topic_lookup. No exclusions or contextual conditions are provided.

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

get_passageA
Read-only

Retrieve a contiguous range of verses within one chapter.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations indicate readOnlyHint=true, so the description does not need to reiterate safety. However, no additional behavioral traits (e.g., error handling, missing chapters) are disclosed beyond the basic operation.

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?

Single sentence, concise, front-loaded with key action and scope. No wasted words.

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

Completeness3/5

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

With an output schema present, return format is covered, but the description omits details like translation default (null) and book name expectations. Adequate for a simple tool but could be more complete.

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

Parameters2/5

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

Schema description coverage is 0% (no property descriptions except translation). The description does not elaborate on parameter semantics (e.g., book format, verse numbering conventions), forcing reliance on the schema alone.

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?

Description explicitly states 'retrieve a contiguous range of verses within one chapter', clearly defining the verb and resource, and implicitly distinguishes from sibling tools like get_verse (single verse) and search_verse.

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?

No explicit guidance on when to use this tool versus alternatives, though the sibling names provide context. The description lacks when-not-to-use or alternative recommendations.

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

get_verseA
Read-only

Retrieve the exact text of a single verse.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, confirming safe read-only behavior. The description adds 'exact text' but no further behavioral traits (e.g., default translation, rate limits, or auth requirements). It is consistent but does not significantly augment the annotations.

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, front-loaded sentence with no extraneous words. Every word earns its place.

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

Completeness5/5

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

For a simple tool like this, with existing output schema and annotations, the description is sufficient. It clearly states the core functionality without needing elaboration.

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 input schema already includes descriptions for 'book' and 'translation' parameters. The description adds no new semantic information beyond the schema. Schema description coverage is partial; the description does not compensate for the missing chapter/verse descriptions.

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 explicitly states 'Retrieve the exact text of a single verse,' with a specific verb+resource combination that clearly distinguishes it from sibling tools like 'get_passage' (multiple verses) or 'search_verse' (search across verses).

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 guidance is provided on when to use this tool versus alternatives. The description does not mention sibling tools or specify conditions for use (e.g., when you need a single exact verse vs. a passage).

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

original_language_lookupA
Read-only

Explore a Greek/Hebrew term via related English passages (not a Strong's lexicon).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

The readOnlyHint annotation already indicates the tool is non-destructive. The description adds no further behavioral details (e.g., performance, required permissions, output format), but does not contradict the annotation.

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, front-loaded sentence with no extraneous words. It efficiently conveys the tool's purpose and differentiator.

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?

With an output schema available and unambiguous annotations, the description provides adequate context for a focused lookup tool. It could briefly explain what 'related English passages' means, but the core purpose is clear.

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 description mentions the core parameter 'term' but adds no details about 'limit', 'testament', or 'translation' beyond what the input schema already provides. Since the schema contains descriptions for most parameters, the description does not significantly enhance understanding.

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 tool's function: 'Explore a Greek/Hebrew term via related English passages'. It distinguishes itself from a Strong's lexicon and, by implication, from sibling tools like search_verse or cross_reference.

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 gives a negative hint ('not a Strong's lexicon') but lacks explicit when-to-use or when-not-to guidance. It does not reference alternative sibling tools or specify conditions for this tool over others.

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

search_verseB
Read-only

Find Bible verses by keyword or phrase using semantic search.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.2/5.0
Behavior3/5

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

Annotations provide readOnlyHint=true, so the tool's read-only nature is covered. The description adds 'semantic search' which hints at behavior, but does not disclose result behavior (e.g., empty results, ranking). No contradiction with annotations.

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 concise sentence with no wasted words. However, it may be too brief for a search tool, lacking parameter context.

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 multiple parameters and siblings of various lookup types, the description is incomplete. It does not mention the translation option, limit behavior, or when to prefer this over other lookup tools. The presence of an output schema reduces the need for return value description, but parameter usage guidance is missing.

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

Parameters1/5

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

Schema description coverage is 0%, and the description provides no parameter information. The schema includes query (required), limit (default 5, max 20), and translation (enum of 4), but the description adds no meaning to these parameters.

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 'Find Bible verses by keyword or phrase using semantic search' clearly states the verb (find), resource (Bible verses), and method (keyword/phrase semantic search). This distinguishes it from siblings like get_verse (exact verse retrieval) and get_passage (passage by reference).

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 usage for keyword/phrase searching, but lacks explicit guidance on when to use versus alternatives like get_verse or cross_reference. No when-not or exclusion criteria are provided.

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

summarize_passageB
Read-only

Fetch chapter text and instructions for the host model to summarize it.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior4/5

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

Annotations already indicate read-only (readOnlyHint: true). The description adds value by clarifying that summarization is performed by the host model, not the tool itself, and that it returns text and instructions.

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

Conciseness3/5

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

One sentence, concise but lacks detail. It is not precisely front-loaded and sacrifices completeness for brevity.

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 sibling tools, the description does not sufficiently differentiate use cases. Without more context about what 'instructions' are or how the output is structured (despite having an output schema), the description feels incomplete.

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

Parameters2/5

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

Schema description coverage is 0% per context, meaning the tool description does not explain parameters. The schema itself has some descriptions (e.g., translation and style), but the tool description fails to compensate for the lack of parameter documentation.

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

Purpose4/5

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

The description clearly states the tool fetches chapter text and instructions for summarization, distinguishing it from get_passage which likely only retrieves text. However, 'instructions' is somewhat vague.

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 guidance on when to use this tool versus siblings like get_passage, search_verse, etc. The description does not specify context or conditions.

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

theological_analysisC
Read-only

Assemble primary and related passages plus a question for theological analysis.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

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

The description does not add behavioral context beyond the readOnlyHint annotation. It does not explain what happens if the reference is invalid, or how related passages are determined.

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

Conciseness3/5

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

The description is a single short sentence, which is concise but at the expense of completeness. It does not fully earn its place as it lacks critical details.

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 complexity of theological analysis, the description is too minimal. Even with an output schema present, the description should clarify the nature of the assembled passages and the analysis performed.

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

Parameters2/5

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

Schema description coverage is low (only translation has a description). The description does not mention any parameters, leaving the agent to infer meaning from property names without format or constraint details.

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

Purpose3/5

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

The description states it assembles passages and a question for theological analysis, which gives a general idea. However, 'assemble' is ambiguous and does not clearly distinguish from sibling tools like 'summarize_passage' or 'cross_reference' that also deal with passages.

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 guidance is provided on when to use this tool versus alternatives. With nine sibling tools covering similar functionality, the lack of usage instructions is a significant gap.

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

timeline_event_lookupA
Read-only

Find verses describing a biblical event (no chronology database in v1).

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, and description is consistent. It adds the version-specific limitation ('no chronology database in v1'), which is valuable context. No additional behavioral details are needed given the output schema exists.

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?

Single sentence with no wasted words. The parenthetical adds crucial context without bloating. Excellent structure.

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 presence of an output schema and parameter descriptions, the description covers the core action and key limitation. It could briefly mention the result format, but the output schema suffices.

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 descriptions cover all parameters (event, limit, translation) with minLength, default, max, enum hints. The tool description adds no extra param info, so 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?

Description uses specific verb 'Find verses' and resource 'biblical event', clearly distinguishing from sibling tools like topic_lookup or character_profile. The parenthetical limitation further clarifies scope.

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?

Describes what the tool does ('Find verses') but provides no guidance on when to use it over alternatives like search_verse or topic_lookup. The limitation note implies a constraint but does not offer alternative tools.

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

topic_lookupA
Read-only

Find verses related to a theological topic via semantic search.

ParametersJSON Schema
NameRequiredDescriptionDefault
paramsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, so the description's 'semantic search' implies a read-only operation. It adds no further behavioral context such as performance characteristics or input constraints beyond what annotations cover. The description does not contradict annotations.

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?

A single, front-loaded sentence that efficiently conveys the tool's core function with no extraneous words or repetition.

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

Completeness3/5

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

Given the existence of an output schema, the description does not need to detail return values, but it omits usage tips for parameters like 'limit' or 'translation'. The tool's purpose is clear, but deeper guidance on effective use is absent.

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

Parameters2/5

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

Schema description coverage is 0%, and the description only explains the 'topic' parameter with an example ('e.g. grace or faith'). The 'limit' and 'translation' parameters lack explanatory context in the description, though the schema provides some enum descriptions for translation.

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 'Find verses related to a theological topic via semantic search' clearly states the action (find) and resource (verses) with a specific method (semantic search), distinguishing it from sibling tools like search_verse (likely keyword) and theological_analysis (likely analysis).

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 semantic search for broad topics but does not provide explicit guidance on when to use this tool versus alternatives like search_verse for exact phrases or get_verse for specific references. No exclusions or prerequisites are mentioned.

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. 10 tool updatesv0.1.0
    • First observedcharacter_profile
    • First observedcross_reference
    • First observedget_passage
    • First observedget_verse
    • First observedoriginal_language_lookup
    • First observedsearch_verse
    • First observedsummarize_passage
    • First observedtheological_analysis
    • First observedtimeline_event_lookup
    • First observedtopic_lookup

TDQS

B3.4/5.0

Scored across 10 tools

Disambiguation5/5

Each tool targets a distinct use case: semantic search, exact retrieval, passage ranges, cross-referencing, topical lookup, original language, character profiles, timeline events, summarization, and theological analysis. Overlap is minimal and clarified by descriptions.

Naming Consistency4/5

Most tools follow a verb_noun pattern (search_verse, get_verse, get_passage, summarize_passage) but some use noun_noun (character_profile, theological_analysis) or noun_verb (topic_lookup). The majority are clear and predictable, with only minor deviations.

Tool Count4/5

10 tools is appropriate for a Bible MCP covering search, retrieval, analysis, and reference operations. The count is well-scoped—not too few to be limiting, nor too many to overwhelm.

Completeness4/5

The tool set covers core Bible study workflows: searching, retrieving verses/passages, cross-references, topical and original language exploration, character and timeline lookups, plus summarization and theological analysis. Minor gaps like version selection or book listing are absent but not critical.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A complete MCP server for Retrieval-Augmented Generation with file management and vector memory for agents. Supports multiple document formats (PDF, DOCX, TXT, MD, CSV, JSON) with semantic search using Hugging Face embeddings and ChromaDB for efficient vector storage.
    11
    4 npm
    1
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    A lightweight MCP server that connects a local AI model (Ollama) with custom CRUD tools for an in-memory database, enabling natural language database management.
    -
  • A
    license
    A
    quality
    A
    maintenance
    Free, no-key MCP server for reading scripture from 35+ public-domain translations in 8 languages. Lets users fetch verses, chapters, and passages via natural language from any MCP client.
    7
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    PostgreSQL-backed MCP server for deep Bible study, integrating 140+ translations, Greek/Hebrew lexicons, cross-references, and semantic search.
    MIT