Skip to main content

MCP (Model Context Protocol) server for reading and analyzing various file formats including PDF, Excel, Word, and PowerPoint

Project description

MCP File Contents Reader

A Model Context Protocol (MCP) server for reading and analyzing various file formats including PDF, Excel, Word, and PowerPoint documents.

Features

  • Multi-format Support: Read PDF, Excel (.xlsx, .xls), Word (.docx, .doc), and PowerPoint (.pptx, .ppt) files
  • Content Analysis: Extract and analyze file contents with structured information extraction
  • Document Search: Search for specific content across multiple documents
  • File Upload: Support for temporary file upload and processing
  • MCP Integration: Full Model Context Protocol compliance

Installation

Using uvx (Recommended)

uvx mcp-file-contents-reader

Using pip

pip install mcp-file-contents-reader

From Source

git clone https://github.com/yourusername/mcp-file-contents-reader.git
cd mcp-file-contents-reader
pip install -e .

Usage

MCP Configuration

Add the following to your mcp.json configuration file:

{
  "mcpServers": {
    "file-reader": {
      "command": "uvx",
      "args": ["mcp-file-contents-reader"]
    }
  }
}

Or if installed via pip:

{
  "mcpServers": {
    "file-reader": {
      "command": "mcp-file-contents-reader"
    }
  }
}

Available Tools

1. read_file

Read Excel, PDF, PPT, Word files and return content as text.

Parameters:

  • file_path (required): Path to the file to read
  • sheet_name (optional): Sheet name for Excel files
  • page_range (optional): Page range for PDF files (e.g., '1-5' or '1,3,5')

2. search_documents

Search for specific content in Documents directory and analyze files.

Parameters:

  • keywords (required): Keywords to search for in file content
  • search_path (optional): Directory path to search (default: ~/Documents)
  • file_types (optional): File types to search (default: ["pdf", "docx", "xlsx", "pptx", "doc", "xls", "ppt"])

3. analyze_file_content

Analyze specific file content in detail and extract structured information.

Parameters:

  • file_path (required): Path to the file to analyze
  • extract_patterns (optional): Specific patterns or information types to extract

4. upload_file

Upload and temporarily store Base64 encoded file data.

Parameters:

  • file_data (required): Base64 encoded file data
  • filename (required): Filename with extension

5. read_uploaded_file

Read uploaded file and return content.

Parameters:

  • file_id (required): ID of the uploaded file

6. list_uploaded_files

Return list of uploaded files.

7. delete_uploaded_file

Delete uploaded file.

Parameters:

  • file_id (required): ID of the file to delete

8. get_file_info

Return basic information about a file.

Parameters:

  • file_path (required): Path to the file to get information about

9. list_supported_formats

Return list of supported file formats.

Supported File Formats

  • Excel: .xlsx, .xls
  • PDF: .pdf
  • PowerPoint: .pptx, .ppt
  • Word: .docx, .doc

Example Usage

Search for donation receipts

{
  "tool": "search_documents",
  "arguments": {
    "keywords": ["donation", "receipt", "charity", "fund"],
    "search_path": "/Users/username/Documents",
    "file_types": ["pdf", "docx", "xlsx"]
  }
}

Analyze a specific file

{
  "tool": "analyze_file_content",
  "arguments": {
    "file_path": "/Users/username/Documents/receipt.pdf",
    "extract_patterns": ["donor", "amount", "organization", "date"]
  }
}

Development

Setup Development Environment

git clone https://github.com/yourusername/mcp-file-contents-reader.git
cd mcp-file-contents-reader
pip install -e ".[dev]"

Running Tests

pytest

Code Formatting

black mcp_file_reader/

Type Checking

mypy mcp_file_reader/

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for your changes
  5. Run the test suite
  6. Submit a pull request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Changelog

1.0.0

  • Initial release
  • Support for PDF, Excel, Word, and PowerPoint files
  • MCP server implementation
  • Document search and analysis capabilities

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mcp_file_contents_reader-1.0.0.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mcp_file_contents_reader-1.0.0-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file mcp_file_contents_reader-1.0.0.tar.gz.

File metadata

File hashes

Hashes for mcp_file_contents_reader-1.0.0.tar.gz
Algorithm Hash digest
SHA256 e874607702647b8f76c3a4ea943fb6959825187b5afb283a24d2f989af934440
MD5 82ab724f7be75623b0b43bc5067efe8d
BLAKE2b-256 5c98bfb71d2b1d50a8079713873d79812ac0e1269567ffd6ba6b33275932a4b5

See more details on using hashes here.

File details

Details for the file mcp_file_contents_reader-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mcp_file_contents_reader-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2b5d6b57d7b36f5baa239284ef1856c4b14bfae166ba8219ad501d82e2bf3973
MD5 2b2930a2403c1ffa43c91f91111328f6
BLAKE2b-256 c9094b54ae3ce5a6c38cfe22f794f316bc04f499b9a489bc5e17b68cdda69b38

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page