← Back to directory
U

Unstructured API MCP Server

Official
Manage Unstructured API sources, destinations, and workflows via MCP
Category
Dev Tools #380 of 438
Stars
★ 43 Popular
Transport
stdio (local process) · SSE
Runtime
Python 3.12+
Credentials
API key / credential required
Last commit
Tools
26
36FMRS · D

This is Unstructured's official MCP server for the Unstructured API, covering full management of sources, destinations, workflows, and jobs, plus integrated Firecrawl web crawling, with stdio and SSE transports and a Claude Desktop configuration example. The README explicitly states the server is not actively maintained and is kept for reference, recommending the Unstructured Transform MCP server for file parsing and structured transformation. It suits users who already have an Unstructured API key and want to manage connectors and workflows through MCP; it is not suited for production use requiring active maintenance, and delete tools plus the full-replacement behavior of update_workflow require caution.

Strongest · Documentation 11/20 Weakest · Maintenance 3/20

Reliability
6/20
Security and permissions
7/20
Maintenance
3/20
Documentation
11/20
Setup experience
9/20
Why each score
Reliability 6/20
Only the README was supplied; no manifest cache, no CI workflows, and no committed tests are visible, so the static calibration cap applies (reliability <= 12). The README explicitly states the server is 'not actively maintained and is kept here for reference,' which lowers dependability expectations further. The tool list is broadly coherent (list/get/create/update/delete families), but there are visible defects: a stray parenthesis in the `create_source_connector` description, and `cancel_job` described as 'Delete a specific job by id,' contradicting the tool name's cancel semantics. Parameter behavior, pagination, and filtering are unspecified. The 'Known issues' section admits `update_workflow` is not a patch applier and fully replaces workflow config, a sharp edge in a core path. Error handling, dependency controllability, timeouts, and rate-limit behavior have no supporting evidence and are deducted as missing evidence.
Security and permissions 7/20
Credential handling is centralized via a .env file with per-connector variables, and no real tokens or secrets appear in the examples, with no sign of covert exfiltration, so no red line is triggered. However, the surface is dangerous: tools include create/update/delete of sources, destinations, and workflows, plus `run_workflow` and `cancel_job`, all with remote, potentially destructive side effects. Confirmation exists only as a client-side env var (`CONFIRM_TOOL_USE`) in the sample minimal client, and the docs suggest disabling it with merely a caution note; the server itself shows no enforced confirmation or least-privilege scoping. `DEBUG_API_REQUESTS` writes request parameters to local logs with no disclosure of whether credentials or sensitive payloads may be included. Firecrawl external crawling and an optional desktop-commander terminal/filesystem integration further expand privileges, acknowledged only as 'the client now has access to private files.' Score 7.
Maintenance 3/20
Evidence is thin: no LICENSE is present (license listed as unknown), which is itself a deduction, and the README opens by declaring the server unmaintained and kept for reference only, effectively a self-declared freeze. Stars (42) and open issues (4) are discovery signals only and cannot add points under the evidence rules. There are no release artifacts, no dependency-update evidence, no security-response channel, and no ownership or governance information; only a CHANGELOG.md convention and a 0.x.x-dev pre-release preference are mentioned. Score 3.
Documentation 11/20
The documentation is comparatively layered and substantial: a tools table, a per-connector credential table, install/config via uvx, pip, and source, Claude Desktop plus SSE/stdio transport examples, debugging guidance (MCP Inspector), a note on loading tool subsets, known issues, and troubleshooting for ENOENT. Deductions: the tools table contains errors (cancel_job described as delete, stray punctuation); tool parameters, pagination, rate limits, cost, and quotas are undisclosed; the credential table mixes `ANTHROPIC_API_KEY` with server-side connector secrets, which can mislead; the doc mildly contradicts its own capability by declaring the server unmaintained and steering users elsewhere while still giving full setup steps; and there is no upstream API compatibility matrix or usable changelog content. Score 11.
Setup experience 9/20
Static calibration limits this dimension: with no CI and no committed tests, setup cannot exceed 15. The install path is reasonably clear, offering uvx one-liners, direct pip install, and source-based `uv sync`, with concrete Claude Desktop JSON config for both uvx and python, plus SSE/stdio run instructions and make targets, along with troubleshooting entries. Gaps remain: several code blocks are malformed (a four-backtick .env fence, doubled backticks around 'uns-mcp'), the editable-install step pairs `uvx` with `pip install -e .` in a questionable way, the stdio config requires an ABSOLUTE/PATH with no guidance on locating it, external dependencies are numerous (Firecrawl, desktop-commander, Node/npx), and there is no platform-compatibility note or minimal verification step. Score 9.

Static review · not runListed 2026-09-10

Read the FMRS scoring method →

Fit and risk

What it can accessUses the networkChanges third-party account dataConnects to a database

Best for

  • Users who need to manage Unstructured workflows and connectors programmatically through an MCP client
  • Teams that already have an Unstructured API key and know the platform concepts
  • Users who want to feed web crawl results into Unstructured workflows

Not for

  • Production environments needing active maintenance and support (the server is not actively maintained)
  • Users who only need to parse and transform files into structured output (use the Unstructured Transform MCP server instead)
  • Users without an Unstructured API key or the required connector credentials

Required permissions

  • Requires an Unstructured API key (UNSTRUCTURED_API_KEY)
  • Creating/updating/deleting connectors requires connector-specific credentials in the .env file, such as AWS_KEY, AWS_SECRET, WEAVIATE_CLOUD_API_KEY, PINECONE_API_KEY, ASTRA_DB_APPLICATION_TOKEN, AZURE_CONNECTION_STRING, NEO4J_PASSWORD, MONGO_DB_CONNECTION_STRING, GOOGLEDRIVE_SERVICE_ACCOUNT_KEY, DATABRICKS_CLIENT_ID/SECRET, OneDrive and SharePoint client credentials, SALESFORCE_CONSUMER_KEY and SALESFORCE_PRIVATE_KEY
  • Firecrawl features require FIRECRAWL_API_KEY
  • Adding terminal access to the minimal client (desktop-commander) gives the client and LLM access to private files

Risks and side effects

  • The server is not actively maintained and may contain unfixed issues
  • Delete tools remove connectors, workflows, or jobs and misuse can cause data loss
  • update_workflow does not apply a patch; it fully replaces the workflow config, so the existing config must be in context (e.g. via get_workflow_info) or it may be overwritten
  • Setting CONFIRM_TOOL_USE to false may let the LLM execute expensive workflows or delete data
  • Defining many third-party credentials in .env widens the impact of credential leakage
  • Adding terminal access to the minimal client allows the LLM to access private files

Setup

Before you start

Runtime:Python 3.12+

UNSTRUCTURED_API_KEY requiredsecret Required key for the Unstructured API, obtained from platform.unstructured.io API keys page.
ANTHROPIC_API_KEY optionalsecret Needed to run the minimal_client to interact with the server; from the Anthropic console.
AWS_SECRET optionalsecret AWS secret access key required to create S3 connectors.
WEAVIATE_CLOUD_API_KEY optionalsecret Required to create a Weaviate vector DB connector; from Weaviate Cloud.
FIRECRAWL_API_KEY optionalsecret Required for the Firecrawl tools; sign up at firecrawl.dev to get one.
ASTRA_DB_APPLICATION_TOKEN optionalsecret Auth token required to create an AstraDB connector; from DataStax Astra.
AZURE_CONNECTION_STRING optionalsecret Option 1 for creating an Azure connector: the Azure storage connection string.
AZURE_ACCOUNT_KEY optionalsecret Azure storage account key for connector option 2.
AZURE_SAS_TOKEN optionalsecret Azure SAS token for connector option 3.
NEO4J_PASSWORD optionalsecret Database password required to create a Neo4j connector.
MONGO_DB_CONNECTION_STRING optionalsecret Connection string required to create a MongoDB connector.
GOOGLEDRIVE_SERVICE_ACCOUNT_KEY optionalsecret Base64-encoded string of the Google service account JSON key for Google Drive source connectors.
DATABRICKS_CLIENT_SECRET optionalsecret Client secret required to create Databricks connectors.
ONEDRIVE_CLIENT_CRED optionalsecret Client credential required to create a OneDrive connector.
PINECONE_API_KEY optionalsecret Required to create a Pinecone vector DB connector; from the Pinecone console.
SALESFORCE_PRIVATE_KEY optionalsecret Private key required to create a Salesforce source connector.
SHAREPOINT_CLIENT_CRED optionalsecret Client credential required to create a SharePoint source connector.
Other optional settings (12)
AWS_KEY optional AWS access key ID required to create S3 connectors.
ASTRA_DB_API_ENDPOINT optional API endpoint required to create an AstraDB connector.
AZURE_ACCOUNT_NAME optional Azure storage account name for connector options 2 and 3.
DATABRICKS_CLIENT_ID optional Client ID required to create Databricks connectors.
ONEDRIVE_CLIENT_ID optional App client ID required to create a OneDrive connector.
ONEDRIVE_TENANT_ID optional Tenant ID required to create a OneDrive connector.
SALESFORCE_CONSUMER_KEY optional Consumer key required to create a Salesforce source connector.
SHAREPOINT_CLIENT_ID optional Client ID required to create a SharePoint source connector.
SHAREPOINT_TENANT_ID optional Tenant ID required to create a SharePoint source connector.
LOG_LEVEL optional Sets the minimal_client logging level, e.g. ERROR to suppress debug output.
CONFIRM_TOOL_USE optional Set to true so the minimal_client confirms execution before each tool call.
DEBUG_API_REQUESTS optional Set to true so the server outputs request parameters for debugging.

Prerequisites: Python 3.12+, uv for environment management, and an API key from Unstructured. Using uvx is recommended (no additional installation required). Configure mcpServers.UNS_MCP in claude_desktop_config.json (located in ~/Library/Application Support/Claude/) with command uvx, args ["uns_mcp"], and env UNSTRUCTURED_API_KEY. Alternatively use the Python package with command python and args ["-m", "uns_mcp"]. From source: clone the repository, run uv sync, create a .env file in the root directory with UNSTRUCTURED_API_KEY (see .env.template). For SSE, run uv run python uns_mcp/server.py --host 127.0.0.1 --port 8080 (or make sse-server) and test with the local client; Claude Desktop does not support SSE. For stdio, point the Claude Desktop config at your local uv executable and run server.py.

claude_desktop_config.json
{
  "mcpServers": {
    "UNS_MCP": {
      "command": "uvx",
      "args": ["uns_mcp"],
      "env": {
        "UNSTRUCTURED_API_KEY": "<your-key>"
      }
    }
  }
}

Shown for Claude Desktop. Other clients may use a different file or key (VS Code uses "servers") — the configurator below converts it.

.vscode/mcp.json
{
  "servers": {
    "UNS_MCP": {
      "command": "uvx",
      "args": [
        "uns_mcp"
      ],
      "env": {
        "UNSTRUCTURED_API_KEY": "<your-key>"
      }
    }
  }
}

Goes in your project's .vscode/mcp.json (VS Code uses a "servers" key).

Terminal
claude mcp add UNS_MCP -e 'UNSTRUCTURED_API_KEY=<your-key>' -- uvx uns_mcp

Run it in a terminal; replace any <…> placeholders with your own values first.

Check that it works

After starting the server in Claude Desktop, check the tool list for tools like list_sources and list_workflows; then ask "list my sources" — a returned connector list confirms the connection works.

Troubleshooting

  1. Error: spawn <command> ENOENT means the command is not installed or not visible in PATH; install it and add it to PATH, or provide an absolute path in the command field of your config
  2. To log request parameters to UnstructuredClient, set DEBUG_API_REQUESTS=true; logs are stored in unstructured-client-{date}.log
  3. Anthropic's MCP Inspector can be used to debug: run mcp dev uns_mcp/server.py, add env vars and your API key in the left pane, then test capabilities under tools
  4. To stop SSE services, use Ctrl+C on the client first, then the server
  5. The local client can suppress debug output with LOG_LEVEL="ERROR" and disable tool use confirmation with CONFIRM_TOOL_USE='false' (use with caution)
  6. When using a subset of tools, update_workflow must be loaded together with create_workflow

Things to try

Once connected, you can ask your AI assistant things like:

  • List all available source connectors from my Unstructured API account.
  • Create an S3 source connector and a Pinecone destination connector for me.
  • Run the workflow with ID abc123 and then show me the job status.
  • Use Firecrawl to crawl a website and generate LLM-ready text, uploading results to S3.

Tools 26

list_sources read-only
Lists available sources from the Unstructured API.
get_source_info read-only
Get detailed information about a specific source connector.
create_source_connector writes
Create a source connector.
update_source_connector writes
Update an existing source connector by params.
delete_source_connector destructive
Delete a source connector by source id.
list_destinations read-only
Lists available destinations from the Unstructured API.
get_destination_info read-only
Get detailed info about a specific destination connector.
create_destination_connector writes
Create a destination connector by params.
Show 18 more tools
update_destination_connector writes
Update an existing destination connector by destination id.
delete_destination_connector destructive
Delete a destination connector by destination id.
list_workflows read-only
Lists workflows from the Unstructured API.
get_workflow_info read-only
Get detailed information about a specific workflow.
create_workflow writes
Create a new workflow with source, destination id, etc.
run_workflow writes
Run a specific workflow with workflow id.
update_workflow writes
Update an existing workflow by params.
delete_workflow destructive
Delete a specific workflow by id.
list_jobs read-only
Lists jobs for a specific workflow from the Unstructured API.
get_job_info read-only
Get detailed information about a specific job by job id.
cancel_job destructive
Delete a specific job by id.
list_workflows_with_finished_jobs read-only
Lists all workflows that have any completed job, together with information about source and destination details.
invoke_firecrawl_crawlhtml writes
Start a Firecrawl HTML content retrieval crawl job.
check_crawlhtml_status read-only
Monitor the status of a Firecrawl crawlhtml job.
cancel_crawlhtml_job destructive
Cancel a Firecrawl crawlhtml job if needed.
invoke_firecrawl_llmtxt writes
Start a Firecrawl LLM-optimized text generation job.
check_llmtxt_status read-only
Retrieve results of a Firecrawl LLM text generation job.
cancel_llmtxt_job read-only
Provided for consistency, but not currently supported by the Firecrawl API.

Use cases

List and manage source and destination connectors in the Unstructured platform
Create, run, update, and delete data workflows
Inspect workflow jobs and cancel jobs
Crawl web pages with Firecrawl for raw HTML or LLM-optimized text uploaded to S3

Supported clients

Claude Desktop

Listed from the project's documentation, not tested by this site.

Overview

An MCP server implementation for interacting with the Unstructured API, providing tools to manage sources, destinations, and workflows. It includes tools to list, create, update, and delete connectors, create and run workflows, inspect and cancel jobs, plus Firecrawl-based web crawling features. Note that this server is not actively maintained and is kept for reference; for parsing and transforming files into structured output (markdown, JSON, HTML, or plain text), the README recommends the Unstructured Transform MCP server instead. To use the tools that create, update, or delete a connector, the credentials for that specific connector must be defined in the .env file.

Similar servers

Context7 80 · B

Upstash's official server providing up-to-date third-party library docs for AI coding assistants

★ 63.3k · Tools 2 Compare with this →

Source revision fa52862ec7fc Data synced 2026-10-19 Read the FMRS scoring method