For your assistant

Use the books in your assistant

Connect Claude, ChatGPT or any assistant that speaks MCP to Rolling Edition. It can then search all 6 books, read a section with its code examples, tell you what changed in an edition, and cite the edition and section it used. It's free, with no account, and your assistant does the thinking.

Connect your assistant

Add this address to your assistant as a remote MCP server. It needs no sign-in.

https://rollingedition.ai/mcp
  • Claude (claude.ai and the desktop app): in Settings, open Connectors, choose Add custom connector, name it Rolling Edition and paste the address. Then turn it on in a chat from the tools menu.
  • Claude Code: run claude mcp add --transport http rolling-edition https://rollingedition.ai/mcp, then ask in any session.
  • ChatGPT: turn on developer mode in Settings, create a connector with this address and no authentication, and add it to a chat.
  • VS Code: add it to .vscode/mcp.json: {"servers": {"rolling-edition": {"type": "http", "url": "https://rollingedition.ai/mcp"}}}
  • Any other MCP client: add a server with this address, over Streamable HTTP. It speaks the protocol's 2026-07-28 revision and the 2025 ones.

Then ask about a topic the books cover, and say "using Rolling Edition" if your assistant has other tools too.

What to ask

Each example below is a question you might ask, the tool your assistant calls, and what the server sends back, shortened where it says "…". They're the server's real answers, made from the books when this page was built.

You ask: Using Rolling Edition, explain “Every commit is a snapshot”, and cite the section you use.

Your assistant calls search_books with {"query": "Every commit is a snapshot", "limit": 3}, and gets back:

{
  "results": [
    {
      "book": "open-table-formats",
      "edition": "2026.11.1",
      "section_id": "every-commit-is-a-snapshot",
      "title": "Every commit is a snapshot",
      "snippet": "Every commit is a snapshot. Chapter 1 lands the three hours as three commits. Each commit leaves a snapshot behind, and that is what you read later. A commit changes the table's metadata in one atomic step, so a reader …",
      "citation": "Rolling Edition, with AI. “Every commit is a snapshot.” In “Read a table as it was at an earlier snapshot,” chapter 2 of Open Table Formats, Edition 2026.11.1. Examples passed Nov 6, 2026. https://rollingedition.com/open-table-formats/s/every-commit-is-a-snapshot. Accessed Nov 6, 2026."
    },
    {
      "book": "open-table-formats",
      "edition": "2026.11.1",
      "section_id": "append-each-hour",
      "title": "Append each hour as a commit",
      "snippet": "Append each hour as a commit. Each append is one commit. The example below creates the table, appends hours 00, 01 and 02 in order, and then lists the snapshots in commit order with their operation and the rows each …",
      "citation": "Rolling Edition, with AI. “Append each hour as a commit.” In “Build a first table, end to end,” chapter 1 of Open Table Formats, Edition 2026.11.1. Examples passed Nov 6, 2026. https://rollingedition.com/open-table-formats/s/append-each-hour. Accessed Nov 6, 2026."
    },
    {
      "book": "open-table-formats",
      "edition": "2026.11.1",
      "section_id": "versions-in-ducklake-and-delta",
      "title": "Read a commit by its number in each format",
      "snippet": "Read a commit by its number in each format. Delta Lake reads an earlier version with DeltaTable(path, version=n). The version is the commit's position in the table's history, counted from 0, so version 0 is the first …",
      "citation": "Rolling Edition, with AI. “Read a commit by its number in each format.” In “Read a table as it was at an earlier snapshot,” chapter 2 of Open Table Formats, Edition 2026.11.1. Examples passed Nov 6, 2026. https://rollingedition.com/open-table-formats/s/versions-in-ducklake-and-delta. Accessed Nov 6, 2026."
    }
  ]
}

Read a section with its code

You ask: Show me the section “Every commit is a snapshot” and its example, with the versions it ran on.

Your assistant calls get_section with {"book": "open-table-formats", "section_id": "every-commit-is-a-snapshot"}, and gets back:

{
  "markdown": "## Every commit is a snapshot {#every-commit-is-a-snapshot}\n\n[Chapter 1](#append-each-hour) lands the three hours as three commits. Each commit leaves a snapshot behind, and that is what you read later.\n\nA commit …",
  "examples": [
    {
      "example_id": "snapshot-history",
      "passing": true,
      "pinned": {
        "python": "3.12.15",
        "deltalake": "1.6.6",
        "duckdb": "2.0.0",
        "pyarrow": "26.0.1",
        "pyiceberg": "0.12.0"
      },
      "code": "\"\"\"List each commit to one table: Iceberg snapshots and Delta Lake versions.\"\"\"\n\nfrom deltalake import DeltaTable, write_deltalake\n\nfrom lib.lakehouse import ICEBERG_ID, PAGEVIEWS_SCHEMA, new_warehouse, read_cut_hour, …"
    }
  ],
  "next_cursor": null,
  "citation": {
    "edition": "2026.11.1",
    "url": "https://rollingedition.com/open-table-formats/s/every-commit-is-a-snapshot?utm_medium=assistant&utm_source=your-assistant",
    "citation": "Rolling Edition, with AI. “Every commit is a snapshot.” In “Read a table as it was at an earlier snapshot,” chapter 2 of Open Table Formats, Edition 2026.11.1. Examples passed Nov 6, 2026. https://rollingedition.com/open-table-formats/s/every-commit-is-a-snapshot. Accessed Nov 6, 2026."
  }
}

Catch up on what changed

You ask: What changed in Data Governance as Code since edition 2026.11.8?

Your assistant calls get_changes with {"book": "data-governance-as-code", "since_edition": "2026.11.8"}, and gets back:

{
  "current_edition": "2026.11.10",
  "editions": [
    {
      "edition": "2026.11.10",
      "released": "2026-11-06",
      "kinds": [
        "Library update"
      ],
      "changes": [
        "Updated pyarrow from 26.0.0 to 26.0.1",
        "Updated smart-open from 9.0.1 to 9.0.2"
      ],
      "sections_changed": []
    },
    {
      "edition": "2026.11.9",
      "released": "2026-11-06",
      "kinds": [
        "Library update"
      ],
      "changes": [
        "Updated filelock from 4.2.6 to 4.2.7"
      ],
      "sections_changed": []
    }
  ]
}

Check whether a copy is current

You ask: Is my copy, with edition code 6281-4K4S, the current edition?

Your assistant calls check_code with {"code": "6281-4K4S"}, and gets back:

{
  "state": "out_of_date",
  "message": "27 newer editions since your copy.",
  "code": "6281-4K4S",
  "book": {
    "slug": "data-governance-as-code",
    "title": "Data Governance as Code",
    "url": "https://rollingedition.com/data-governance-as-code?utm_medium=assistant&utm_source=your-assistant"
  },
  "edition": "2026.10.1",
  "verified": "Oct 23, 2026",
  "newer": 27,
  "current": {
    "edition": "2026.11.10",
    "verified": "Nov 6, 2026",
    "url": "https://rollingedition.com/data-governance-as-code?utm_medium=assistant&utm_source=your-assistant"
  },
  "changes": [
    "Update cryptography to 50.0.2 for a security advisory, with Presidio 2.2.365",
    "Updated certifi from 2026.10.19 to 2026.10.23",
    "Name the Presidio release that added per-recognizer thresholds",
    "…"
  ]
}

Find a book on a topic

You ask: Which Rolling Edition books cover machine learning?

Your assistant calls list_books with {"topic": "machine-learning"}, and gets back:

{
  "count": 4,
  "books": [
    {
      "slug": "business-intelligence-with-agents",
      "title": "Business Intelligence with Agents",
      "edition": "2026.11.3",
      "examples_passing": 78,
      "examples_total": 78
    },
    {
      "slug": "language-models-from-the-ground-up",
      "title": "Language Models from the Ground Up",
      "edition": "2026.11.6",
      "examples_passing": 86,
      "examples_total": 86
    },
    {
      "slug": "model-context-protocol-in-practice",
      "title": "Model Context Protocol in Practice",
      "edition": "2026.11.5",
      "examples_passing": 70,
      "examples_total": 70
    },
    "…"
  ]
}

Every passage carries its citation: the edition, the date its examples passed, and the section's permanent link, so your assistant can say where an answer comes from and you can read it in full.

Ready-made prompts

Assistants that show an MCP server's prompts list these, often as slash commands or in a menu. Each tells your assistant which sections to read, and to cite them.

PromptWhat it doesYou give it
summarize_chapterSummarize one chapter of a Rolling Edition book, section by section, citing each section.book: the book's slug; chapter_id: the chapter's ID
chapter_slidesDraft a teaching deck's outline from one chapter, with one cited source per slide.book: the book's slug; chapter_id: the chapter's ID; audience: optional: who the deck is for
quiz_meWrite questions answerable from one chapter, each with its answer's section.book: the book's slug; chapter_id: the chapter's ID; count: optional: 1 to 20, 5 if not given
explain_exampleWalk through a section's code example at the versions it was run on.book: the book's slug; section_id: the section's ID
whats_newExplain what changed in a book, and why it matters to a reader.book: the book's slug; since_edition: optional: the edition you read

They suit teaching, too: chapter_slides drafts a deck from a chapter, and quiz_me asks questions one at a time and points to the section with each answer.

The tools

Six tools, all of them read-only: none changes anything, anywhere.

ToolWhat it doesArguments
list_booksList Rolling Edition's books: each one's slug, title, summary, level, areas and skills, its current edition, the date its examples last passed, how many of its examples pass, and its link. Give topic, an area or skill ID such as "data-engineering" or "large-language-models", to list only the books on it.topic: optional: an area or skill ID, to list only its books
get_contentsA book's chapters and sections, in reading order, each with the ID that get_section takes. book is the book's slug from list_books, such as "open-table-formats".book: the book's slug; edition: optional: the current edition is the one served
search_booksFind the passages that best match query, by its words, across every book or within one (book, a slug). Each result has its book, edition, section ID and title, a snippet, and the citation block to cite it with. Read a whole result with get_section. limit is 5 unless you ask for up to 10.query: the words to look for; book: optional: one book's slug; limit: optional: up to 10
get_sectionRead one section of a book as Markdown, with its subsections, its code examples (each with the versions it was run on and whether it passes) and its citation block. A chapter's ID gives the chapter's opening. A long section comes in pages: pass the next_cursor you were given as cursor for the next one. An earlier ID of a section still works, and the answer says what it's called now.book: the book's slug; section_id: a section's or chapter's ID; edition: optional: the current edition is the one served; cursor: optional: the next page's
get_changesWhat changed in a book's editions, newest first: each edition's date, the kinds of change, its summaries, and the sections and examples it changed. Give since_edition for the editions after one you know, such as the edition a reader's copy names.book: the book's slug; since_edition: optional: the editions after this one; to_edition: optional: up to this one
check_codeCheck an edition code, the 8 characters printed on a copy of a Rolling Edition book (such as 483B-Z9SS): "current", "out_of_date" with the current edition and what changed since, or "not_found". A match says which edition the code names; it doesn't prove a copy is authentic.code: the edition code from a cover, PDF or printout

A search returns at most 10 passages, and a section comes in pages of 8,000 characters. Only each book's current edition is served; get_changes tells you what changed since an earlier one.

Fair use and privacy

The server is free for everyone. To keep it that way, each address can make 60 calls a minute, and when the server is busy it asks callers to wait a minute. An assistant answering one question makes a handful of calls.

For each call we log the tool, the book and section, the name and version your assistant reports, and how many results it got. We never log your question or your address. The server makes no AI calls of its own, and holds nothing about you. Privacy

Cite and reuse

Book text is CC BY 4.0: credit Rolling Edition, link back to the book and to the licence, and say what you changed. Code examples are MIT: keep the notice “Copyright (c) Rolling Edition and contributors” and the MIT terms with any code you copy. Each passage's citation is ready to quote, and its attribution is the credit to use when you reuse the text. How to credit us

For crawlers and your own tools, every book's current edition is on rollingedition.ai as Markdown, starting from llms.txt.

If something goes wrong

  • Opening the address in a browser says it's for assistants. That's expected: add it to your assistant instead.
  • "Too many requests" or "The server is busy". Wait a minute and ask again.
  • Your assistant doesn't use it. Make sure the connector is on in that chat, and say "using Rolling Edition" in your question.
  • An answer seems wrong. Follow its citation to the section, and if the book is wrong, tell us from that section's page: every book can be corrected.