Unstructured API MCP Server

Official

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Used for loading environment variables from a .env file, specifically for storing and accessing the Unstructured API key

  • Serves as the implementation language for the MCP server, with specific dependencies including unstructured-client for API interaction

Servidor MCP de API no estructurada

Implementación de un servidor MCP para interactuar con la API no estructurada. Este servidor proporciona herramientas para listar fuentes y flujos de trabajo.

Herramientas disponibles

HerramientaDescripción
list_sourcesEnumera las fuentes disponibles de la API no estructurada.
get_source_infoObtenga información detallada sobre un conector de fuente específico.
create_source_connectorCrear un conector de origen.)
update_source_connectorActualizar un conector de origen existente mediante parámetros.
delete_source_connectorEliminar un conector de origen por ID de origen.
list_destinationsEnumera los destinos disponibles desde la API no estructurada.
get_destination_infoObtenga información detallada sobre un conector de destino específico
create_destination_connectorCrear un conector de destino mediante parámetros.
update_destination_connectorActualizar un conector de destino existente por ID de destino.
delete_destination_connectorEliminar un conector de destino por ID de destino.
list_workflowsEnumera los flujos de trabajo de la API no estructurada.
get_workflow_infoObtenga información detallada sobre un flujo de trabajo específico.
create_workflowCree un nuevo flujo de trabajo con identificación de origen, destino, etc.
run_workflowEjecutar un flujo de trabajo específico con ID de flujo de trabajo
update_workflowActualizar un flujo de trabajo existente mediante parámetros.
delete_workflowEliminar un flujo de trabajo específico por id.
list_jobsEnumera trabajos para un flujo de trabajo específico desde la API no estructurada.
get_job_infoObtenga información detallada sobre un trabajo específico por identificación del trabajo.
cancel_jobEliminar un trabajo específico por id.

A continuación se muestra una lista de los conectores compatibles actualmente con el servidor UNS-MCP . Consulte la lista completa de conectores de origen compatibles con la plataforma no estructurada aquí y la lista de destinos aquí . ¡Estamos planeando añadir más!

FuenteDestino
S3S3
AzurTejer
Google DrivePiña
OneDriveAstraDB
Fuerza de ventasMongoDB
Punto de intercambioNeo4j
Volúmenes de Databricks
Tabla delta de volúmenes de Databricks

Para usar la herramienta que crea, actualiza o elimina un conector, las credenciales de ese conector específico deben estar definidas en el archivo .env. A continuación, se muestra la lista de credentials para los conectores compatibles:

Nombre de la credencialDescripción
ANTHROPIC_API_KEYnecesario para ejecutar minimal_client para interactuar con nuestro servidor.
AWS_KEY , AWS_SECRETEs necesario crear un conector S3 a través del servidor uns-mcp . Consulte cómo hacerlo en la documentación y aquí.
WEAVIATE_CLOUD_API_KEYSe requiere crear un conector de base de datos vectorial Weaviate; consulte cómo hacerlo en la documentación.
FIRECRAWL_API_KEYnecesario para utilizar las herramientas Firecrawl en external/firecrawl.py , registrarse en Firecrawl y obtener una clave API.
ASTRA_DB_APPLICATION_TOKEN , PUNTO FINAL DE API ASTRA_DB_API_ENDPOINTEs necesario crear un conector Astradb a través del servidor uns-mcp . Consulte cómo hacerlo en la documentación.
AZURE_CONNECTION_STRINGOpción 1 requerida para crear un conector de Azure a través del servidor uns-mcp , consulte cómo en la documentación
NOMBRE DE CUENTA AZURE_ACCOUNT_NAME + CLAVE AZURE_ACCOUNT_KEY CUENTA DE AZUREOpción 2 requerida para crear un conector de Azure a través del servidor uns-mcp , consulte cómo en la documentación
NOMBRE AZURE_SAS_TOKEN CUENTA AZURE_ACCOUNT_NAME AZURE + TOKEN SAS DE AZURESe requiere la opción 3 para crear un conector de Azure a través del servidor uns-mcp . Consulte cómo hacerlo en la documentación.
NEO4J_PASSWORDEs necesario crear un conector Neo4j a través del servidor uns-mcp . Consulte cómo hacerlo en la documentación.
MONGO_DB_CONNECTION_STRINGEs necesario crear un conector Mongodb a través del servidor uns-mcp . Consulte cómo hacerlo en la documentación.
GOOGLEDRIVE_SERVICE_ACCOUNT_KEYUn valor de cadena. La clave de la cuenta del servidor original (siga la documentación ) está en un archivo JSON. Ejecute base64 < /path/to/google_service_account_key.json en la terminal para obtener el valor de cadena.
DATABRICKS_CLIENT_ID , DATABRICKS_CLIENT_SECRETSe requiere crear un conector de tabla delta/volumen de Databricks a través del servidor uns-mcp ; consulte cómo hacerlo en la documentación y aquí.
ID DE ONEDRIVE_CLIENT_ID , ONEDRIVE_CLIENT_CRED , ID DE INQUILINO ONEDRIVE_TENANT_IDEs necesario crear un conector de One Drive a través del servidor uns-mcp . Consulte cómo hacerlo en la documentación.
PINECONE_API_KEYSe requiere crear un conector de base de datos vectorial Pinecone a través del servidor uns-mcp ; consulte cómo hacerlo en la documentación.
SALESFORCE_CONSUMER_KEY , SALESFORCE_PRIVATE_KEYEs necesario crear un conector de origen de Salesforce a través del servidor uns-mcp . Consulte cómo hacerlo en la documentación.
SHAREPOINT_CLIENT_ID , SHAREPOINT_CLIENT_CRED , SHAREPOINT_TENANT_IDEs necesario crear un conector de One Drive a través del servidor uns-mcp . Consulte cómo hacerlo en la documentación.
LOG_LEVELSe utiliza para establecer el nivel de registro para nuestro minimal_client , por ejemplo, configúrelo en ERROR para obtener todo
CONFIRM_TOOL_USEEstablezca en verdadero para que minimal_client pueda confirmar la ejecución antes de cada llamada a la herramienta
DEBUG_API_REQUESTSEstablezca en verdadero para que uns_mcp/server.py pueda generar parámetros de solicitud para una mejor depuración

Fuente de Firecrawl

Firecrawl es una API de rastreo web que proporciona dos capacidades principales en nuestro MCP:

  1. Recuperación de contenido HTML : uso de invoke_firecrawl_crawlhtml para iniciar trabajos de rastreo y check_crawlhtml_status para monitorearlos
  2. Generación de texto optimizada para LLM : uso de invoke_firecrawl_llmtxt para generar texto y check_llmtxt_status para recuperar resultados

Cómo funciona Firecrawl:

Proceso de rastreo web:

  • Comienza con una URL específica y la analiza para identificar enlaces.
  • Utiliza el mapa del sitio si está disponible; de lo contrario, sigue los enlaces que se encuentran en el sitio web.
  • Recorre recursivamente cada enlace para descubrir todas las subpáginas
  • Recopila contenido de cada página visitada, gestionando la representación de JavaScript y los límites de velocidad.
  • Los trabajos se pueden cancelar con cancel_crawlhtml_job si es necesario
  • Use esto si necesita toda la información extraída en HTML sin formato, el flujo de trabajo de Unstructured lo limpia muy bien :smile:

Generación de textos LLM:

  • Después del rastreo, extrae contenido de texto limpio y significativo de las páginas rastreadas.
  • Genera formatos de texto optimizados y formateados específicamente para modelos de lenguaje grandes.
  • Los resultados se cargan automáticamente en la ubicación S3 especificada
  • Nota: Los trabajos de generación de texto LLM no se pueden cancelar una vez iniciados. La función cancel_llmtxt_job se proporciona por coherencia, pero actualmente no es compatible con la API de Firecrawl.

Nota: Se debe configurar una variable de entorno FIRECRAWL_API_KEY para utilizar estas funciones.

Instalación y configuración

Esta guía proporciona instrucciones paso a paso para configurar el servidor UNS_MCP utilizando Python 3.12 y la herramienta uv .

Prerrequisitos

  • Python 3.12+
  • uv para la gestión ambiental
  • Una clave API de Unstructured. Puedes registrarte y obtener tu clave API aquí .

Uso de uv (recomendado)

No se requiere instalación adicional al usar uvx , ya que gestiona la ejecución. Sin embargo, si prefiere instalar el paquete directamente:

uv pip install uns_mcp

Configurar Claude Desktop

Para la integración con Claude Desktop, agregue el siguiente contenido a su claude_desktop_config.json :

Nota: El archivo se encuentra en el directorio ~/Library/Application Support/Claude/ .

Usando el comando uvx :

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

Alternativamente, utilizando el paquete Python:

{ "mcpServers": { "UNS_MCP": { "command": "python", "args": ["-m", "uns_mcp"], "env": { "UNSTRUCTURED_API_KEY": "<your-key>" } } } }

Usando el código fuente

  1. Clonar el repositorio.
  2. Instalar dependencias:
    uv sync
  3. Establezca su clave de API no estructurada como variable de entorno. Cree un archivo .env en el directorio raíz con el siguiente contenido:
    UNSTRUCTURED_API_KEY="YOUR_KEY"
    Consulte .env.template para conocer las variables de entorno configurables.

Ahora puede ejecutar el servidor utilizando uno de los siguientes métodos:

uvx pip install -e .

Actualice la configuración de Claude Desktop:

{ "mcpServers": { "UNS_MCP": { "command": "uvx", "args": ["uns_mcp"] } } }

Nota : Recuerde apuntar al ejecutable uvx en el entorno donde instaló el paquete

Nota: No compatible con Claude Desktop.

Para el protocolo SSE, puede depurar más fácilmente desacoplando el cliente y el servidor:

  1. Inicie el servidor en una terminal:
    uv run python uns_mcp/server.py --host 127.0.0.1 --port 8080 # or make sse-server
  2. Pruebe el servidor usando un cliente local en otra terminal:
    uv run python minimal_client/client.py "http://127.0.0.1:8080/sse" # or make sse-client

Nota: Para detener los servicios, utilice Ctrl+C primero en el cliente y luego en el servidor.

Configurar Claude Desktop para utilizar stdio:

{ "mcpServers": { "UNS_MCP": { "command": "ABSOLUTE/PATH/TO/.local/bin/uv", "args": [ "--directory", "ABSOLUTE/PATH/TO/YOUR-UNS-MCP-REPO/uns_mcp", "run", "server.py" ] } } }

Alternativamente, ejecute el cliente local:

uv run python minimal_client/client.py uns_mcp/server.py

Configuración adicional de cliente local

Configure el cliente mínimo utilizando variables ambientales:

  • LOG_LEVEL="ERROR" : se configura para suprimir las salidas de depuración del LLM y mostrar mensajes claros para los usuarios.
  • CONFIRM_TOOL_USE='false' : Desactivar la confirmación del uso de la herramienta antes de la ejecución. Usar con precaución , especialmente durante el desarrollo, ya que LLM puede ejecutar flujos de trabajo costosos o eliminar datos.

Herramientas de depuración

Anthropic ofrece la herramienta MCP Inspector para depurar y probar su servidor MCP. Ejecute el siguiente comando para iniciar una interfaz de depuración. Desde allí, podrá agregar variables de entorno (que apunten a su entorno local) en el panel izquierdo. Incluya su clave API personal como variable de entorno. Vaya a tools para probar las funciones que agregue al servidor MCP.

mcp dev uns_mcp/server.py

Si necesita registrar los parámetros de las llamadas de solicitud a UnstructuredClient , configure la variable de entorno DEBUG_API_REQUESTS=false . Los registros se almacenan en un archivo con el formato unstructured-client-{date}.log , que puede examinarse para depurar los parámetros de las llamadas de solicitud a las funciones de UnstructuredClient .

Añadir acceso de terminal al cliente mínimo

Usaremos @wonderwhy-er/desktop-commander para añadir acceso a la terminal al cliente mínimo. Está basado en el servidor de sistema de archivos MCP. Tenga cuidado, ya que el cliente (también LLM) ahora tiene acceso a archivos privados.

Ejecute el siguiente comando para instalar el paquete:

npx @wonderwhy-er/desktop-commander setup

Luego inicie el cliente con el parámetro adicional:

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

Uso de un subconjunto de herramientas

Si su cliente admite el uso de solo un subconjunto de herramientas, aquí le mostramos una lista de cosas que debe tener en cuenta:

  • La herramienta update_workflow debe cargarse en el contexto junto con la herramienta create_workflow , porque contiene una descripción detallada sobre cómo crear y configurar un nodo personalizado.

Problemas conocidos

  • update_workflow - debe tener en contexto la configuración del flujo de trabajo que está actualizando, ya sea proporcionándola por el usuario o llamando a la herramienta get_workflow_info , ya que esta herramienta no funciona como aplicador patch , reemplaza completamente la configuración del flujo de trabajo.

REGISTRO DE CAMBIOS.md

Cualquier nueva característica/corrección/mejora desarrollada se agregará a CHANGELOG.md. Se prefiere el formato de prelanzamiento 0.xx-dev antes de pasar a una versión estable.

Solución de problemas

  • Si encuentra problemas con Error: spawn <command> ENOENT significa que <command> no está instalado o no es visible en su RUTA:
    • Asegúrese de instalarlo y agregarlo a su PATH.
    • O bien, proporcione la ruta absoluta del comando en el campo command de su configuración. Por ejemplo, reemplace python por /opt/miniconda3/bin/python

You must be authenticated.

A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Una implementación de servidor MCP que permite la interacción con la API no estructurada, proporcionando herramientas para enumerar, crear, actualizar y administrar fuentes, destinos y flujos de trabajo.

  1. Available Tools
    1. Firecrawl Source
  2. Installation & Configuration
    1. Prerequisites
      1. Using uv (Recommended)
      2. Using Source Code
    2. Additional Local Client Configuration
      1. Debugging tools
    3. Add terminal access to minimal client
      1. Using subset of tools
        1. Known issues
          1. CHANGELOG.md
            1. Troubleshooting
              ID: 56f7310rbq