← Back to directory
U

Unstructured API MCP Server

Official
Manage Unstructured API sources, destinations, and workflows via MCP
GitHub source repository ↗
★ 42 Stars Category · Dev Tools Popular
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.

Reliability
6/20
Security and permissions
7/20
Maintenance
3/20
Documentation
11/20
Setup experience
9/20
Read the FMRS scoring method →

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.

Tools

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

Setup

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>"
      }
    }
  }
}

Fit and risk

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

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

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 DesktopFull support