mcpField
P
PDF Manipulation Toolkit

PDF Manipulation Toolkit

ローカル
github.com/Sohaib-2ファイル・ストレージ1669 週間前に更新

PDF Manipulation Toolkit について

Claude などの MCP クライアント向け PDF 操作サーバーで、自然言語の指示で文書を扱えます。ページ編集、暗号化、最適化、修復、メタデータ管理に対応しています。

主な機能

  1. 01ページの結合・分割・抽出
  2. 02PDF の暗号化とパスワード解除
  3. 03圧縮・修復・整合性確認
  4. 04PDF メタデータの表示と更新
  5. 05ファイルのダウンロードと作業領域の設定

活用シーン

  1. 01研究資料の結合やマニュアルの分割
  2. 02PDF 文書の保護やロック解除
  3. 03破損ファイルの修復と容量削減
  4. 04文書構造や添付ファイルの確認

MCP 対応

MCP サーバーとして、PDF 操作、分析、ファイル管理の機能をツールとしてクライアントに公開し、Claude Desktop に接続できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

README(原文)English

プロジェクトの README より

この README の日本語訳はまだありません。以下は英語の原文です。日本語の紹介はページ上部をご覧ください。

PDF MCP Server

GitHub stars GitHub issues GitHub license Python 3.8+

Transform PDF manipulation with AI-powered natural language commands through Claude integration

Comprehensive PDF toolkit that integrates seamlessly with Claude AI via MCP (Model Context Protocol). Perform complex PDF operations using simple conversational commands - merge, split, encrypt, optimize, and analyze PDFs effortlessly.

Demo

🚀 Quick Start

Clone & Setup
git clone https://github.com/Sohaib-2/pdf-mcp-server.git
cd pdf-mcp-server
Option 1: With Virtual Environment (Recommended)
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS/Linux  
source .venv/bin/activate

pip install -r requirements.txt
Option 2: Without Virtual Environment
pip install fastmcp requests pathlib
Install PDF Tools

PDFtk:

# Ubuntu/Debian
sudo apt-get install pdftk
# macOS
brew install pdftk-java
# Windows: Download from https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/

QPDF:

# Ubuntu/Debian
sudo apt-get install qpdf
# macOS
brew install qpdf
# Windows: Download from https://qpdf.sourceforge.io/

🔧 Claude Desktop Integration

  1. Locate Claude config file:

    • Windows: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  2. Add PDF MCP Server:

With Virtual Environment:

{
  "mcpServers": {
    "pdf-tools": {
      "command": "C:\\path\\to\\pdf-mcp-server\\.venv\\Scripts\\python.exe",
      "args": ["C:\\path\\to\\pdf-mcp-server\\server.py"]
    }
  }
}

Without Virtual Environment:

{
  "mcpServers": {
    "pdf-tools": {
      "command": "python",
      "args": ["C:\\path\\to\\pdf-mcp-server\\server.py"]
    }
  }
}

macOS/Linux with venv:

{
  "mcpServers": {
    "pdf-tools": {
      "command": "/path/to/pdf-mcp-server/.venv/bin/python",
      "args": ["/path/to/pdf-mcp-server/server.py"]
    }
  }
}
  1. Restart Claude Desktop

  2. Start using natural language:

    • "Merge these 3 PDFs into one document"
    • "Encrypt my report with password protection"
    • "Extract pages 1-10 from this manual"

📚 Complete Tool Reference

Core Operations
ToolDescriptionExample
merge_pdfsCombine multiple PDFsmerge_pdfs(['doc1.pdf', 'doc2.pdf'], 'combined.pdf')
split_pdfSplit into individual pagessplit_pdf('document.pdf', './pages/')
extract_pagesExtract specific page rangesextract_pages('book.pdf', '1-5,10,15-20', 'excerpt.pdf')
rotate_pagesRotate pages by degreesrotate_pages('scan.pdf', '90', 'rotated.pdf', '1-3')
Security & Encryption
ToolDescriptionExample
encrypt_pdfAES-256 encryptionencrypt_pdf('file.pdf', 'secure.pdf', 'password123')
encrypt_pdf_basicBasic password protectionencrypt_pdf_basic('doc.pdf', 'protected.pdf', 'pass', 'admin')
decrypt_pdfRemove password protectiondecrypt_pdf('locked.pdf', 'unlocked.pdf', 'password')
Optimization & Repair
ToolDescriptionExample
optimize_pdfCompress for web/emailoptimize_pdf('large.pdf', 'small.pdf', 'high')
repair_pdfFix corrupted PDFsrepair_pdf('broken.pdf', 'fixed.pdf')
check_pdf_integrityValidate PDF structurecheck_pdf_integrity('suspicious.pdf')
Information & Analysis
ToolDescriptionExample
get_pdf_infoDetailed metadata (JSON)get_pdf_info('document.pdf')
update_pdf_metadataModify title/author/etcupdate_pdf_metadata('file.pdf', 'updated.pdf', title='New Title')
inspect_pdf_structureInternal structure analysisinspect_pdf_structure('complex.pdf', detailed=True)
extract_pdf_attachmentsExtract embedded filesextract_pdf_attachments('portfolio.pdf', './attachments/')
File Management
ToolDescriptionExample
download_pdfDownload from URLdownload_pdf('https://example.com/file.pdf', 'local.pdf')
open_pdf_previewOpen with system vieweropen_pdf_preview('report.pdf', browser=False)
get_file_infoFile size/path detailsget_file_info('document.pdf')
configure_pdf_workspaceSet working directoryconfigure_pdf_workspace('/path/to/workspace')
count_pdfs_in_directoryList PDFs in foldercount_pdfs_in_directory('./pdf_folder/')
System Management
ToolDescriptionPurpose
get_server_statusCheck tool availabilityVerify PDFtk/QPDF installation
list_default_directoriesShow search pathsDebug file resolution issues
get_pdf_tools_helpComplete documentationIn-app help reference

💬 Natural Language Examples

Document Management:

  • "Combine all my research papers into one bibliography"
  • "Split this 100-page manual into chapters"
  • "Extract the executive summary from pages 2-4"

Security Operations:

  • "Encrypt this contract with military-grade protection"
  • "Remove password from this locked document"
  • "Add owner permissions to prevent editing"

File Optimization:

  • "Optimize all PDFs in my downloads folder"
  • "Fix this corrupted presentation file"

Advanced Analysis:

  • "Show me detailed metadata about this academic paper"
  • "Analyze the internal structure for security audit"

🗂️ File Path Handling

Flexible path resolution:

  • Absolute: C:\Documents\file.pdf
  • Relative: ../pdfs/document.pdf
  • Filename only: report.pdf (searches default directories)

Default search order:

  1. PDF_WORKSPACE environment variable
  2. ~/Documents/PDFs
  3. ~/Downloads
  4. ~/Desktop
  5. Current working directory

⚙️ Configuration

Custom workspace:

configure_pdf_workspace('/path/to/your/pdfs')

Check installation:

get_server_status()  # Verify PDFtk and QPDF availability

🛠️ Troubleshooting

Common issues:

ProblemSolution
PDFtk not foundInstall PDFtk and add to PATH
QPDF errorInstall QPDF via package manager
File not foundUse list_default_directories() to check search paths
Permission deniedRun with appropriate file permissions
Invalid PDFUse check_pdf_integrity() to validate file

Debug commands:

get_server_status()           # Check tool installation
list_default_directories()    # Verify search paths  
get_pdf_info('file.pdf')      # Validate PDF structure

🏗️ Architecture

pdf-mcp-server/
├── server.py              # FastMCP server with 16 tools
├── pdftk_tools.py         # PDFtk CLI wrapper
├── qpdf_tools.py          # QPDF CLI wrapper  
├── utils.py               # File utilities & path resolution
└── requirements.txt       # Python dependencies

Built with:

  • FastMCP - MCP server framework
  • PDFtk - PDF manipulation
  • QPDF - Advanced PDF processing

🤝 Contributing

  1. Fork the repository
  2. Create feature branch: git checkout -b feature/amazing-feature
  3. Commit changes: git commit -m 'Add amazing feature'
  4. Push to branch: git push origin feature/amazing-feature
  5. Open Pull Request

📄 License

This project is licensed under the MIT License

👨‍💻 Author

Sohaib-2 - GitHub

🌟 Acknowledgments


⭐ Star this repo if it helped you! | 🐛 Report issues | 💡 Request features

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。