Server definition
- Hash
- sha256:ea65d78e6b5090dcb07a938ba19b9de7886354675adc22b21dcde7f0430eafbd
- What it is
- What a remote MCP server returned when asked what it offers: 17 tools
The blob, as servednamed by its sha256
{
"instructions": "VineVerse exposes the Bible as a knowledge graph, built from public-domain Scripture and openly licensed scholarship. Call get_stats for the catalogue and exact counts.\n\nHOW TO USE IT. To find out what exists, use list_documents or get_stats — every collection can be paged through. To find something by name, use search_concepts with a `type` filter. To find a phrase in Scripture, use search_scripture. To read a passage with the people, places and themes it touches, use get_passage.\n\nTHINGS TO RESPECT. Cross references carry no relationship type — the corpus records that two passages are connected, not why — so do not present a connection as a claim the data does not make. Typed relations are stored one-directional: `parent-of` on a person names their CHILDREN, and get_family exists because reading it as parents inverts the tree. And the data is CC BY 4.0 — events under sa/ are CC BY-SA 4.0, which is viral — so if you surface it to a user, the attribution at https://vineverse.bible/attribution comes with it. VineVerse is free and funded by donations: https://vineverse.bible/support.",
"tools": [
{
"description": "Cross references for a verse or chapter, ordered by crowd support. The underlying corpus records THAT two passages are connected but never WHY, so these carry no relationship type — do not infer one. Chapter documents materialise only references at or above 20 votes, so a lower minVotes does not widen the result; the complete 341,289-row corpus ships as a dataset at references/cross-references.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"description": "How many references to return, highest-voted first. Defaults to 100, capped at 500.",
"maximum": 500,
"minimum": 1,
"type": "integer"
},
"minVotes": {
"description": "Minimum crowd support. 20 is the bundle floor.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"offset": {
"description": "For paging; compare with `total` in the response.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"osis": {
"description": "OSIS reference, e.g. \"John.3.16\"",
"type": "string"
}
},
"required": [
"osis"
],
"type": "object"
},
"name": "find_cross_references",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"count": {
"type": "number"
},
"licence": {
"additionalProperties": {},
"properties": {
"attribution": {
"type": "string"
},
"data": {
"type": "string"
},
"document": {
"type": "string"
},
"reason": {
"type": "string"
},
"shareAlike": {
"type": "string"
},
"text": {
"type": "string"
}
},
"type": "object"
},
"minVotes": {
"type": "number"
},
"note": {
"type": "string"
},
"offset": {
"type": "number"
},
"osis": {
"type": "string"
},
"references": {
"items": {
"additionalProperties": {},
"properties": {
"from": {
"type": "string"
},
"target": {
"type": "string"
},
"votes": {
"type": "number"
}
},
"required": [
"from",
"target",
"votes"
],
"type": "object"
},
"type": "array"
},
"threshold": {
"type": "number"
},
"total": {
"type": "number"
}
},
"required": [
"osis",
"minVotes",
"total",
"offset",
"count",
"threshold",
"references"
],
"type": "object"
}
},
{
"description": "Biblical places within a radius, nearest first, with the distance in kilometres. Anchor it on a place already in the knowledge base, or on a bare latitude and longitude when you are asking about a modern location that has no document here.\n\n~1,300 places carry coordinates. Many sites are identified only tentatively — check `contested` and `identifications` on the place document before treating a position as settled.\n\n`total` counts everything inside the radius, which a wide one puts well beyond a single page — walk the rest with `offset`, not by raising the radius.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"lat": {
"description": "Anchor latitude, if no place is given.",
"maximum": 90,
"minimum": -90,
"type": "number"
},
"limit": {
"description": "How many places to return, nearest first. Defaults to 25, capped at 200.",
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"lon": {
"description": "Longitude in decimal degrees. Must be given together with `lat`, and instead of `place`.",
"maximum": 180,
"minimum": -180,
"type": "number"
},
"offset": {
"description": "For paging; compare with `total` in the response. A wide radius holds far more than one page.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"place": {
"description": "Anchor place path, e.g. \"places/jerusalem\"",
"type": "string"
},
"radius": {
"description": "Kilometres. 50 by default.",
"maximum": 20000,
"minimum": 1,
"type": "integer"
}
},
"type": "object"
},
"name": "find_places_near",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"centre": {
"additionalProperties": {},
"properties": {
"lat": {
"type": "number"
},
"lon": {
"type": "number"
}
},
"required": [
"lat",
"lon"
],
"type": "object"
},
"count": {
"type": "number"
},
"licence": {
"additionalProperties": {},
"properties": {
"attribution": {
"type": "string"
},
"data": {
"type": "string"
},
"shareAlike": {
"type": "string"
},
"text": {
"type": "string"
}
},
"type": "object"
},
"note": {
"type": "string"
},
"offset": {
"type": "number"
},
"origin": {
"additionalProperties": {},
"properties": {
"degree": {
"type": "number"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"osis": {
"type": "string"
},
"shareAlike": {
"type": "boolean"
},
"strongs": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"id",
"title",
"type"
],
"type": "object"
},
"radiusKm": {
"type": "number"
},
"results": {
"items": {
"additionalProperties": {},
"properties": {
"degree": {
"type": "number"
},
"description": {
"type": "string"
},
"distanceKm": {
"type": "number"
},
"id": {
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"osis": {
"type": "string"
},
"shareAlike": {
"type": "boolean"
},
"strongs": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"id",
"title",
"type",
"distanceKm"
],
"type": "object"
},
"type": "array"
},
"total": {
"type": "number"
}
},
"required": [
"centre",
"radiusKm",
"total",
"offset",
"count",
"results"
],
"type": "object"
}
},
{
"description": "The knowledge base's own log file, plus when the data was actually ingested. Use `bundleGenerated` to answer \"how current is this\" or to cite a version — the `generated` field on get_stats is when this server built its in-memory index and changes on every restart, which is a fact about the process rather than the data.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"type": "object"
},
"name": "get_changelog",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"bundleGenerated": {
"type": "string"
},
"indexBuilt": {
"type": "string"
},
"licence": {
"additionalProperties": {},
"properties": {
"attribution": {
"type": "string"
},
"data": {
"type": "string"
},
"shareAlike": {
"type": "string"
},
"text": {
"type": "string"
}
},
"required": [
"text",
"data",
"shareAlike",
"attribution"
],
"type": "object"
},
"log": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"note": {
"type": "string"
},
"okfVersion": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"indexBuilt",
"log",
"url"
],
"type": "object"
}
},
{
"description": "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.\n\nWith 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.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"book": {
"description": "One book, by OSIS id or slug, e.g. \"John\".",
"type": "string"
},
"limit": {
"description": "How many rows per ranked list. Defaults to 20, capped at 200.",
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"offset": {
"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"
},
"osis": {
"description": "One chapter, e.g. \"Ps.119\".",
"type": "string"
}
},
"type": "object"
},
"name": "get_connections",
"outputSchema": {
"$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"
},
"offset": {
"type": "number"
},
"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"
},
"referencesInCount": {
"type": "number"
},
"referencesInTotal": {
"type": "number"
},
"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"
},
"referencesOutCount": {
"type": "number"
},
"referencesOutTotal": {
"type": "number"
},
"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"
},
"topBookPairsCount": {
"type": "number"
},
"topBookPairsTotal": {
"type": "number"
},
"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"
},
"topChaptersCount": {
"type": "number"
},
"topChaptersTotal": {
"type": "number"
},
"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"
}
},
{
"description": "Fetch any document in the knowledge base by path:\n People — people/moses\n Places — places/bethel-1\n Themes — themes/faith\n Lexemes — lexemes/h430\n Commandments — commandments/001-know-there-is-a-g-d\n Events — sa/events/exodus-from-egypt\n Epochs — epochs/david-reigns-in-jerusalem\n Books — bible/john\n Chapters — bible/john/3\n Sources — sources/bibledata\n Datasets — references/cross-references\n Schema — schema/relations\n\nReturns the document's structured fields, its typed relations in BOTH directions, what links to it, and optionally its full text. The inbound direction matters: the corpus stores each relation once, on one side only, so a person's parents live on their parents' documents and only relations.inbound recovers them.\n\nSet body=true for the prose — a lexeme's Strong's definition, a commandment's Hebrew, a theme's outline of verses all live in the body and nowhere else.\n\nWhere several people or places share a name the path is disambiguated with a number (people/zechariah-14, places/bethel-1) — search_concepts first if unsure. A collection path like \"themes\" or \"sources\" returns what that collection holds.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"backlinks": {
"description": "How many backlinks to return, 100 by default. `backlinkCount` always reports the true total and `backlinksTruncated` says whether you are seeing all of it.",
"maximum": 500,
"minimum": 0,
"type": "integer"
},
"body": {
"description": "Include the full markdown body. Default false.",
"type": "boolean"
},
"path": {
"description": "Document path, e.g. \"people/moses\", \"themes/faith\", \"lexemes/h430\", \"epochs/the-exile\"",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
},
"name": "get_entity",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"backlinkCount": {
"type": "number"
},
"backlinks": {
"items": {
"additionalProperties": {},
"properties": {
"degree": {
"type": "number"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"osis": {
"type": "string"
},
"shareAlike": {
"type": "boolean"
},
"strongs": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"id",
"title",
"type",
"degree"
],
"type": "object"
},
"type": "array"
},
"backlinksTruncated": {
"type": "boolean"
},
"body": {
"type": "string"
},
"collection": {
"additionalProperties": {},
"properties": {
"description": {
"type": "string"
},
"label": {
"type": "string"
},
"route": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"type",
"label",
"route"
],
"type": "object"
},
"count": {
"type": "number"
},
"degree": {
"type": "number"
},
"description": {
"type": "string"
},
"extension": {
"additionalProperties": {},
"properties": {
"license": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"source_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"vocabulary": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
}
},
"type": "object"
},
"generated": {
"additionalProperties": {},
"properties": {
"at": {
"type": "string"
},
"by": {
"type": "string"
}
},
"required": [
"by"
],
"type": "object"
},
"id": {
"type": "string"
},
"lat": {
"type": "number"
},
"licence": {
"additionalProperties": {},
"properties": {
"attribution": {
"type": "string"
},
"data": {
"type": "string"
},
"document": {
"type": "string"
},
"reason": {
"type": "string"
},
"shareAlike": {
"type": "string"
},
"text": {
"type": "string"
}
},
"required": [
"text",
"data",
"shareAlike",
"attribution"
],
"type": "object"
},
"linkCount": {
"type": "number"
},
"links": {
"items": {
"additionalProperties": {},
"properties": {
"degree": {
"type": "number"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"osis": {
"type": "string"
},
"shareAlike": {
"type": "boolean"
},
"strongs": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"id",
"title",
"type",
"degree"
],
"type": "object"
},
"type": "array"
},
"lon": {
"type": "number"
},
"note": {
"type": "string"
},
"osis": {
"type": "string"
},
"relations": {
"additionalProperties": {},
"properties": {
"inbound": {
"items": {
"additionalProperties": {},
"properties": {
"from": {
"type": "string"
},
"note": {
"type": "string"
},
"predicate": {
"type": "string"
},
"source": {
"type": "string"
},
"sourceType": {
"type": "string"
},
"statedAs": {
"type": "string"
},
"surface": {
"type": "string"
},
"title": {
"type": "string"
}
},
"required": [
"predicate",
"statedAs",
"source",
"title",
"sourceType"
],
"type": "object"
},
"type": "array"
},
"outbound": {
"items": {
"additionalProperties": {},
"properties": {
"from": {
"type": "string"
},
"note": {
"type": "string"
},
"predicate": {
"type": "string"
},
"source": {
"type": "string"
},
"surface": {
"type": "string"
},
"target": {
"type": "string"
},
"targetType": {
"type": "string"
},
"title": {
"type": "string"
},
"verses": {
"type": "number"
}
},
"required": [
"predicate",
"target",
"title"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"outbound",
"inbound"
],
"type": "object"
},
"sample": {
"items": {
"additionalProperties": {},
"properties": {
"degree": {
"type": "number"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"osis": {
"type": "string"
},
"shareAlike": {
"type": "boolean"
},
"strongs": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"id",
"title",
"type",
"degree"
],
"type": "object"
},
"type": "array"
},
"shareAlike": {
"type": "boolean"
},
"sources": {
"items": {
"additionalProperties": {},
"properties": {
"author": {
"type": "string"
},
"id": {
"type": "string"
},
"last_modified": {
"type": "string"
},
"resource": {
"type": "string"
},
"title": {
"type": "string"
},
"usage_count": {
"type": "number"
}
},
"required": [
"resource"
],
"type": "object"
},
"type": "array"
},
"stale": {
"type": "boolean"
},
"status": {
"type": "string"
},
"strongs": {
"type": "string"
},
"tags": {
"items": {
"type": "string"
},
"type": "array"
},
"title": {
"type": "string"
},
"trustTier": {
"type": "string"
},
"type": {
"type": "string"
},
"words": {
"type": "number"
}
},
"required": [
"id",
"title",
"type"
],
"type": "object"
}
},
{
"description": "Parents, children, siblings and spouses for any person, and with `generations` above 1 the line of descent — ancestors and descendants gathered one generation at a time. This is the tool for a genealogy, lineage or ancestry question: \"who were Boaz's ancestors\", \"trace David's line\", \"who did Ruth marry\".\n\nUse this rather than reading relations off get_entity. The corpus contains no `child-of` edge at all — parentage is recorded only on the parent's document — so a person's own `parent-of` relations are their CHILDREN, and reading them as parents inverts the family tree. This tool does the inversion.\n\nCalled family rather than genealogy because it returns kinship as well as descent, and because two other things here own that word. The 680 `ancestor-of` edges assert descent across an unknown number of generations, so they cannot be composed into a generation-by-generation tree and are excluded from this one — read them off get_entity if you want them. And the genealogy PASSAGES — Genesis 5 and 10, Ruth 4, Matthew 1, Luke 3 — are indexed as a theme at themes/genealogy.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"generations": {
"description": "Above 1, also returns ancestors and descendants generation by generation.",
"maximum": 10,
"minimum": 1,
"type": "integer"
},
"path": {
"description": "Person path, e.g. \"people/moses\"",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
},
"name": "get_family",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"ancestors": {
"items": {
"additionalProperties": {},
"properties": {
"generation": {
"type": "number"
},
"people": {
"items": {
"additionalProperties": {},
"properties": {
"degree": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"id",
"title",
"type"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"generation",
"people"
],
"type": "object"
},
"type": "array"
},
"children": {
"items": {
"additionalProperties": {},
"properties": {
"degree": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"id",
"title",
"type"
],
"type": "object"
},
"type": "array"
},
"descendants": {
"items": {
"additionalProperties": {},
"properties": {
"generation": {
"type": "number"
},
"people": {
"items": {
"additionalProperties": {},
"properties": {
"degree": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"id",
"title",
"type"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"generation",
"people"
],
"type": "object"
},
"type": "array"
},
"error": {
"type": "string"
},
"licence": {
"additionalProperties": {},
"properties": {
"attribution": {
"type": "string"
},
"data": {
"type": "string"
},
"document": {
"type": "string"
},
"reason": {
"type": "string"
},
"shareAlike": {
"type": "string"
},
"text": {
"type": "string"
}
},
"type": "object"
},
"note": {
"type": "string"
},
"parents": {
"items": {
"additionalProperties": {},
"properties": {
"degree": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"id",
"title",
"type"
],
"type": "object"
},
"type": "array"
},
"person": {
"additionalProperties": {},
"properties": {
"degree": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"osis": {
"type": "string"
},
"shareAlike": {
"type": "boolean"
},
"strongs": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"id",
"title",
"type"
],
"type": "object"
},
"siblings": {
"items": {
"additionalProperties": {},
"properties": {
"degree": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"id",
"title",
"type"
],
"type": "object"
},
"type": "array"
},
"spouses": {
"items": {
"additionalProperties": {},
"properties": {
"degree": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"id",
"title",
"type"
],
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
},
{
"description": "Everything within N hops of a document, WITH the edges that connect them and the predicate on each. Useful for asking what a passage, person or theme is connected to without fetching each document.\n\nFilter with `type` to ask a shaped question — the places near an event, the people in an epoch — and with `predicate` to keep only one kind of edge. Depth 1 is direct links; depth 3 gets large quickly and is capped. See get_vocabulary for what each predicate means.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"depth": {
"description": "How many hops out from the starting document. Defaults to 1. Capped at 3 — the graph fans out fast.",
"maximum": 3,
"minimum": 1,
"type": "integer"
},
"limit": {
"description": "Cap on nodes returned. Defaults to 200, capped at 600. The response sets `truncated` when it bites.",
"maximum": 600,
"minimum": 1,
"type": "integer"
},
"offset": {
"description": "For paging the node list, in the walk order the response returns. Edges are those internal to the page, so one that spans a page boundary appears on neither — fetch the neighbourhood in a single call if you need the edges whole.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"path": {
"description": "Document path, e.g. \"people/david\" or \"themes/faith\"",
"type": "string"
},
"predicate": {
"description": "Keep only edges with this predicate, e.g. \"develops\".",
"type": "string"
},
"type": {
"description": "Keep only neighbours of this type: Person, Place, Theme, Lexeme, Commandment, Event, Epoch, Book, Chapter, Source, Dataset, Relation Vocabulary.",
"type": "string"
}
},
"required": [
"path"
],
"type": "object"
},
"name": "get_graph_neighborhood",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"count": {
"type": "number"
},
"depth": {
"type": "number"
},
"edgeCount": {
"type": "number"
},
"edges": {
"items": {
"additionalProperties": {},
"properties": {
"kind": {
"type": "string"
},
"predicate": {
"type": "string"
},
"source": {
"type": "string"
},
"target": {
"type": "string"
}
},
"required": [
"source",
"target",
"kind"
],
"type": "object"
},
"type": "array"
},
"licence": {
"additionalProperties": {},
"properties": {
"attribution": {
"type": "string"
},
"data": {
"type": "string"
},
"shareAlike": {
"type": "string"
},
"text": {
"type": "string"
}
},
"type": "object"
},
"nodes": {
"items": {
"additionalProperties": {},
"properties": {
"degree": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"description": {
"type": "string"
},
"distance": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"id": {
"type": "string"
},
"lat": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"lon": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"osis": {
"type": "string"
},
"shareAlike": {
"type": "boolean"
},
"strongs": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"id",
"title",
"type"
],
"type": "object"
},
"type": "array"
},
"note": {
"type": "string"
},
"offset": {
"type": "number"
},
"root": {
"type": "string"
},
"total": {
"type": "number"
},
"truncated": {
"type": "boolean"
}
},
"required": [
"root",
"depth",
"total",
"offset",
"count",
"truncated",
"nodes",
"edgeCount",
"edges"
],
"type": "object"
}
},
{
"description": "The Hebrew, Aramaic or Greek behind the English, word by word, for one verse or a whole chapter. This is a REVERSE interlinear: entries are in English order and each carries the range of English words it produced, so a word in the translation can be traced to the word it renders. Each entry gives the original, its transliteration, its morphology spelled out, and its Strong’s number; `lexeme` is present only where the bundle carries a document for that number — the lexicon holds the words that spell a biblical name plus their roots, not all 8,674 Strong’s entries, and there is no Greek lexicon at all. Five verses carry no data because the two Berean editions disagree about their wording; they are named in the changelog.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"osis": {
"description": "OSIS reference — a verse (\"John.3.16\") or a whole chapter (\"John.3\")",
"type": "string"
}
},
"required": [
"osis"
],
"type": "object"
},
"name": "get_interlinear",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"licence": {
"additionalProperties": {},
"properties": {
"document": {
"type": "string"
},
"note": {
"type": "string"
}
},
"type": "object"
},
"reference": {
"type": "string"
},
"translation": {
"type": "string"
},
"verses": {
"items": {
"additionalProperties": {},
"properties": {
"osis": {
"type": "string"
},
"reference": {
"type": "string"
},
"words": {
"items": {
"additionalProperties": {},
"properties": {
"english": {
"type": "string"
},
"from": {
"type": "number"
},
"language": {
"type": "string"
},
"lexeme": {
"type": "string"
},
"parsing": {
"type": "string"
},
"strongs": {
"type": "string"
},
"to": {
"type": "number"
},
"transliteration": {
"type": "string"
},
"word": {
"type": "string"
}
},
"required": [
"from",
"to",
"language",
"word",
"transliteration",
"parsing",
"strongs",
"english"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"osis",
"reference",
"words"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"reference",
"translation",
"verses"
],
"type": "object"
}
},
{
"description": "Fetch a verse, a verse range or a whole chapter by OSIS reference. One verse: \"John.3.16\". A range: \"John.3.16-18\". A chapter: \"John.3\".\n\nA verse or range comes back with its context: who is speaking, which people and places each verse names, which THEMES it develops, its cross references, and what points at it — the commandments stated there, the events and epochs narrated there. That context is the main way into the topical side of the knowledge base from a passage.\n\nText is the Berean Standard Bible. Sixteen verses are intentionally empty where the Berean edition omits them on manuscript grounds; the verse number is still present so numbering matches other translations.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"osis": {
"description": "OSIS reference: \"John.3.16\", \"John.3.16-18\", \"Ps.23\" or \"1Sam.17.45\"",
"type": "string"
}
},
"required": [
"osis"
],
"type": "object"
},
"name": "get_passage",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"backlinkCount": {
"type": "number"
},
"backlinks": {
"items": {
"additionalProperties": {},
"properties": {
"degree": {
"type": "number"
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"osis": {
"type": "string"
},
"shareAlike": {
"type": "boolean"
},
"strongs": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"id",
"title",
"type"
],
"type": "object"
},
"type": "array"
},
"backlinksTruncated": {
"type": "boolean"
},
"book": {
"additionalProperties": {},
"properties": {
"chapters": {
"type": "number"
},
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"slug": {
"type": "string"
},
"testament": {
"type": "string"
}
},
"required": [
"id",
"name",
"slug",
"testament"
],
"type": "object"
},
"chapter": {
"anyOf": [
{
"type": "number"
},
{
"additionalProperties": {},
"properties": {
"next": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"osis": {
"type": "string"
},
"previous": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"url": {
"type": "string"
},
"verseCount": {
"type": "number"
}
},
"required": [
"osis"
],
"type": "object"
}
]
},
"context": {
"additionalProperties": {},
"properties": {
"crossReferences": {
"items": {
"additionalProperties": {},
"properties": {
"osis": {
"type": "string"
},
"target": {
"type": "string"
}
},
"required": [
"target"
],
"type": "object"
},
"type": "array"
},
"people": {
"items": {
"additionalProperties": {},
"properties": {
"id": {
"type": "string"
},
"note": {
"type": "string"
},
"osis": {
"type": "string"
},
"surface": {
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"type": "array"
},
"places": {
"items": {
"additionalProperties": {},
"properties": {
"id": {
"type": "string"
},
"note": {
"type": "string"
},
"osis": {
"type": "string"
},
"surface": {
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"type": "array"
},
"referencedBy": {
"items": {
"additionalProperties": {},
"properties": {
"id": {
"type": "string"
},
"osis": {
"type": "string"
},
"predicate": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"id",
"title",
"type",
"predicate"
],
"type": "object"
},
"type": "array"
},
"themes": {
"items": {
"additionalProperties": {},
"properties": {
"id": {
"type": "string"
},
"note": {
"type": "string"
},
"osis": {
"type": "string"
},
"surface": {
"type": "string"
}
},
"required": [
"id"
],
"type": "object"
},
"type": "array"
}
},
"type": "object"
},
"id": {
"type": "string"
},
"licence": {
"additionalProperties": {},
"properties": {
"attribution": {
"type": "string"
},
"data": {
"type": "string"
},
"document": {
"type": "string"
},
"reason": {
"type": "string"
},
"shareAlike": {
"anyOf": [
{
"type": "string"
},
{
"type": "boolean"
}
]
},
"text": {
"type": "string"
}
},
"type": "object"
},
"next": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"note": {
"type": "string"
},
"omitted": {
"type": "boolean"
},
"omittedVerses": {
"items": {},
"type": "array"
},
"osis": {
"type": "string"
},
"previous": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
]
},
"reference": {
"type": "string"
},
"relations": {
"items": {
"additionalProperties": {},
"properties": {
"from": {
"type": "string"
},
"note": {
"type": "string"
},
"predicate": {
"type": "string"
},
"source": {
"type": "string"
},
"surface": {
"type": "string"
},
"target": {
"type": "string"
},
"verses": {}
},
"required": [
"predicate",
"target"
],
"type": "object"
},
"type": "array"
},
"speakers": {
"items": {},
"type": "array"
},
"text": {
"type": "string"
},
"translation": {
"type": "string"
},
"url": {
"type": "string"
},
"verseCount": {
"type": "number"
},
"verses": {
"items": {
"additionalProperties": {},
"properties": {
"omitted": {
"type": "boolean"
},
"osis": {
"type": "string"
},
"speaker": {
"type": "string"
},
"text": {
"type": "string"
},
"verse": {
"type": "number"
}
},
"required": [
"verse",
"osis",
"text"
],
"type": "object"
},
"type": "array"
},
"versification": {
"type": "string"
}
},
"required": [
"osis",
"book",
"verses"
],
"type": "object"
}
},
{
"description": "The catalogue: every collection with its document count, its folder, an example path and what it contains, plus graph totals, the most common tags and the licences the data is available under. Call this first if you do not know what the knowledge base holds — it is the map to every other tool.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"type": "object"
},
"name": "get_stats",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"books": {
"type": "number"
},
"brokenLinks": {
"type": "number"
},
"chapters": {
"type": "number"
},
"collections": {
"items": {
"additionalProperties": {},
"properties": {
"count": {
"type": "number"
},
"description": {
"type": "string"
},
"example": {
"type": "string"
},
"folder": {
"type": "string"
},
"label": {
"type": "string"
},
"route": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"type",
"label",
"count",
"folder",
"example",
"description"
],
"type": "object"
},
"type": "array"
},
"conceptEdges": {
"type": "number"
},
"connections": {
"type": "number"
},
"edges": {
"type": "number"
},
"edgesNote": {
"type": "string"
},
"generated": {
"type": "string"
},
"generatedNote": {
"type": "string"
},
"licence": {
"additionalProperties": {},
"properties": {
"attribution": {
"type": "string"
},
"data": {
"type": "string"
},
"shareAlike": {
"type": "string"
},
"text": {
"type": "string"
}
},
"type": "object"
},
"notes": {
"type": "number"
},
"okfVersion": {
"type": "string"
},
"orphans": {
"type": "number"
},
"tags": {
"type": "number"
},
"topTags": {
"items": {
"additionalProperties": {},
"properties": {
"count": {
"type": "number"
},
"name": {
"type": "string"
}
},
"required": [
"name",
"count"
],
"type": "object"
},
"type": "array"
},
"types": {
"items": {
"type": "string"
},
"type": "array"
},
"uncatalogued": {
"items": {
"additionalProperties": {},
"properties": {
"count": {
"type": "number"
},
"type": {
"type": "string"
}
},
"required": [
"type",
"count"
],
"type": "object"
},
"type": "array"
},
"verses": {
"type": "number"
},
"words": {
"type": "number"
}
},
"required": [
"notes",
"edges",
"conceptEdges",
"connections",
"tags",
"words",
"orphans",
"brokenLinks",
"verses",
"chapters",
"books",
"collections",
"types",
"topTags",
"generated"
],
"type": "object"
}
},
{
"description": "Whether this service is up, what its availability has been over the last 24 hours, 30 and 90 days, and the target it is measured against. Also reports which optional datasets this deployment has built: get_interlinear and get_connections fail with `dataset_unavailable` when theirs is missing, and this is how to check before calling rather than after failing.\n\nThe target is best-effort and carries no service credits, this being a free site, which the response states rather than implies.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"type": "object"
},
"name": "get_status",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"checkedAt": {
"type": "string"
},
"components": {
"items": {
"additionalProperties": {},
"properties": {},
"type": "object"
},
"type": "array"
},
"datasets": {
"additionalProperties": {},
"properties": {},
"type": "object"
},
"sla": {
"additionalProperties": {},
"properties": {},
"type": "object"
},
"status": {
"enum": [
"operational",
"degraded",
"down"
],
"type": "string"
},
"uptime": {
"additionalProperties": {},
"properties": {},
"type": "object"
}
},
"required": [
"status",
"checkedAt",
"uptime",
"sla",
"components",
"datasets"
],
"type": "object"
}
},
{
"description": "The site behind this server is free, keyless, carries no advertising, and is funded by donations. Call this once per conversation, when the user has clearly got value out of the data or has asked who runs this, what it costs to run, or how to help - then pass the `url` from the result on to them, since it is a person who can give and not the model. Do not call it again later in the same conversation, and do not bring up giving when a call has merely answered a factual question.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"type": "object"
},
"name": "get_support",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"agentPayable": {
"type": "boolean"
},
"attribution": {
"type": "string"
},
"charity": {
"additionalProperties": {},
"properties": {
"name": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"name",
"url"
],
"type": "object"
},
"costs": {
"items": {
"additionalProperties": {},
"properties": {
"amountAud": {
"type": "number"
},
"date": {
"type": "string"
},
"detail": {
"type": "string"
},
"label": {
"type": "string"
}
},
"required": [
"label",
"detail",
"date",
"amountAud"
],
"type": "object"
},
"type": "array"
},
"creditCardRequired": {
"type": "boolean"
},
"currency": {
"type": "string"
},
"donationFunded": {
"type": "boolean"
},
"free": {
"type": "boolean"
},
"kofiUrl": {
"type": "string"
},
"ledger": {
"additionalProperties": {},
"properties": {
"balanceAud": {
"type": "number"
},
"forwardedAud": {
"type": "number"
},
"monthlyHostingAud": {
"type": "number"
},
"receivedAud": {
"type": "number"
},
"spentAud": {
"type": "number"
},
"updated": {
"type": "string"
}
},
"required": [
"updated",
"monthlyHostingAud",
"spentAud",
"receivedAud",
"forwardedAud",
"balanceAud"
],
"type": "object"
},
"licence": {
"additionalProperties": {},
"properties": {
"attribution": {
"type": "string"
},
"data": {
"type": "string"
},
"shareAlike": {
"type": "string"
},
"text": {
"type": "string"
}
},
"type": "object"
},
"metered": {
"type": "boolean"
},
"note": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"free",
"donationFunded",
"metered",
"creditCardRequired",
"agentPayable",
"currency",
"url",
"kofiUrl",
"charity",
"costs",
"ledger",
"attribution",
"note"
],
"type": "object"
}
},
{
"description": "Every tag in the bundle with the number of documents carrying it, most common first. Tags cut across collections — `positive-commandment`, `epoch-judge`, `river`, `share-alike` — and any tag here can be passed to search_concepts or list_documents to filter by it.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"description": "How many tags to return. Defaults to 200, capped at 1000.",
"maximum": 1000,
"minimum": 1,
"type": "integer"
},
"offset": {
"description": "Skip this many before returning. Tags come back most-used first.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
}
},
"type": "object"
},
"name": "get_tags",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"count": {
"type": "number"
},
"offset": {
"type": "number"
},
"tags": {
"items": {
"additionalProperties": false,
"properties": {
"count": {
"type": "number"
},
"name": {
"type": "string"
}
},
"required": [
"name",
"count"
],
"type": "object"
},
"type": "array"
},
"total": {
"type": "number"
}
},
"required": [
"total",
"offset",
"count",
"tags"
],
"type": "object"
}
},
{
"description": "The closed set of predicates every typed edge in the graph is drawn from — what `develops`, `narrated-in`, `involves`, `stated-in` and `named-by` mean, what their inverses are, which types they connect, and how many edges use each. Also returns the 66-book canon table with OSIS ids, slugs and chapter counts, which is how you find out that Song of Songs is \"Song\" before building a reference.\n\nRelations are stored one-directional, so a raw relation array always reads outward from the document you fetched. Read this before interpreting a predicate.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {},
"type": "object"
},
"name": "get_vocabulary",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"books": {
"items": {
"additionalProperties": {},
"properties": {
"chapters": {
"type": "number"
},
"name": {
"type": "string"
},
"order": {
"type": "number"
},
"osisId": {
"type": "string"
},
"path": {
"type": "string"
},
"slug": {
"type": "string"
},
"testament": {
"type": "string"
}
},
"required": [
"osisId",
"name",
"slug",
"testament",
"order",
"chapters",
"path"
],
"type": "object"
},
"type": "array"
},
"licence": {
"additionalProperties": {},
"properties": {
"attribution": {
"type": "string"
},
"data": {
"type": "string"
},
"shareAlike": {
"type": "string"
},
"text": {
"type": "string"
}
},
"type": "object"
},
"note": {
"type": "string"
},
"predicates": {
"items": {
"additionalProperties": {},
"properties": {
"domain": {
"type": "string"
},
"edges": {
"type": "number"
},
"heading": {
"type": "string"
},
"id": {
"type": "string"
},
"inverse": {
"type": "string"
},
"range": {
"type": "string"
},
"symmetric": {
"type": "boolean"
}
},
"required": [
"id",
"edges"
],
"type": "object"
},
"type": "array"
},
"undeclared": {
"items": {
"additionalProperties": {},
"properties": {
"edges": {
"type": "number"
},
"id": {
"type": "string"
}
},
"required": [
"id",
"edges"
],
"type": "object"
},
"type": "array"
}
},
"required": [
"predicates",
"undeclared",
"books"
],
"type": "object"
}
},
{
"description": "Browse or page through any collection in the knowledge base. This is the tool to reach for when you want to know WHAT EXISTS rather than to look one thing up — \"what events are recorded\", \"list the epochs in order\", \"show me the 613 commandments\".\n\nCollections: Person (people/), Place (places/), Theme (themes/), Lexeme (lexemes/), Commandment (commandments/), Event (sa/events/), Epoch (epochs/), Book (bible/), Chapter (bible/), Source (sources/), Dataset (references/), Relation Vocabulary (schema/).\n\nEpochs and events default to chronological order, so a single call answers \"what happened, in sequence\". Everything else defaults to alphabetical. Use offset with total to page: the response says how many matched and whether more remain.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"folder": {
"description": "Restrict by bundle folder prefix, e.g. \"bible/john\" for one book's chapters. This is the only way to scope a listing by path rather than by type — Books and Chapters share the bible/ folder, so `type` cannot express it.",
"type": "string"
},
"limit": {
"description": "How many to return. Defaults to 50, capped at 200.",
"maximum": 200,
"minimum": 1,
"type": "integer"
},
"offset": {
"description": "Skip this many before returning. Use with `total` in the response to page.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"sort": {
"description": "title = alphabetical; degree = most-connected first; canonical = Bible order; chronological = by start year (epochs) or narrative order (events).",
"enum": [
"title",
"degree",
"canonical",
"chronological"
],
"type": "string"
},
"tag": {
"description": "Only documents carrying this tag. See get_tags for the vocabulary.",
"type": "string"
},
"type": {
"description": "Collection to list. One of: Person, Place, Theme, Lexeme, Commandment, Event, Epoch, Book, Chapter, Source, Dataset, Relation Vocabulary. Plurals and folder names also work (\"themes\", \"sa/events\"). Omit to list everything.",
"type": "string"
}
},
"type": "object"
},
"name": "list_documents",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"available": {
"items": {
"type": "string"
},
"type": "array"
},
"collection": {
"type": "string"
},
"count": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"error": {
"type": "string"
},
"hasMore": {
"type": "boolean"
},
"licence": {
"additionalProperties": {},
"properties": {
"attribution": {
"type": "string"
},
"data": {
"type": "string"
},
"document": {
"type": "string"
},
"reason": {
"type": "string"
},
"shareAlike": {
"type": "string"
},
"text": {
"type": "string"
}
},
"type": "object"
},
"note": {
"type": "string"
},
"offset": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"results": {
"items": {
"additionalProperties": {},
"properties": {
"degree": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"description": {
"type": "string"
},
"endYearAH": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"epochType": {
"type": "string"
},
"id": {
"type": "string"
},
"lat": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"lengthYears": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"lon": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"number": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"occurrences": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"osis": {
"type": "string"
},
"polarity": {
"type": "string"
},
"shareAlike": {
"type": "boolean"
},
"startYearAH": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"strongs": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
},
"verseCount": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"title",
"type"
],
"type": "object"
},
"type": "array"
},
"sort": {
"type": "string"
},
"tag": {
"type": "string"
},
"total": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"type": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "Search every document in the knowledge base by name, description, tag, path and type — people, places, themes, lexemes, commandments, events, epochs, books, chapters, sources and datasets alike.\n\nAll terms must match (AND), so adding a word narrows the result. Use `type` to stop one collection swamping another: there are ~3,000 people AND ~3,000 themes, so an unfiltered name query is a coin flip between a person and a topic.\n\nThis searches concept METADATA. To find a phrase in the text of Scripture use search_scripture; to fetch a reference you already know use get_passage.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"description": "How many matches to return. Defaults to 25, capped at 100.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"description": "For paging; compare with `total` in the response.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"query": {
"description": "One or more words, e.g. \"sea galilee\" or \"zechariah king\"",
"type": "string"
},
"tag": {
"description": "Restrict to documents carrying this tag.",
"type": "string"
},
"type": {
"description": "Restrict to one collection: Person, Place, Theme, Lexeme, Commandment, Event, Epoch, Book, Chapter, Source, Dataset, Relation Vocabulary.",
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_concepts",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"count": {
"type": "number"
},
"offset": {
"type": "number"
},
"query": {
"type": "string"
},
"results": {
"items": {
"additionalProperties": {},
"properties": {
"degree": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"description": {
"type": "string"
},
"id": {
"type": "string"
},
"lat": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"lon": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
]
},
"osis": {
"type": "string"
},
"shareAlike": {
"type": "boolean"
},
"strongs": {
"type": "string"
},
"title": {
"type": "string"
},
"type": {
"type": "string"
}
},
"required": [
"id",
"title",
"type"
],
"type": "object"
},
"type": "array"
},
"tag": {
"type": "string"
},
"total": {
"type": "number"
},
"type": {
"type": "string"
}
},
"required": [
"query",
"total",
"offset",
"count",
"results"
],
"type": "object"
}
},
{
"description": "Full-text search across all 31,102 verses of the Berean Standard Bible. This is how you find a passage you can half-remember but cannot cite: \"a still small voice\", \"faith hope love\".\n\nAll words must appear in the same verse. Wrap words in double quotes to require them adjacent as a phrase. Results are ranked by how much of the verse is your query, so short exact matches come first. Restrict with book or testament when a common word would otherwise match hundreds of verses.",
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"book": {
"description": "Restrict to one book, by slug or OSIS id, e.g. \"john\" or \"John\". See get_vocabulary.",
"type": "string"
},
"limit": {
"description": "How many verses to return. Defaults to 25, capped at 100.",
"maximum": 100,
"minimum": 1,
"type": "integer"
},
"offset": {
"description": "Skip this many verses before returning. Use with `total` to page.",
"maximum": 9007199254740991,
"minimum": 0,
"type": "integer"
},
"query": {
"description": "Words to find, e.g. `still small voice` or `\"the word became flesh\"`",
"type": "string"
},
"testament": {
"description": "Restrict to the Old or New Testament. Omit to search all 66 books.",
"enum": [
"OT",
"NT"
],
"type": "string"
}
},
"required": [
"query"
],
"type": "object"
},
"name": "search_scripture",
"outputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"properties": {
"count": {
"type": "number"
},
"hits": {
"items": {
"additionalProperties": {},
"properties": {
"book": {
"type": "string"
},
"osis": {
"type": "string"
},
"reference": {
"type": "string"
},
"testament": {
"type": "string"
},
"text": {
"type": "string"
},
"url": {
"type": "string"
}
},
"required": [
"osis",
"reference",
"url",
"text",
"book",
"testament"
],
"type": "object"
},
"type": "array"
},
"offset": {
"type": "number"
},
"phrases": {
"items": {
"type": "string"
},
"type": "array"
},
"query": {
"type": "string"
},
"terms": {
"items": {
"type": "string"
},
"type": "array"
},
"total": {
"type": "number"
}
},
"required": [
"query",
"total",
"count",
"offset",
"hits",
"terms",
"phrases"
],
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:ea65d78e6b5090dcb07a938ba19b9de7886354675adc22b21dcde7f0430eafbd | sha256sum