Skip to main content

An AWS Labs Model Context Protocol (MCP) server for document parsing

Project description

Document Loader MCP Server

Model Context Protocol (MCP) server for document parsing and content extraction

This MCP server provides tools to parse and extract content from various document formats including PDF, Word documents, Excel spreadsheets, PowerPoint presentations, and images.

Features

  • PDF Text Extraction: Extract text content from PDF files using pdfplumber
  • Word Document Processing: Convert DOCX/DOC files to markdown using markitdown
  • Excel Spreadsheet Reading: Parse XLSX/XLS files and convert to markdown
  • PowerPoint Presentation Processing: Extract content from PPTX/PPT files
  • Image Loading: Load and display various image formats (PNG, JPG, GIF, BMP, TIFF, WEBP)

Prerequisites

Installation Requirements

  1. Install uv from Astral or the GitHub README
  2. Install Python 3.10 or newer using uv python install 3.10 (or a more recent version)

Installation

Cursor VS Code
Install MCP Server Install on VS Code

Configure the MCP server in your MCP client configuration:

{
  "mcpServers": {
    "awslabs.document-loader-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.document-loader-mcp-server@latest"],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

For Amazon Q Developer CLI, add the MCP client configuration and tool command to the agent file in ~/.aws/amazonq/cli-agents.

Example, ~/.aws/amazonq/cli-agents/default.json

{
  "mcpServers": {
    "awslabs.document-loader-mcp-server": {
      "command": "uvx",
      "args": ["awslabs.document-loader-mcp-server@latest"],
      "env": {
        "FASTMCP_LOG_LEVEL": "ERROR"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Available Tools

  • read_document: Extract content from various document formats by specifying file_path and file_type ('pdf', 'docx', 'doc', 'xlsx', 'xls', 'pptx', 'ppt')
  • read_image: Load image files for LLM viewing and analysis

Environment Variables

  • FASTMCP_LOG_LEVEL: Set logging level (ERROR, INFO, DEBUG)

Development

Setup

# Clone the repository
git clone https://github.com/awslabs/mcp.git
cd mcp/src/document-loader-mcp-server

# Install dependencies
uv sync

# Install in development mode
uv pip install -e .

Testing

# Run tests
uv run pytest

# Run with coverage
uv run pytest --cov=awslabs.document_loader_mcp_server

The test suite includes:

  • Server functionality validation
  • Document parsing tests with generated sample files
  • Error handling verification

Sample Documents

The test suite automatically generates sample documents for testing:

  • PDF with multi-page content
  • DOCX with formatted text and lists
  • XLSX with multiple sheets and data
  • PPTX with slides and content
  • Various image formats

Docker

You can also run this server in a Docker container:

docker build -t document-loader-mcp-server .
docker run -p 8000:8000 document-loader-mcp-server

License

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

Contributing

We welcome contributions! Please see CONTRIBUTING.md for details.

Support

For issues and questions, please use the GitHub issue tracker.

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

awslabs_document_loader_mcp_server-1.0.3.tar.gz (163.8 kB view details)

Uploaded Source

Built Distribution

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

File details

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

File metadata

File hashes

Hashes for awslabs_document_loader_mcp_server-1.0.3.tar.gz
Algorithm Hash digest
SHA256 dc955d591ed02610cbf690ebe7b8b970173a99c981831d362dccebf44ebd57b4
MD5 8598e0055fbebd479aa5cdab416f8b9f
BLAKE2b-256 bfed52f3ece5c52b7b71967cb628671f79aaf3ee374b1b2852b906af873561fa

See more details on using hashes here.

Provenance

The following attestation bundles were made for awslabs_document_loader_mcp_server-1.0.3.tar.gz:

Publisher: release.yml on awslabs/mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

File hashes

Hashes for awslabs_document_loader_mcp_server-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c0bd7ac517cf75c921859a90e5a94ffb2764a1cd80a876f368af1e1384dd0662
MD5 f1c16163523eef884b1e2ba3a1b54485
BLAKE2b-256 54efb7ae899e92c77099b439df2180a2ce5363db941c8ce220c924b62e4aeb50

See more details on using hashes here.

Provenance

The following attestation bundles were made for awslabs_document_loader_mcp_server-1.0.3-py3-none-any.whl:

Publisher: release.yml on awslabs/mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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