mcp-manual-walker

junkreef/mcp-manual-walker

3.2

If you are the rightful owner of mcp-manual-walker and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

An MCP server designed to bridge the information gap between AI agents and PDF manuals by providing structured access to manual content.

Tools
3
Resources
0
Prompts
0

MCP Manual Walker 🚶‍♂️

An MCP server to bridge the information gap between AI agents and PDF manuals.

This server scans a directory for PDF files, extracts their bookmarks, and provides tools for an AI agent to access the content of the manuals in a structured, token-efficient way.

✨ About The Project

This project was created to solve a simple problem: AI Agents are great, but they struggle with large, unstructured data like PDF manuals. This server acts as a "librarian" for the AI, organizing the information in the manuals and making it easy for the AI to find what it needs.

The server will:

  • 📚 Scan a directory for PDF files.
  • 🔖 Extract bookmarks from the PDFs.
  • 📝 Convert the bookmarked sections into Markdown.
  • 🧠 Provide a set of tools for the AI to use.
  • ⚡ Cache the results for speedy access.

Built With

🚀 Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

You need to have Python 3.11+ and uv installed.

Installation

  1. Clone the repo
    git clone https://github.com/junkreef/mcp-manual-walker.git
    
  2. Install Python packages using uv. This command syncs your environment with the uv.lock file.
    uv sync
    
  3. Place your PDF manuals in the data/pdfs directory.
  4. Run the server
    python src/mcp_manual_walker/main.py
    

🛠️ Usage

The server provides a set of tools for AI agents. The typical workflow is as follows:

  1. Call list_manuals() to get a list of all available manuals and their unique IDs.
  2. Use get_manual_metadata(manual_id) to retrieve the hierarchical table of contents (bookmarks) for a specific manual.
  3. Finally, call get_markdown_content(bookmark_id) to get the token-efficient Markdown content for the desired section.

This process allows an agent to intelligently navigate large documents and only pull the necessary information into its context.

🗺️ Roadmap

  • Implement a more sophisticated search functionality.
  • Add a web interface for managing manuals.

See the open issues for a full list of proposed features (and known issues).

🤝 Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes. This project follows the Conventional Commits specification.
    git commit -m "feat: Add some AmazingFeature"
    
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

📜 License

Distributed under the MIT License. See LICENSE for more information.

📧 Contact

Junpei Kishi - junkreef@longarch.net

Project Link: https://github.com/junkreef/mcp-manual-walker