OWLscan

Connect Claude

Two ways in. The first is one line, installs nothing, and works anywhere you can talk to Claude.

1
Take the book

Scan a book first — then this command arrives with its id and title already in it. The shape it takes:

curl -fsSL -H "Authorization: Bearer " "https://owlacade.my/books/<id>/clean.md" -o book.md && claude "Read ./book.md — the transcript of a book I just scanned. Give me the table of contents."

Paste it in a terminal or straight into a Claude session — it is only a download, so it works in both. Nothing is installed and nothing is left behind. The token in it is your login: treat the whole line like a password.

2
Or connect the whole shelf

Worth it if you work across your library rather than one book: Claude can list your shelf, read any page, start a transcription, and hand back markdown on its own.

claude mcp add --scope user --transport http owlscan https://owlacade.my/mcp --header "Authorization: Bearer "

Then restart Claude Code — or run /mcp in an open session. A connector is read when Claude starts, so it will not appear in a session you already have running. Same warning on the token.

or
Using Claude Desktop or claude.ai? No terminal needed

Settings → Connectors → Add custom connector → URL https://owlacade.my/mcp, with this Bearer token:

The token is your login — treat it like a password.

3
Things to ask for
  • “Transcribe the book I scanned today and save it as clean markdown.”
  • “Pull the contents page and tell me what’s in this volume.”
  • “Read page 12 and check it against the scan — anything misread?”

Ask for the outcome, not a tour. “List my shelf and tell me what you can do” spends its first several steps on discovery and gets you a directory listing; “transcribe today’s book” gets you the book.

Every URL, if you’d rather wire it yourself

The whole library is plain HTTP — Claude, curl, or anything else can fetch it. Both Authorization: Bearer <token> and Cookie: scandoc_session=<token> are accepted.

https://owlacade.my/api/books                 # your library
https://owlacade.my/books/<id>/clean.md       # stitched clean-markdown transcript
https://owlacade.my/books/<id>/export.md      # per-page OCR text
https://owlacade.my/books/<id>/scan.pdf       # raw scan PDF (?enhanced=1 for cleaned)

A book you’ve put on the open shelf also answers at https://owlacade.my/s/<share-token>/clean.md with no token at all — the cleanest thing to hand anyone else.

Prefer the local bridge script?

The stdio bridge runs on your machine and proxies the same API. Optional: add -e GEMINI_API_KEY=your-key to run reading jobs on your own key (free at aistudio.google.com/apikey) — it rides each request in memory and is never stored.

curl -fsSL https://owlacade.my/scandoc_mcp.py -o ~/.scandoc_mcp.py

claude mcp add --scope user owlscan \
  -e SCANDOC_URL=https://owlacade.my \
  -e SCANDOC_TOKEN= \
  -- python3 ~/.scandoc_mcp.py