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.