autoContents MCP

Builds clickable bookmarks for a scanned PDF from its contents page and runs as an MCP server for Claude Desktop

  • 273 ★ on the repository
  • Last commit
MCP server

Extended access

Why this level

  • Document pages are sent to the model provider under your API key, so confidential scans should not be uploaded before reading the provider's terms
  • The program writes the PDF with bookmarks and keeps the API key in a `.env` file or in the client's environment variables
All reasons and checks

natsuijm/autocontents

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add mcp/autocontents

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Extended accessThe tool runs code or makes network calls and only reads external data.

  • Document pages are sent to the model provider under your API key, so confidential scans should not be uploaded before reading the provider's terms
  • The program writes the PDF with bookmarks and keeps the API key in a `.env` file or in the client's environment variables

This is third-party code. Review the repository files before installing.

What it does

autoContents adds bookmarks to a scanned PDF that has a contents page. The pages become images, a vision-capable model reads chapter titles and page numbers, and the program writes the finished bookmarks into the document. The README puts processing at about a minute. A separate step decides the nesting levels. Roman page numbers in the preface are converted into an offset from the main numbering, so chapters after the preface land on the right pages. Books and documents in Chinese and English fit, as long as the contents are printed on a page. The program starts in two ways. The first is a local Flask web page: you drop a PDF into the window and set the API key, service address and model in the settings or in a `.env` file. The second is an MCP server from `mcp_server.py` with the tools `generate_pdf_bookmarks` and `check_llm_config` that an agent calls. Any model with an OpenAI-compatible API and image support works. The README lists Qwen, InternAI, OpenAI and DeepSeek.

Who it is for. People who work with scanned books, theses and reports and want a working bookmark panel in the PDF without marking it up by hand.

Good fit when

  • A scanned book opens without a bookmark panel while its contents are printed near the front
  • The preface uses Roman numerals, and chapter bookmarks have to land on the correct pages of the main body
  • You want to start bookmark building from a Claude Desktop chat by calling the `generate_pdf_bookmarks` tool
  • You need to switch the labelling model to another one with an OpenAI-compatible API without editing code

Not a fit when

  • The document has no contents page: the program reads that page and does not build bookmarks from chapter text
  • The file is confidential and images of its pages must not go to an external model provider
  • You need full-text search over scans: the tool adds bookmarks and does not create a recognized text layer
  • The document is in another language or has an unusual contents layout that you have not tried on a sample

Example request

Build bookmarks for scan-book.pdf from its contents page and save the result next to the original file

MCP

Transport
stdio
Authentication
API key

Environment variables

AUTOCONTENTS_API_KEY required, secret
API key of the service that hosts the image-capable model
AUTOCONTENTS_BASE_URL
Address of the OpenAI-compatible service, defaults to the Alibaba Bailian compatible endpoint
AUTOCONTENTS_MODEL
Model name, defaults to `qwen3.5-397b-a17b`

Limitations

  • The model must accept images and an API key is required. The pages the model reads go to the chosen provider.
  • Per the README, documents need a separate contents page and should be in Chinese or English.
  • MCP mode needs the `uv` package manager and Python 3.13 or newer, and the project path in the client config has to be replaced with your own.
  • GitHub did not detect the licence automatically, so read the terms in the repository's `LICENSE` file.
  • The interface and documentation are in Chinese, with few English hints in the README.

How to disable. Remove the `autoContents` block from `mcpServers` in the client config and restart the client. Stop the web version by closing the launch window. You can delete the program folder together with the `.env` file that holds the API key.

FAQ

What does autoContents do to a PDF?

It reads the contents page of a scanned document through a vision-capable model and writes bookmarks with jump targets into the PDF. The README says the result arrives in about a minute.

How do I connect autoContents to Claude Desktop?

Add an MCP block with the command `uv`, the arguments `run --project <path> python <path>/mcp_server.py` and the `AUTOCONTENTS_API_KEY` variable, then restart the client. The tools `generate_pdf_bookmarks` and `check_llm_config` appear in the tool list.

Which model works?

Any model with an OpenAI-compatible API and image support. The README covers Qwen through Alibaba Bailian and InternAI, and other providers need a key, a service address and a model name. MCP mode defaults to `qwen3.5-397b-a17b`.

Do I need Python for the regular version?

No. The archive from the Releases page ships launch files `启动 autoContents.command` for macOS and `启动 autoContents.bat` for Windows, so neither Python nor dependencies need installing. You enter the API key on the page at first start.

Where do the document pages go?

The pages the model reads are sent to the provider of the chosen model. If an external provider is not acceptable, point the tool at your own model with an OpenAI-compatible interface and image support.

Discussion

No questions or reviews yet.

MCP PDF for large documents: the agent searches by meaning and keyword across one file or a folder and reads only the pages, tables and scans it needs

MCP serverExtended access171Repository stars
Official

An MCP server that lets an agent read long PDFs through a document tree: retrieval by reasoning instead of a vector database

MCP serverExtended access412Repository stars
Official

MCP PDF from ComPDF: the agent converts PDFs and images to Word, Excel, Markdown and JSON and merges, splits, protects and compares files via a cloud API

MCP serverBroad access98Repository stars

PDF Tools for Claude Desktop and MCP hosts: form filling, signing, merging, splitting and data extraction done locally.

MCP serverBroad access160Repository stars

PDF extraction with self-checking: unreadable pages get a flag and never vanish silently, plus an MCP server for Claude

MCP serverExtended access86Repository stars
Official

An MCP server built on Docling: converts PDFs into structured documents, builds new ones and feeds them to RAG

MCP serverExtended access791Repository stars

Comparison with similar tools

Cards that share the main search query, and how they differ.

ToolOfficialAuthenticationRepository starsMain difference
autoContents (this card)noAPI key273
pdf-mcpnonot required171works with the PDF text layer rather than page images
ComPDF MCPyesAPI key98processes PDFs through ComPDF tools and does not build bookmarks from a contents page

README in short

The description is in Chinese and covers a tool for scanned PDFs, version 1.1.0. The author credits contributors, links archives for macOS and Windows, explains LLM service setup and keeps a changelog. A separate section describes running the MCP server through `uv`.

README badge

Report a problem