Labsco
Unstructured-IO logo

Unstructured

โ˜… 42

from Unstructured-IO

Set up and interact with your unstructured data processing workflows in Unstructured Platform

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedAccount requiredAdvanced setup

Unstructured API MCP Server

An MCP server implementation for interacting with the Unstructured API. This server provides tools to list sources and workflows.

Available Tools

ToolDescription
list_sourcesLists available sources from the Unstructured API.
get_source_infoGet detailed information about a specific source connector.
create_source_connectorCreate a source connector.)
update_source_connectorUpdate an existing source connector by params.
delete_source_connectorDelete a source connector by source id.
list_destinationsLists available destinations from the Unstructured API.
get_destination_infoGet detailed info about a specific destination connector
create_destination_connectorCreate a destination connector by params.
update_destination_connectorUpdate an existing destination connector by destination id.
delete_destination_connectorDelete a destination connector by destination id.
list_workflowsLists workflows from the Unstructured API.
get_workflow_infoGet detailed information about a specific workflow.
create_workflowCreate a new workflow with source, destination id, etc.
run_workflowRun a specific workflow with workflow id
update_workflowUpdate an existing workflow by params.
delete_workflowDelete a specific workflow by id.
list_jobsLists jobs for a specific workflow from the Unstructured API.
get_job_infoGet detailed information about a specific job by job id.
cancel_jobDelete a specific job by id.
list_workflows_with_finished_jobsLists all workflows that have any completed job, together with information about source and destination details.

Below is a list of connectors the UNS-MCP server currently supports, please see the full list of source connectors that Unstructured platform supports here and destination list here. We are planning on adding more!

SourceDestination
S3S3
AzureWeaviate
Google DrivePinecone
OneDriveAstraDB
SalesforceMongoDB
SharepointNeo4j
Databricks Volumes
Databricks Volumes Delta Table

To use the tool that creates/updates/deletes a connector, the credentials for that specific connector must be defined in your .env file. Below is the list of credentials for the connectors we support:

Credential NameDescription
ANTHROPIC_API_KEYrequired to run the minimal_client to interact with our server.
AWS_KEY, AWS_SECRETrequired to create S3 connector via uns-mcp server, see how in documentation and here
WEAVIATE_CLOUD_API_KEYrequired to create Weaviate vector db connector, see how in documentation
FIRECRAWL_API_KEYrequired to use Firecrawl tools in external/firecrawl.py, sign up on Firecrawl and get an API key.
ASTRA_DB_APPLICATION_TOKEN, ASTRA_DB_API_ENDPOINTrequired to create Astradb connector via uns-mcp server, see how in documentation
AZURE_CONNECTION_STRINGrequired option 1 to create Azure connector via uns-mcp server, see how in documentation
AZURE_ACCOUNT_NAME+AZURE_ACCOUNT_KEYrequired option 2 to create Azure connector via uns-mcp server, see how in documentation
AZURE_ACCOUNT_NAME+AZURE_SAS_TOKENrequired option 3 to create Azure connector via uns-mcp server, see how in documentation
NEO4J_PASSWORDrequired to create Neo4j connector via uns-mcp server, see how in documentation
MONGO_DB_CONNECTION_STRINGrequired to create Mongodb connector via uns-mcp server, see how in documentation
GOOGLEDRIVE_SERVICE_ACCOUNT_KEYa string value. The original server account key (follow documentation) is in json file, run base64 < /path/to/google_service_account_key.json in terminal to get the string value
DATABRICKS_CLIENT_ID,DATABRICKS_CLIENT_SECRETrequired to create Databricks volume/delta table connector via uns-mcp server, see how in documentation and here
ONEDRIVE_CLIENT_ID, ONEDRIVE_CLIENT_CRED,ONEDRIVE_TENANT_IDrequired to create One Drive connector via uns-mcp server, see how in documentation
PINECONE_API_KEYrequired to create Pinecone vector DB connector via uns-mcp server, see how in documentation
SALESFORCE_CONSUMER_KEY,SALESFORCE_PRIVATE_KEYrequired to create salesforce source connector via uns-mcp server, see how in documentation
SHAREPOINT_CLIENT_ID, SHAREPOINT_CLIENT_CRED,SHAREPOINT_TENANT_IDrequired to create One Drive connector via uns-mcp server, see how in documentation
LOG_LEVELUsed to set logging level for our minimal_client, e.g. set to ERROR to get everything
CONFIRM_TOOL_USEset to true so that minimal_client can confirm execution before each tool call
DEBUG_API_REQUESTSset to true so that uns_mcp/server.py can output request parameters for better debugging

Firecrawl Source

Firecrawl is a web crawling API that provides two main capabilities in our MCP:

  1. HTML Content Retrieval: Using invoke_firecrawl_crawlhtml to start crawl jobs and check_crawlhtml_status to monitor them
  2. LLM-Optimized Text Generation: Using invoke_firecrawl_llmtxt to generate text and check_llmtxt_status to retrieve results

How Firecrawl works:

Web Crawling Process:

  • Starts with a specified URL and analyzes it to identify links
  • Uses the sitemap if available; otherwise follows links found on the website
  • Recursively traverses each link to discover all subpages
  • Gathers content from every visited page, handling JavaScript rendering and rate limits
  • Jobs can be cancelled with cancel_crawlhtml_job if needed
  • Use this if you require all the info extracted into raw HTML, Unstructured's workflow cleans it up really well :smile:

LLM Text Generation:

  • After crawling, extracts clean, meaningful text content from the crawled pages
  • Generates optimized text formats specifically formatted for large language models
  • Results are automatically uploaded to the specified S3 location
  • Note: LLM text generation jobs cannot be cancelled once started. The cancel_llmtxt_job function is provided for consistency but is not currently supported by the Firecrawl API.

Note: A FIRECRAWL_API_KEY environment variable must be set to use these functions.

Add terminal access to minimal client

We are going to use @wonderwhy-er/desktop-commander to add terminal access to the minimal client. It is built on the MCP Filesystem Server. Be careful, as the client (also LLM) now has access to private files.

Execute the following command to install the package:

npx @wonderwhy-er/desktop-commander setup

Then start client with extra parameter:

uv run python minimal_client/client.py "http://127.0.0.1:8080/sse" "@wonderwhy-er/desktop-commander@^0.2.11"
# or
make sse-client-terminal

Using subset of tools

If your client supports using only subset of tools here are the list of things you should be aware:

  • update_workflow tool has to be loaded in the context together with create_workflow tool, because it contains detailed description on how to create and configure custom node.

CHANGELOG.md

Any new developed features/fixes/enhancements will be added to CHANGELOG.md. 0.x.x-dev pre-release format is preferred before we bump to a stable version.

Troubleshooting

  • If you encounter issues with Error: spawn <command> ENOENT it means <command> is not installed or visible in your PATH:
    • Make sure to install it and add it to your PATH.
    • or provide absolute path to the command in the command field of your config. So for example replace python with /opt/miniconda3/bin/python