explaingit

idleprocesscc/co-reading-mcp

11JavaScriptAudience · generalComplexity · 3/5Setup · moderate

TLDR

A local server that lets you and Claude read books together, load EPUBs or text files, leave notes on passages, and pick up exactly where you left off across different conversations.

Mindmap

mindmap
  root((Co-Reading MCP))
    What it does
      Read books with Claude
      Persistent annotations
      Cross-session progress
    Input formats
      EPUB files
      Plain text files
      Chapter chunking
    Features
      Margin notes
      Passage search
      Reading progress
    Tech stack
      Node.js server
      Python import scripts
      Browser UI
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Read through a non-fiction book chapter by chapter with Claude, leaving notes and questions on specific passages that persist across chat sessions.

USE CASE 2

Import an EPUB or text book and let Claude search it, annotate it, and track your reading progress over days or weeks.

USE CASE 3

Run the server on a personal cloud machine so you can co-read with Claude from any device while keeping your library private.

USE CASE 4

Write your own notes on book passages and submit them to Claude in bulk, then get replies that attach to each specific annotation.

Tech stack

JavaScriptNode.jsPythonModel Context Protocol

Getting it running

Difficulty · moderate Time to first run · 30min

Requires Node.js and Python installed locally, plus Claude configured to connect via the Model Context Protocol.

No license information is provided in the repository.

In plain English

Co-Reading MCP is a local server that connects to Claude through the Model Context Protocol, a standard that lets Claude interact with external tools and data sources. The purpose of this server is to give Claude a persistent reading environment: you load books into it, and then both you and Claude can read through them together, leave notes on specific passages, and pick up where you left off across multiple conversations. Books can be imported in EPUB format (the standard format used by most e-book apps) or as plain text files. The server splits books into stable sections called chunks, preserving chapter boundaries from EPUB files or recognizable heading patterns in plain text. Once a book is loaded, Claude can read it section by section, search for passages, write margin annotations, and track how far through the book you have gotten. You can write notes yourself, then submit them to Claude in bulk, and Claude's replies get attached to those same notes. The server runs on Node.js and includes a simple browser-based reading interface you can open locally. A separate set of Python scripts handles importing books from the command line. The server can also run on a remote machine, such as a personal cloud server, with token-based authentication to keep your content private. The project is designed around the idea that reading together with an AI is a different activity than dumping a book into a chat for a one-shot summary. Progress and annotations persist outside any single conversation, so Claude can resume reading from where it left off even in a completely new chat session. All book content and notes are stored in a local data folder that is excluded from version control, so your private reading material does not end up in git history.

Copy-paste prompts

Prompt 1
I've set up co-reading-mcp and imported a book. How do I instruct Claude to read the next chapter, summarize it, and leave an annotation on the key argument?
Prompt 2
I want to discuss chapter 5 of a book I've loaded into co-reading-mcp. Ask Claude to find the passage about [topic], add a margin note, and give me its interpretation.
Prompt 3
Show me how to import an EPUB file into co-reading-mcp using the Python scripts, then have Claude start reading from chapter 1.
Prompt 4
I've been reading a book with Claude across multiple sessions. How do I ask it to recap what we've read so far and pick up from our last annotation?
Open on GitHub → Explain another repo

← idleprocesscc on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.