Skip to main content
Glama

VineVerse — Bible Knowledge Graph

The cross-reference corpus in aggregate

get_connections
Read-onlyIdempotent

Questions about the SHAPE of the cross-reference corpus rather than about one verse: which chapters are the hubs, which books lean on which, how much referencing crosses between the testaments.

With no argument, returns the totals plus the most-connected chapters and the strongest book-to-book pairs. Pass book for one book’s own incoming and outgoing rows, or osis for a single chapter’s rank and vote weight. Use find_cross_references instead when you want the actual references for a passage.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bookNoOne book, by OSIS id or slug, e.g. "John".
osisNoOne chapter, e.g. "Ps.119".
limitNoHow many rows per ranked list. Defaults to 20, capped at 200.
offsetNoFor paging, applied to every ranked list in the response. Each list carries its own total — topChaptersTotal, topBookPairsTotal, referencesOutTotal, referencesInTotal.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
bookNo
noteNo
errorNo
offsetNo
totalsNo
chapterNo
licenceNo
topChaptersNo
referencesInNo
topBookPairsNo
referencesOutNo
topChaptersCountNo
topChaptersTotalNo
referencesInCountNo
referencesInTotalNo
topBookPairsCountNo
topBookPairsTotalNo
referencesOutCountNo
referencesOutTotalNo

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so safety is covered. The description adds meaningful behavioral context: no-argument returns totals plus top-ranked chapters/book pairs, book returns incoming/outgoing rows, and osis returns rank and vote weight. This enriches the static schema and annotations without contradicting them.

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 front-loaded with the central purpose, then usage modes, then a clear pointer to the alternative. Every sentence carries important information; there is no redundancy with schema or annotations, and the length is appropriate for a parameter-rich aggregate tool.

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?

Because an output schema exists and annotations cover the read-only safety profile, the description does not need to list return fields. It covers the tool's purpose, all invocation modes, pagination behavior via the schema, and the key sibling alternative. This is complete for an agent to call the tool correctly.

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?

Schema coverage is 100%, so the baseline is 3. The description still adds value beyond the schema by explaining that book produces incoming and outgoing rows and osis produces a chapter's rank and vote weight, which is not in the parameter descriptions themselves. It also explains the default no-argument behavior, giving the agent a fuller picture of the 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 clearly states the tool answers aggregate questions about the shape of the cross-reference corpus, not one verse, and enumerates the specific outputs (totals, hub chapters, strongest book pairs, intertestamental links). It names a distinct sibling tool, find_cross_references, whose purpose is explicitly different, giving an agent an unambiguous basis for selection.

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

Usage Guidelines5/5

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

The description tells the agent exactly when to use this tool (questions about corpus shape) and when not to, saying 'Use find_cross_references instead when you want the actual references for a passage.' It also specifies the no-argument mode and the two parameter modes, making usage conditions explicit.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.4/5.0
Disambiguation4/5

Each tool targets a distinct retrieval task, and the only near-overlaps—get_connections vs find_cross_references, get_stats vs get_status, get_entity vs get_family—are clearly separated by the descriptions. An agent could occasionally hesitate between get_entity and get_family for genealogy, but the purpose statements make the boundary clear.

Naming Consistency4/5

All tool names use clear snake_case verb_noun phrasing, and most are get_* operations. There is a minor stylistic split between get_*, find_*, search_*, and list_*, which gives the set a slightly less uniform feel but is still predictable and readable enough for an agent.

Tool Count4/5

At 16 tools, this is slightly above the typical 3-15 range, but every tool covers a genuinely separate capability: passage lookup, concept search, graph queries, genealogy, interlinear, statistics, and service health. The count is large but reasonable for the breadth of a Bible knowledge graph.

Completeness5/5

For read-only knowledge-graph, the surface is well covered: known-lookup, text and concept search, browsing by collection, cross-references, graph neighborhoods, genealogy, places, interlinear, vocabulary, tags, and every diagnostics. get_stats and get_vocabulary together give an agent a reliable map of the whole domain, so there are no obvious dead ends.

Resources