Skip to main content
Glama
DataCraftsmanAU

DataCraftsmanAU/vineverse-mcp

The cross-reference corpus in aggregate

get_connections
Read-onlyIdempotent

Identify the hubs and strong ties in the Bible cross-reference graph. See totals, most-connected chapters, and top book-to-book pairs, or filter by book or chapter for its own rank and weight.

Instructions

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

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed10 schema fields changedv1.0.6
    • addedInput schema / properties / offset
      Added value: +{
      +  "description": "For paging, applied to every ranked list in the response. Each list carries its own total — topChaptersTotal, topBookPairsTotal, referencesOutTotal, referencesInTotal.",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / offset
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / referencesInCount
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / referencesInTotal
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / referencesOutCount
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / referencesOutTotal
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / topBookPairsCount
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / topBookPairsTotal
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / topChaptersCount
      Added value: +{
      +  "type": "number"
      +}
    • addedOutput schema / properties / topChaptersTotal
      Added value: +{
      +  "type": "number"
      +}
  2. Changed1 schema field changedv1.0.3
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "https://json-schema.org/draft/2020-12/schema",
      +  "additionalProperties": {},
      +  "properties": {
      +    "book": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "name": {
      +          "type": "string"
      +        },
      +        "osisId": {
      +          "type": "string"
      +        },
      +        "slug": {
      +          "type": "string"
      +        },
      +        "testament": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "osisId",
      +        "name",
      +        "slug"
      +      ],
      +      "type": "object"
      +    },
      +    "chapter": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "linkedChapters": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "osis": {
      +          "type": "string"
      +        },
      +        "rank": {
      +          "type": "string"
      +        },
      +        "reference": {
      +          "type": "string"
      +        },
      +        "url": {
      +          "type": "string"
      +        },
      +        "verses": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        },
      +        "votes": {
      +          "anyOf": [
      +            {
      +              "type": "number"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ]
      +        }
      +      },
      +      "required": [
      +        "osis",
      +        "reference",
      +        "url"
      +      ],
      +      "type": "object"
      +    },
      +    "error": {
      +      "type": "string"
      +    },
      +    "licence": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "attribution": {
      +          "type": "string"
      +        },
      +        "data": {
      +          "type": "string"
      +        },
      +        "shareAlike": {
      +          "type": "string"
      +        },
      +        "text": {
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "note": {
      +      "type": "string"
      +    },
      +    "referencesIn": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "book": {
      +            "type": "string"
      +          },
      +          "count": {
      +            "type": "number"
      +          },
      +          "osisId": {
      +            "type": "string"
      +          },
      +          "votes": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "book",
      +          "osisId",
      +          "count"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "referencesOut": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "book": {
      +            "type": "string"
      +          },
      +          "count": {
      +            "type": "number"
      +          },
      +          "osisId": {
      +            "type": "string"
      +          },
      +          "votes": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "book",
      +          "osisId",
      +          "count"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "topBookPairs": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "count": {
      +            "type": "number"
      +          },
      +          "crossTestament": {
      +            "type": "boolean"
      +          },
      +          "from": {
      +            "type": "string"
      +          },
      +          "to": {
      +            "type": "string"
      +          },
      +          "votes": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "from",
      +          "to",
      +          "count"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "topChapters": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "linkedChapters": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "osis": {
      +            "type": "string"
      +          },
      +          "reference": {
      +            "type": "string"
      +          },
      +          "url": {
      +            "type": "string"
      +          },
      +          "verses": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "votes": {
      +            "anyOf": [
      +              {
      +                "type": "number"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          }
      +        },
      +        "required": [
      +          "osis",
      +          "reference",
      +          "url"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "totals": {
      +      "additionalProperties": {},
      +      "properties": {
      +        "arcs": {
      +          "type": "number"
      +        },
      +        "chapters": {
      +          "type": "number"
      +        },
      +        "crossTestament": {
      +          "type": "number"
      +        },
      +        "distinctPairs": {
      +          "type": "number"
      +        },
      +        "generated": {
      +          "type": "string"
      +        },
      +        "references": {
      +          "type": "number"
      +        },
      +        "selfPairs": {
      +          "type": "number"
      +        },
      +        "source": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "references",
      +        "distinctPairs",
      +        "arcs",
      +        "selfPairs",
      +        "crossTestament",
      +        "chapters"
      +      ],
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
  3. First observedv1.0.1

TDQS

A4.7/5.0
Behavior4/5

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

The annotations already cover read-only, idempotent, non-destructive behavior. The description adds meaningful behavioral context: no argument returns totals and leading hubs/pairs, book returns incoming and outgoing rows, and osis returns a single chapter’s rank and vote weight. It is honest and consistent with the annotations, though it does not mention any rate limits or query-specific caveats.

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 efficient: two short paragraphs, each sentence earns its place, and the differentiating clause comes first. It front-loads the core concepts and immediately points to the sibling tool for alternative use.

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?

Given the presence of an output schema, four non-required parameters, and comprehensive annotations, the description is sufficient for an agent to select and invoke the tool correctly. It covers all invocation modes, tells the read-only nature through annotations, and provides the routing rule to find_cross_references. Nothing essential is missing.

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 schema already documents all four parameters with descriptions, list, and default, so the schema is doing heavy lifting. The description adds value by mapping book and osis to the kind of aggregate vs. table vs. single-chapter response. It does not repeat parameter syntax and leaves limit/offset details to 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 states a specific verb and resource: it answers questions about the SHAPE of the cross-reference corpus, not individual verse references. It enumerates concrete examples like hub chapters, book-to-book leanings, and cross-testament referencing. It also distinguishes itself from find_cross_references, which is for actual passage references.

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 says precisely when to use this tool: for aggregate corpus questions rather than one passage. It also names the alternative, find_cross_references, and gives the exact condition for choosing it. It clarifies the three call modes: no argument, book, or osis.

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