Skip to content
MRM Library

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.

The Markdown source of the library is published only through these twins and bundles.

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:205

Client 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/mcp

List 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).

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 manifest

Stored 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