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.3.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.3-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for mcp_file_contents_reader-1.0.3.tar.gz
Algorithm Hash digest
SHA256 000a7ef676ba359b362c030d7a2743fa8fc364e749ba7f56d470fc868b67087e
MD5 53ee006f527de3b2ae62f17dafd6a814
BLAKE2b-256 1d098d5520e2655540f4d2e82b62a1aa0c95d4e514a182022c72ccf1fa66ca41

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mcp_file_contents_reader-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 b61de98f7fa1477fd91a0827c038bb49085f6f9c9629548a50a69dbbfc1ab97c
MD5 022ac152324418ec72697635380054b3
BLAKE2b-256 4b4c5acda6ca5a017baae831f5d8fc631df55df201d691a29cad3db1cf72a58d

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