Data for agents and researchers
MRM Library is a reading site for historical primary sources, and it is built to be read by software too. These are the plain files, APIs and tools behind it. All of it is free, read only and needs no key.
Discovery
Start here to find everything else. The same entry points are announced in the head of every page and in its HTTP Link headers.
- /robots.txtCrawl rules, with a pointer to the sitemap.
- /sitemap.xmlSitemap index. It lists the files in /sitemaps/, for example /sitemaps/misc-1.xml and /sitemaps/improvement-era.xml.
- /llms.txtShort guide for language models: every work and author, URL patterns and the APIs below.
- /llms-full.txtIndex of full text bundles, one Markdown file per work (large works are split by part).
- /index.jsonCatalog of collections, authors and works, with rights and manifest URLs.
- /.well-known/mcp.jsonMCP server card. The same card is at /.well-known/mcp/server-card.json.
Each work also has its own guide and bundle, for example /jst/llms.txt and /jst/llms-full.txt.
Markdown and manifests
Every page has a Markdown twin: add .md to a work, part, section or collection URL. Add .json instead for a manifest with children, sections, rights and neighbors. Authors have .json only.
- /jst/romans/5.mdA section as Markdown, with citation, source and rights in the frontmatter.
- /jst/romans/5.jsonThe same section as a manifest.
- /improvement-era/1910/01/ruins-of-the-casas-grandes-region.mdAn article from a periodical.
- /collection/theology.mdA collection as a Markdown list of works.
- /author/joseph-smith-jr.jsonAn author record.
- /improvement-era/1910/llms-full.txtBundle: one year of a periodical as a single Markdown file.
The Markdown source of the library is published only through these twins and bundles.
Search and citations
Full text search covers every section. All words must match, and titles weigh more. Responses are JSON with open CORS.
- /api/search?q=charity&limit=5Parameters: q, limit (up to 100), offset. Each hit has ref, title, work, url, markdown and an excerpt.
- /api/resolve?ref=IE%2013:205Turns a citation into library URLs. Try Romans 5:8 JST, JD 3:12 or IE 13:205. A verse or page anchor is included.
- /search?q=charityThe same search as a page.
- /jod/13/2Every section page has a Cite control with Chicago footnote and bibliography forms. The forms follow Chicago 17th edition typography, including its page ranges. The same strings, without an access date, are the citation in each page's JSON-LD and the citation_chicago field of the MCP tools get_section, get_rights and get_work_info.
- /improvement-era/1910/01/p205Printed page redirect: /<work>/p123, or /<periodical>/v13/p234 for a volume. It sends you to the section that holds that page.
MCP server
A public, read only Model Context Protocol server. Streamable HTTP, stateless, no authentication.
- /mcpEndpoint. POST JSON-RPC here; GET answers 405.
- /.well-known/mcp.jsonServer card, with tool definitions.
- /webmcp.jsWebMCP: the same search and reading tools offered to browser agents on every page.
Tools
search_library full text search, optional collection or work scope
list_toc browse collections, works, parts and sections
get_section a section as Markdown or text, with citation_chicago
get_rights rights status and basis for any page
get_work_info metadata and section list for a work
resolve_reference citation to URL, such as IE 13:205Client config (Cursor and other remote clients)
{
"mcpServers": {
"mrm-library": { "url": "https://library.mrm.org/mcp" }
}
}Client config (Claude Desktop, through a bridge)
{
"mcpServers": {
"mrm-library": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://library.mrm.org/mcp"]
}
}
}Claude Code
claude mcp add --transport http mrm-library https://library.mrm.org/mcpList the tools with curl
curl -s https://library.mrm.org/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Rights for any page: call get_rights. Works are public domain by publication year (1930 or earlier) unless the author gave permission.
Schemas and JSON-LD
The JSON files above follow JSON Schema (draft 2020 12).
- /schema/index.schema.jsonThe catalog, /index.json.
- /schema/node.schema.jsonA manifest, <path>.json.
- /schema/work.schema.jsonA work.
- /schema/section.schema.jsonA section.
- /schema/work-index.schema.jsonA work's index.
- /schema/part-index.schema.jsonA part's index.
- /schema/collection.schema.jsonA collection.
- /schema/authors.schema.jsonAuthors.
- /schema/common.schema.jsonShared definitions.
Pages carry schema.org JSON-LD: WebSite with SearchAction, DataCatalog and WebAPI on the home page; Book, Periodical, PublicationVolume, PublicationIssue, Chapter and Article for works; Person and ProfilePage for authors; CollectionPage and ItemList for collections; BreadcrumbList everywhere.
URLs and freshness
/<work> a work
/<work>/<section> a section
/<work>/<part>/<section> a section inside a part
/improvement-era/YYYY/MM/<slug> periodicals are keyed by date
/<work>/p123 printed page redirect
/author/<slug> an author
/collection/<slug> a collection
<any URL>.md .json Markdown twin and manifestStored files are cached for five minutes and revalidated in the background, so new works appear within minutes of a publish. Use the paths and URLs the APIs return rather than guessing them.
This page as /data.md