co-reading-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | Port for remote HTTP server (default: 3000) | |
| MCP_AUTH_TOKEN | No | Bearer token for remote HTTP server authentication. If not set, auth is disabled. | |
| CO_READING_DATA_DIR | No | Override the default data directory (default: ./data) |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| import_bookA | Import a book by file path (.txt or .epub) or raw text, split it into chapters and size-bounded chunks, and register it for chunked reading. EPUB chapter boundaries (spine order) are preserved. |
| list_booksA | List all imported books with chunk counts and last-read position. |
| list_chunksA | List all chunks (chapter/part breakdown) of a book, without their text. |
| read_chunkA | Read the text of one chunk. Pass chunkId to read a specific chunk, or omit it to continue from the book's last-read position (its nextId). Reading a chunk updates reading progress. |
| search_bookA | Search all chunks of a book for a substring (case-insensitive) and return matching chunks with context snippets. |
| get_progressA | Get the last-read chunk id for a book. |
| set_progressA | Manually set the last-read chunk id for a book (e.g. to jump or re-read). |
| read_notesB | Read the accumulated discussion notes for a book, used to restore context cheaply between sessions. |
| append_notesB | Append a timestamped note entry (clues, reasoning, thoughts) for a book. |
| add_annotationA | Add an annotation anchored to a quoted passage within a chunk. author should be 'human' or 'claude'. If the other author already has an overlapping annotation on the same quote, a shared card pairing both notes is created automatically. |
| list_annotationsB | List annotations for a book, optionally filtered to one chunk. |
| list_cardsC | List shared cards: passages where both human and claude have left overlapping annotations. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 12 tools
Each tool targets a distinct operation: annotations, notes, progress, books, chunks, cards. No overlapping purposes; even list_annotations and list_cards are clearly differentiated.
All tool names follow a consistent verb_noun pattern with underscores (e.g., add_annotation, list_books, read_chunk). No mixing of styles.
12 tools is well-scoped for a collaborative reading server covering import, browsing, progress tracking, annotations, and notes. Each tool earns its place.
Covers core CRUD for books, chunks, annotations, and notes. Missing explicit delete/update for annotations or books, but the workflow is functional and gaps are minor.