DocumentationDocent reference
On this page

Overview

Docent is a CLI-based control center for grad-school workflows. It exposes a plugin architecture — each tool (currently Reading Queue) registers actions that are callable from the terminal, from Claude via MCP, or from this UI.

Documents live in Mendeley. Docent syncs from a named Mendeley collection and maintains a lightweight local queue. You never add documents directly in Docent — you add them to Mendeley first, then pull.

How it fits together

Mendeley desktop  →  "Docent-Queue" collection
       ↓
docent reading sync-from-mendeley   (pulls metadata + order)
       ↓
Reading queue  →  next / start / done / export …
       ↓
docent serve  →  Claude MCP  (or this UI)

Reading Queue

Manage your reading list. Each entry is a document from Mendeley — a paper, book, or book chapter. All state lives in ~/.docent/data/reading/queue.json. Metadata is always authoritative from Mendeley — Docent caches it locally for fast reads.

Adding & syncing documents

docent reading sync-from-mendeley
Pull documents from your configured Mendeley collection into the queue. Adds new entries, removes deleted ones.
docent reading sync-from-mendeley --dry-run
Preview what would be added or removed without making changes.
docent reading add
Shows guidance on how to add documents (via Mendeley — Docent does not accept direct adds).

Moving through the queue

docent reading next
Show the next entry to read (lowest order, status = queued).
docent reading next --course <name>
Filter next entry by course name.
docent reading start <id>
Mark an entry as currently reading. Stamps started_at timestamp.
docent reading done <id>
Mark an entry as done. Stamps finished_at timestamp.
docent reading show <id>
Show full details for an entry.

Editing & organising

docent reading edit <id> --notes "…"
Update notes for an entry.
docent reading edit <id> --category thesis
Set category: course, thesis, or personal.
docent reading edit <id> --course-name "CVEN 601"
Tag with a course name.
docent reading edit <id> --type book_chapter
Set type: paper, book, or book_chapter.
docent reading set-deadline <id> --date 2026-06-01
Set a reading deadline. Docent warns at startup when a deadline is approaching.
docent reading set-deadline <id> --clear
Clear a deadline.
docent reading move-up <id>
Move an entry one position up in the queue.
docent reading move-down <id>
Move an entry one position down.
docent reading move-to <id> --position <n>
Move an entry to an absolute queue position.

Search & stats

docent reading search <query>
Full-text search across titles, authors, notes, and course names.
docent reading stats
Show queue size, status breakdown, category breakdown, and upcoming deadlines.

Export & maintenance

docent reading export
Export the full queue to a styled HTML document with a print dialog for PDF output.
docent reading remove <id>
Remove an entry from the local queue (does not delete from Mendeley).
docent reading queue-clear --yes
Wipe the entire local queue. Irreversible without a re-sync.
docent reading sync-status
Check queue size vs PDF count in your database directory.

CLI Reference

All commands follow the pattern docent <tool> <action> [options].

Top-level commands

docent --version
Print the installed Docent version.
docent list
List all registered tools and their available actions.
docent info <tool>
Show detailed info and action list for a tool.
docent serve
Start the MCP stdio server. Wire this into Claude's .mcp.json.
docent update
Upgrade Docent to the latest version on PyPI. Reminds you to restart Claude if using MCP.

Config commands (per-tool)

docent reading config-show
Display all reading config values (database_dir, queue_collection, etc.).
docent reading config-set --key <k> --value <v>
Set a single config value.

Config keys — Reading tool

database_dir
Absolute path to the folder where your PDFs are stored.
queue_collection
Name of the Mendeley collection to sync from. Default: Docent-Queue.
unpaywall_email
Email for Unpaywall OA PDF lookups.

MCP Setup

Docent exposes all registered tool actions as MCP tools, so you can call them directly from Claude (or any MCP-compatible client) without leaving your conversation.

1. Start the server

Run docent serve. It starts a stdio MCP server — keep it running while you use Claude, or wire it into your MCP config so Claude starts it automatically.

2. Configure Claude

Add a .mcp.json at your project root (or in ~/.claude/ for global access):

{
  "mcpServers": {
    "docent": {
      "command": "docent",
      "args": ["serve"]
    }
  }
}

Claude will then have access to all Docent tools. Action names follow the pattern reading__next, reading__done, etc. (tool name + double underscore + action name).

Tool naming convention

reading__add
reading__next
reading__start
reading__done
reading__show
reading__search
reading__stats
reading__edit
reading__set_deadline
reading__move_up
reading__move_down
reading__move_to
reading__export
reading__remove
reading__queue_clear
reading__sync_from_mendeley
reading__sync_status
reading__config_show
reading__config_set

Settings

All settings are stored in ~/.docent/config.toml. You can edit this file directly or use docent reading config-set from the terminal, or the Settings page in this UI.

Config file location

~/.docent/config.toml

Example config

[reading]
database_dir = "/Users/you/Documents/Papers"
queue_collection = "Docent-Queue"
unpaywall_email = "you@university.edu"

Environment variable overrides

All config values can be overridden with environment variables prefixed DOCENT_. See .env.example in the repo for the full list.