Developers
Connector reference
The AskReformation MCP server: endpoint, tools, parameters, results, limits and examples, for developers and AI clients.
AskReformation's connector is a free, public Model Context Protocol server. It gives AI assistants and your own programs the full texts of 2,151 works by 107 Reformers and Puritans, as originally printed, with search, sequential reading, quotation checking and page-accurate citations.
To add it to Claude, ChatGPT, Cursor, VS Code or another assistant, follow the steps on the connect page. This page is the technical reference.
Endpoint
| URL | https://askreformation.com/mcp |
| Transport | Streamable HTTP, stateless, JSON responses |
| Authentication | None. No account or key is needed. |
| Tools | 8, all read-only |
| Cost | Free |
Because the server is stateless, every request stands alone. MCP clients still send initialize first, as the protocol requires, but a plain tools/call also works:
curl -s https://askreformation.com/mcp \
-H 'content-type: application/json' \
-H 'accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"verify_quote","arguments":{"quote":"be killing sin or it will be killing you","author":"owen"}}}'
Each result is returned twice, as structuredContent (JSON, described below) and as text content for clients that only read text.
Identifiers
| Kind | Example | Meaning |
|---|---|---|
| Work | A53715 | A Text Creation Partnership id: one printed book |
| Section | A53715/s3 | A chapter or other division of a work, from its table of contents |
| Passage | A53715:39 | One paragraph-sized passage, numbered in reading order |
| Reading position | A53715/s3@40 | Where a section-bounded read stopped; pass it back as id to continue |
Every result has a url on askreformation.com where a person can read the passage in context, and a citation such as John Owen, Of the Mortification of Sin in Believers (London, 1668), ch. 2, p. 11. EEBO-TCP A53715.
Tools
| Tool | What it does |
|---|---|
search | Full-text search of passages, with author, work, year and tradition filters |
fetch | One passage with its context, a whole section, or a work's description and opening |
read | Continuous text from any point, with page breaks marked |
verify_quote | Whether a quotation occurs in the library, where, and how closely it matches |
scripture_references | Passages that cite a Bible verse or range, including margin notes |
get_work | A work's bibliographic details and table of contents |
list_works | The catalogue, filtered by author, title words, years or tradition |
list_authors | The authors, with dates, a short description and how many works each has |
All tools are annotated read-only, idempotent and non-destructive, and none reaches outside the library.
search
Passages that contain the words as an exact phrase rank first, so a pasted quotation finds its source; then passages with all the words; then, if there are few results, passages with any of them. Results are limited to three per work unless you filter to one work. Spelling is normalized, so love finds loue and justify finds iustifie.
| Parameter | Type | |
|---|---|---|
query | string, required | Words or "exact phrase". Supports prefix* (3 or more letters), -exclude, a OR b, and inline filters such as author:owen year:1650-1680 work:A53715 |
author | string | Author id or name: owen, John Calvin, Sibbes |
work | string | Work id, or words from its title |
year_from, year_to | integer | Range of printing years |
tradition | string | reformer, puritan, assembly or evangelical |
limit | integer | 1–50, default 10 |
offset | integer | For paging: pass next_offset from the previous call |
include_front_matter | boolean | Also search title pages, indexes and errata (default false) |
Returns results (each with id, title, text snippet, author, work_id, work_title, year, location, page, citation and url), match_mode and next_offset.
fetch
| Parameter | Type | |
|---|---|---|
id | string, required | A passage id (A53715:39), section id (A53715/s3) or work id (A53715) |
Returns id, title, text and url, and metadata with the citation, author, work_id, work_title, year, location, page, passage_range, next, collection, license and source_url.
read
Each passage in text is headed [id | section | page], and margin notes follow their passage. Continue with the returned next. Reading from a section id stays within that section.
| Parameter | Type | |
|---|---|---|
id | string, required | Where to start: a work, section or passage id, or a next value |
max_chars | integer | 500–30,000, default 6,000 |
show_page_breaks | boolean | Insert ⟨p. N⟩ at page breaks (default true) |
Returns id, work_id, title, start, end, text, citation_of_first_passage, url and next.
verify_quote
Checks a quotation in any spelling, modern or original, of up to 300 words.
| Parameter | Type | |
|---|---|---|
quote | string, required | The quotation to check |
author, work, year_from, year_to | Optional filters, as for search |
Returns a verdict, an explanation and, when something matches, best_match with the exact source_text, its context, page, citation, url, whether the quotation used the source's spelling, and the word-level differences.
| Verdict | Meaning |
|---|---|
verified | The quotation matches the text, allowing modernized spelling and punctuation |
close | Small differences in wording, listed in differences |
partial | A paraphrase, a different translation, or several passages run together |
not_found | The library has no match. This doesn't prove the quotation is spurious: it may come from a work or edition the library doesn't hold |
scripture_references
References are recognized in early printed forms such as Rom. 8. 28. or Esa. 53.5, in the text and in margin notes. References to the exact verse come first, then references to the whole chapter.
| Parameter | Type | |
|---|---|---|
reference | string, required | For example Romans 8:28, Ps 51, 1 John 4:8-10, Romans 9-11, or a whole book such as Revelation |
author, work, year_from, year_to | Optional filters | |
limit | integer | 1–50, default 20 |
offset | integer | For paging |
Returns the normalized reference, total_passages, next_offset and results, each with reference_as_printed and in_margin_note.
get_work
| Parameter | Type | |
|---|---|---|
work_id | string, required | For example A17662 |
max_sections | integer | 1–2,000, default 150 |
max_depth | integer | Deepest heading level to list, 0–6, default 3 |
Returns the full title, author, year, imprint, extent, language, word count, licence, source links, a suggested citation (how_to_cite), and sections, each with its id, label, depth, first_passage, number of passages and page range.
list_works
| Parameter | Type | |
|---|---|---|
author | string | Author id or name |
query | string | Words from the title |
year_from, year_to | integer | Range of printing years |
tradition | string | reformer, puritan, assembly or evangelical |
featured_only | boolean | Only the curated core works |
limit | integer | 1–200, default 50 |
offset | integer | For paging |
list_authors
| Parameter | Type | |
|---|---|---|
query | string | Name to look for |
tradition | string | reformer, puritan, assembly or evangelical |
The texts
Quotations keep the spelling of the printing they come from (vnto, loue, sinne). The long s (ſ) and printers' ligatures are normalized. In the text, • marks an illegible letter, 〈…〉 illegible words, 〈non-Latin alphabet〉 Greek or Hebrew the transcribers didn't key, and ▪ illegible punctuation. Page numbers belong to the printing transcribed, which may not be the first edition. See sources and licensing.
The server also sends these conventions to every client in its MCP instructions, so assistants quote verbatim and run verify_quote before attributing words to an author.
Limits
- Requests: about 120 a minute from one address. Over that, the server answers HTTP 429 with a
Retry-Afterheader. - Query time: a query that would run longer than a few seconds is stopped with an error asking for a more specific one (more words, fewer
prefix*terms, or an author, work or year filter). - Request size: up to 1 MB.
readreturns at most 30,000 characters per call.
If you need more for a research project, write to hello@askreformation.com.
Privacy
The connector doesn't log the content of requests. It keeps only daily counts of tool calls by kind of client. See the connector privacy statement.
Support
Questions, problems and requests: hello@askreformation.com.