Skip to main content

Upstage MCP

A Model Context Protocol (MCP) server for Upstage AI's document digitization and information extraction capabilities

Overview

The Upstage MCP Server provides a robust bridge between AI assistants and Upstage AI’s powerful document processing APIs. This server enables AI models—such as Claude—to effortlessly extract and structure content from various document types including PDFs, images, and Office files. The package supports multiple formats and comes with seamless integration options for Claude Desktop.

Key Features

  • Document Digitization: Extract structured content from documents while preserving layout.
  • Information Extraction: Retrieve specific data points using intelligent, customizable schemas.
  • Multi-format Support: Handles JPEG, PNG, BMP, PDF, TIFF, HEIC, DOCX, PPTX, and XLSX.
  • Claude Desktop Integration: Effortlessly connect with Claude and other MCP clients.

Prerequisites

Before using this server, ensure you have the following:

  1. Upstage API Key: Obtain your API key from Upstage API.
  2. Python 3.10+: The server requires Python version 3.10 or higher.
  3. The MCP server relies upon Astral UV to run, please install

Installation & Configuration

This guide provides step-by-step instructions to set up and configure the mcp-upstage

No additional installation is required when using uvx as it handles execution. However, if you prefer to install the package directly:

uv pip install mcp-upstage

Configure Claude Desktop

For integration with Claude Desktop, add the following content to your claude_desktop_config.json:

Configuration Location

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "mcp-upstage": {
      "command": "uvx",
      "args": ["mcp-upstage"],
      "env": {
        "UPSTAGE_API_KEY": "<your-api-key>"
      }
    }
  }
}

If uvx is not available globally, you may encounter a Server disconnected error. To resolve this, run which uvx to find its full path, and replace "command": "uvx" above with the returned path.

After adding the configuration, restart Claude Desktop to apply the changes.

Output Directories

Processing results are stored in your home directory under:

  • Document Parsing Results:
    ~/.mcp-upstage/outputs/document_parsing/
  • Information Extraction Results:
    ~/.mcp-upstage/outputs/information_extraction/
  • Generated Schemas:
    ~/.mcp-upstage/outputs/information_extraction/schemas/

Local/Development Setup

Follow these steps to set up and run the project locally:

Step 1: Clone the Repository

git clone https://github.com/UpstageAI/mcp-upstage.git
cd mcp-upstage

Step 2: Set Up the Python Environment

# Install uv if not already installed
pip install uv

# Create and activate a virtual environment
uv venv

# Activate the virtual environment
# On Windows:
# .venv\Scripts\activate
# On macOS/Linux:
source .venv/bin/activate

# Install dependencies in editable mode
uv pip install -e .

Step 3: Configure Claude Desktop for Local Testing

  1. Download Claude Desktop:
    Download Claude Desktop

  2. Open and Edit Configuration:

    • Navigate to Claude → Settings → Developer → Edit Config.
    • Edit the claude_desktop_config.json file with the following configurations:

    For Windows:

    {
      "mcpServers": {
        "mcp-upstage": {
          "command": "uv",
          "args": [
            "run",
            "--directory",
            "C:\\path\\to\\cloned\\mcp-upstage",
            "python",
            "-m",
            "upstage_mcp.server"
          ],
          "env": {
            "UPSTAGE_API_KEY": "your_api_key_here"
          }
        }
      }
    }
    

    Replace C:\\path\\to\\cloned\\mcp-upstage with your actual repository path.

    For macOS/Linux:

    {
      "mcpServers": {
        "mcp-upstage": {
          "command": "/Users/username/.local/bin/uv",
          "args": [
            "run",
            "--directory",
            "/path/to/cloned/mcp-upstage",
            "python",
            "-m",
            "upstage_mcp.server"
          ],
          "env": {
            "UPSTAGE_API_KEY": "your_api_key_here"
          }
        }
      }
    }
    

    Replace:

    • /Users/username/.local/bin/uv with the output of which uv.
    • /path/to/cloned/mcp-upstage with the absolute path to your local clone.

Tip for macOS/Linux users: If connection issues occur, using the full path to your uv executable can improve reliability.

After configuring, restart Claude Desktop.

Available Tools

The server exposes two primary tools for AI models:

  1. Document Parsing (parse_document):

    • Description: Processes documents and extracts content while preserving structure.
    • Parameters:
      file_path – the path to the document to be processed;
      output_formats (optional) – output formats such as html, text, markdown;
      mode (default standard) – standard, enhanced or auto. Use enhanced for complex tables, charts, handwriting or low-quality scans; auto lets the API decide per page;
      ocr (default force) – force always runs OCR, auto uses embedded text of digital documents when possible;
      model (default document-parse) – the latest model, or a dated version such as document-parse-260930 to pin it.
    • Applied mode: The response ends with the model and per-mode page usage reported by the API, e.g. Processed by document-parse-260930 | usage: {"pages": 1, "enhanced": [1]}. If the requested standard/enhanced mode was not applied, a WARNING line follows.
    • Cost note: enhanced (and pages that auto routes to enhanced) is billed at a higher per-page price than standard and is slower. Keep the default standard unless the document needs it.
    • Example Query:
      "Can you parse the document at C:\Users\username\Documents\contract.pdf and provide a summary?"
      "Parse the scanned form at ~/Documents/form.pdf in enhanced mode."
  2. Information Extraction (extract_information):

    • Description: Extracts structured information from documents based on predefined or auto-generated schemas.
    • Parameters:
      file_path – the document file path;
      schema_path (optional) – a JSON file with an extraction schema;
      auto_generate_schema (default true) – whether to auto-generate a schema.
    • Example Query:
      "Extract the invoice number, date, and total from C:\Users\username\Documents\invoice.pdf."

Below is the revised troubleshooting section formatted as requested. You can copy and paste the following Markdown directly into your README:

Troubleshooting

Common Issues

  • API Key Missing:
    Ensure that your UPSTAGE_API_KEY is correctly set in your claude_desktop_config.json file. Obtain a valid API key from Upstage Console.

  • File Not Found:
    Double-check the file path for correctness and accessibility. Ensure that file paths are absolute (e.g., C:\Users\name\Documents\file.pdf) and that any special characters in the path are properly escaped.

  • Server Not Starting:
    Verify that your virtual environment is activated and all dependencies are installed. Additionally, review the Claude Desktop log files for errors:

    • Windows: %APPDATA%\Claude\logs\mcp-upstage.log
    • macOS: ~/Library/Logs/Claude/mcp-upstage.log
  • Server Connection Issues:
    Restart Claude Desktop. Ensure that uvx is installed and available in your system PATH, or use its absolute path in your configuration if needed.

  • Processing Failures:
    Check that the document is in a supported format (PDF, JPEG, PNG, TIFF, etc.), its file size is under 50MB, and it contains fewer than 100 pages. Test with a simpler document to confirm functionality.

  • Invalid Document Format:
    Verify that the document is in a supported, uncorrupted format.

  • Failed to Connect to Upstage API:
    Confirm your network connection, firewall settings, and configuration details in claude_desktop_config.json. Review the logs for more detailed error messages.

Log Files

For troubleshooting, view the server logs at:

  • Windows:
    %APPDATA%\Claude\logs\mcp-upstage.log
  • macOS:
    ~/Library/Logs/Claude/mcp-upstage.log

Contributing

Contributions are welcome! If you wish to enhance the project or add new features, please fork the repository and submit a pull request. For major changes, please open an issue first to discuss what you would like to change.

License

This project is licensed under the MIT License.

Metadata

Release files for mcp-upstage 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mcp-upstage 0.2.0
File Size Uploaded Provenance
mcp_upstage-0.2.0.tar.gz 61.3 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for mcp-upstage 0.2.0
File Interpreter ABI Platform
mcp_upstage-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 78.9 kB

Release files / mcp_upstage-0.2.0.tar.gz

Download URL mcp_upstage-0.2.0.tar.gz
Size 61.3 kB
Tags Source
SHA-256 checksum
How to use checksums
9d928984d76055e272ade41bdb5a112977998a006e368170ecb10ac515fafb5f
BLAKE2b-256 checksum
How to use checksums
b48582c874aeb1c13b32cb3e59755c0885786917d40b9204f2653f67b4ccb346
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / mcp_upstage-0.2.0-py3-none-any.whl

Download URL mcp_upstage-0.2.0-py3-none-any.whl
Size 17.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c4d7d4b3f5e8783ea126b9c35871ac5754677c2bd8772cdc18ba7fa695e46218
BLAKE2b-256 checksum
How to use checksums
6d1e540dd401040ac6dfd51073f45f9acf64e6e50050a124c140bc0ec2f6b062
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.16

Security for mcp-upstage 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page