Developers
Open, programmatic access to the corpus.
Royal Archives is an open, linked library of the Scriptures and the Church Fathers — Scripture, patristic works, and reference encyclopedias cross-referenced into a single corpus, patristic-catena centered. Most of that corpus is openly readable by machines as well as people. This page documents the programmatic ways in: a Model Context Protocol server for AI agents, standard OPDS and RSS feeds for e-reader and feed apps, a linked cross-reference graph, and the underlying catalog and entity data as JSON.
Everything here is read-only retrieval over already-public material. Please be considerate with request volume.
MCP server
The Model Context Protocol (MCP) server lets an AI agent search and read the whole corpus — Scripture and the Fathers — as a set of typed retrieval tools. It is a Cloudflare Worker speaking Streamable HTTP at a single endpoint:
https://royal-archives-mcp.royalarchives.workers.dev/mcp The server performs no AI synthesis — every tool is a pure, read-only lookup that returns passages, metadata, and deep links for your own agent to reason over. The tools are:
search_corpus- Hybrid full-text + semantic search across Scripture and the Fathers. Returns ranked passages with deep links. Filterable by author, work, language, testament, century, and kind (work / scripture).
get_verse- Fetch one Scripture verse in one or more editions. Accepts free-form ("John 1:1") or dotted ("John.1.1") references.
get_chapter- Fetch a full chapter — a Bible chapter by reference, or a work chapter by author + work + chapter slug. Plain text or HTML.
get_work- A work's metadata and table of contents: author, century, language, translation type, license, description, chapters, and parallel editions.
get_commentary_on- The patristic catena for a verse: the Fathers who expound, quote, or allude to it (typed cross-references) plus the semantically-nearest commentary, with citations.
get_cross_references- "What links here" for a verse or a work division: typed cross-reference edges (cites, mentions, wrote, hasDivision), inbound or outbound.
get_original_text- Original-language text (Greek / Russian / Latin) for a Bible passage or a work chapter.
lookup_lexicon- Look up a Greek word in the Strong's lexicon by number, lemma, or surface form. Returns lemma, transliteration, gloss, and definition.
lookup_entity- Look up a person or place (saint, biblical figure, city, monastery) by name or id. Returns a dossier plus where it is mentioned across the corpus.
list_works- List works in the catalog, filterable by author, century, language, category, or translation type. Paginated via cursor.
browse- Browse the catalog by a facet (author, century, category, or language) with work counts per group.
Connecting
For an MCP client that speaks HTTP directly (e.g. Claude Code), point it at the endpoint:
{
"mcpServers": {
"royal-archives": {
"type": "http",
"url": "https://royal-archives-mcp.royalarchives.workers.dev/mcp"
}
}
}
For hosts that only speak stdio (e.g. older Claude Desktop), bridge to the
HTTP endpoint with the standard mcp-remote proxy — set the
server command to npx -y mcp-remote https://royal-archives-mcp.royalarchives.workers.dev/mcp. You can
smoke-test the endpoint and list its tools directly with JSON-RPC:
curl -X POST https://royal-archives-mcp.royalarchives.workers.dev/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' OPDS catalog
The library is published as an OPDS 1.2 acquisition feed, so e-reader apps (KOReader, Calibre, Moon+ Reader, Thorium) can browse the whole catalog and download each work directly. Add this feed URL in your reader:
/feeds/opds.xml Each entry carries Dublin Core metadata (title, author, language, subject, publication year), a cover image, a link to the work's reading page, and acquisition links to the downloadable EPUB, AZW3 (Kindle), and KEPUB (Kobo) files where a built edition exists.
RSS feed
New and recently updated works are published as a standard RSS 2.0 feed — subscribe in any feed reader to follow additions to the corpus:
/rss.xml Open data & the linked corpus
The corpus is a linked web of typed cross-references — verses, works, authors, persons, places, terms, and the citations between them. The graph that powers the connections panel is published as static JSON.
Cross-reference graph
The full node and edge lists, plus per-entity adjacency files, live under the graph directory:
/graph/nodes.json
/graph/edges.json
/graph/verse/John.3.16.json
/graph/person/<id>.json
/graph/place/<id>.json
/graph/work/<author>/<work>.json
Each node is a compact record —
{ i: id, t: type, l: label, u: url, d: degree }, where
type is one of verse, work,
division, person, place,
term, citedWork, or author. Each
edge is
{ src, srcType, rel, dst, dstType, loc, label }, where
rel is wrote, hasDivision,
cites, or mentions. Browse it visually at the
graph explorer.
Entities
Persons and places have their own pages under /persons and /places. The set of entity ids that have a generated page is published as JSON:
/entity-ids.json
It returns { person: string[], place: string[] }; each
id resolves to a per-entity adjacency file under graph/person/
or graph/place/ (above) listing where the entity is
mentioned across the corpus.
Catalog & per-work JSON
The catalog and per-work metadata are served as JSON from the content host. The catalog lists every author and work; each work has its own file with the table of contents, edition details, and download links:
// https://pub-76ff790adc23427c9641bfe821aa2687.r2.dev/content/catalog.json
{
"authors": [
{
"slug": "john_chrysostom",
"name": "John Chrysostom",
"century": "4th century",
"works": [
{
"authorSlug": "john_chrysostom",
"workSlug": "...",
"title": "...",
"authors": ["John Chrysostom"],
"language": "en",
"translationType": "public-domain",
"license": "PD",
"commercialOK": true,
"category": "theology",
"century": "4th century",
"hasOriginal": true,
"originalLanguage": "grc"
}
]
}
]
} // https://pub-76ff790adc23427c9641bfe821aa2687.r2.dev/content/works/<author>/<work>/work.json
{
"authorSlug": "...",
"workSlug": "...",
"title": "...",
"language": "en",
"translationType": "public-domain",
"license": "PD",
"commercialOK": true,
"description": "...",
"toc": [
{ "kind": "chapter", "slug": "chapter_1", "title": "Chapter One" }
],
"original": { "language": "grc", "title": "..." },
"epubDownloadUrl": "https://.../work.epub" // when a built file exists
}
License-restricted works carry commercialOK: false; the
chapter HTML for each work is served alongside its work.json
under works/<author>/<work>/<view>/chapters/<slug>.html.
Licensing
The historical texts and translations taken from public-domain editions remain in the public domain.
Royal Archives’ own contributions — original translations, the Orthodox Catholic Bible (OCB) recension, and editorial apparatus — are © Royal Archives, all rights reserved.
In short: the historical texts and public-domain translations are free to reuse; Royal Archives' own original translations, the Orthodox Catholic Bible (OCB) recension, and editorial apparatus are © Royal Archives. See the About page for the full rights statement and a guide to the edition badges.
Beta
These interfaces are in beta: endpoints and data shapes may change, and scan-derived texts are corrected continually. If you build something on the corpus, expect to track occasional changes.