mcp-upstage
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-upstageextract text from this PDF file"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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.
Related MCP server: MCP-Upstage-Server
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:
Upstage API Key: Obtain your API key from Upstage API.
Python 3.10+: The server requires Python version 3.10 or higher.
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
Using uv (Recommended)
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-upstageConfigure 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.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Using uvx Command (Recommended)
{
"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-upstageStep 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
Download Claude Desktop:
Download Claude DesktopOpen and Edit Configuration:
Navigate to Claude → Settings → Developer → Edit Config.
Edit the
claude_desktop_config.jsonfile 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-upstagewith 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/uvwith the output ofwhich uv./path/to/cloned/mcp-upstagewith 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:
Document Parsing (
parse_document):Description: Processes documents and extracts content while preserving structure.
Parameter:
file_path– the path to the document to be processed.Example Query:
"Can you parse the document atC:\Users\username\Documents\contract.pdfand provide a summary?"
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 fromC:\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 yourclaude_desktop_config.jsonfile. 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.logmacOS:
~/Library/Logs/Claude/mcp-upstage.log
Server Connection Issues:
Restart Claude Desktop. Ensure thatuvxis 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 inclaude_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.logmacOS:
~/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.
Available Tools
2 toolsextract_informationC
Extract structured information from documents using Upstage Universal Information Extraction.
This tool can extract key information from any document type without pre-training.
You can either provide a schema defining what information to extract, or let the system
automatically generate an appropriate schema based on the document content.
Supported file formats: JPEG, PNG, BMP, PDF, TIFF, HEIC, DOCX, PPTX, XLSX
Max file size: 50MB
Max pages: 100
Args:
file_path: Path to the document file to process
schema_path: Optional path to a JSON file containing the extraction schema
schema_json: Optional JSON string containing the extraction schema
auto_generate_schema: Whether to automatically generate a schema if none is provided
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to the document file to process | |
| schema_json | No | JSON string containing the extraction schema (optional) | |
| schema_path | No | Path to JSON file containing the extraction schema (optional) | |
| auto_generate_schema | No | Whether to automatically generate a schema |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses supported file formats, maximum file size (50MB), and maximum pages (100), which are useful constraints. However, it does not mention whether the operation is read-only, what happens on failure, or any rate limits. Given that the tool is non-destructive, the transparency is adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is reasonably structured with a brief intro followed by bullet points for constraints and a list of arguments. However, it is somewhat verbose, especially the 'Args' section which duplicates the input schema. Not all sentences earn their place; the 'without pre-training' phrase is extraneous.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no output schema, and no annotations, the description should cover output format and error behavior. It does not explain what the extracted information looks like or how to interpret the result. It also does not mention any prerequisites (e.g., valid document content) or edge cases, leaving significant gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds context that the schema can be provided via file path, JSON string, or auto-generated, which clarifies the relationship between the parameters. However, it largely repeats the schema descriptions without adding significant new meaning beyond explaining the optionality.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool extracts structured information from documents, using a specific technology (Upstage Universal Information Extraction). It mentions key capabilities like schema provision and auto-generation. However, it does not explicitly differentiate itself from the sibling tool 'parse_document', which could cause confusion about which tool to use for what.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the flexibility of providing a schema or auto-generating one, but it lacks guidance on when to use this tool versus its sibling 'parse_document'. There are no 'when to use' or 'when not to use' statements, nor prerequisites or context about the expected input document types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
parse_documentB
Parse a document using Upstage AI's document digitization API.
This tool extracts the structure and content from various document types,
including PDFs, images, and Office files. It preserves the original formatting
and layout while converting the document into a structured format.
Supported file formats include: PDF, JPEG, PNG, TIFF, and other common document formats.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | Path to the document file to be processed | |
| output_formats | No | Output formats (e.g., 'html', 'text', 'markdown') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only mentions high-level behavior (extracting, preserving formatting) and supported formats, but fails to disclose authentication needs, rate limits, side effects (e.g., if files are modified), or the exact nature of the structured output. This is insufficient for a tool of this complexity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively concise with three short paragraphs. The first sentence is a clear purpose statement. The rest adds useful detail about format preservation and supported types. It is well-structured and not overly verbose, though minor repetition exists.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity and lack of output schema, the description is incomplete. It does not mention capabilities like OCR, table extraction, language support, or output structure details. While it covers basic functionality, an agent would need more context for proper invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by listing supported file formats beyond what the schema provides, and by explaining that formatting and layout are preserved, which gives context to the output. It does not, however, elaborate on the 'output_formats' parameter beyond the schema's examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool parses documents using Upstage AI API, extracting structure and content while preserving formatting. It mentions supported file formats, giving a good sense of the tool's purpose. However, it does not explicitly distinguish from the sibling tool 'extract_information', so it loses a point for full clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, ideal use cases, or when to avoid it. The sibling tool 'extract_information' is listed but not contrasted, leaving the agent to infer usage context without help.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
2 tool updates
v0.1.0- First observed
extract_information - First observed
parse_document
TDQS
The two tools have clearly distinct purposes: parse_document extracts layout-preserving content, while extract_information extracts structured data using a schema. No overlap in functionality.
Both tool names use the verb_noun pattern with snake_case (parse_document, extract_information), maintaining consistent naming conventions.
With only 2 tools, the server feels minimal for a document processing domain. While focused, it is borderline thin for typical workflows.
The two tools cover core document digitization and extraction needs. Minor gaps exist (e.g., no file upload or conversion), but the primary use cases are addressed.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
High-fidelity PDF to structured Markdown conversion and document field extraction.
Composable APIs for document extraction, image transformation, and document & sheet generation.
Turn documents into structured data: parse, extract, classify, split, and fill PDF forms.
1Parse, extract, split, and ask over digital PDFs (text layer, no OCR) from Cursor and Claude.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables Claude Desktop to search and query personal document collections (PDF, Word, Markdown, text) using semantic search and conversational AI with full context preservation across exchanges.MIT

MCP-Upstage-Serverofficial
AlicenseAqualityDmaintenanceEnables document processing through Upstage AI services including parsing various document formats, extracting structured information with custom schemas, auto-generating extraction schemas, and classifying documents into categories.4293MIT- AlicenseAqualityCmaintenanceEnables AI assistants to extract and structure content from documents (PDFs, images, Office files) using Upstage AI's document digitization and information extraction APIs.23MIT
- AlicenseNot gradedqualityBmaintenanceEnables querying enterprise documents (DOCX, PDF, PPTX) using natural language, with hybrid search and MCP integration for Claude Desktop and other agents.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/UpstageAI/mcp-upstage'
If you have feedback or need assistance with the MCP directory API, please join our Discord server