Unstructured

offiziell

Richten Sie Ihre Workflows zur Verarbeitung unstrukturierter Daten in der Unstructured Platform ein und interagieren Sie mit ihnen.

Was kann man mit Unstructured MCP machen?

  • Verfügbare Quellen und Ziele auflisten — Verwenden Sie list_sources und list_destinations, um zu sehen, welche Connectors in Ihrem Unstructured-Konto konfiguriert sind.
  • Quell- und Ziel-Connectors verwalten — Erstellen, aktualisieren oder löschen Sie Connectors über create_source_connector, update_destination_connector und verwandte Tools.
  • Ingestion-Workflows ausführen und überwachen — Lösen Sie einen Workflow mit run_workflow aus und verfolgen Sie dessen Jobs mit list_jobs und get_job_info.
  • Workflows mit abgeschlossenen Jobs finden — Rufen Sie list_workflows_with_finished_jobs auf, um Workflows zu identifizieren, die die Verarbeitung abgeschlossen haben.
  • Websites in Ihre Pipeline crawlen — Starten Sie einen Firecrawl-Crawl mit invoke_firecrawl_crawlhtml und prüfen Sie den Status über check_crawlhtml_status.

Dokumentation

Unstructured API MCP Server

[!NOTE] Dieser Server interagiert mit der Unstructured API, um Quellen, Ziele und Workflows zu verwalten. Er wird nicht aktiv gewartet und dient hier nur als Referenz.

Wenn Sie Dateien parsen und in strukturierte Ausgabe (Markdown, JSON, HTML oder Klartext) umwandeln möchten, verwenden Sie stattdessen den Unstructured Transform MCP Server.

Unstructured Transform bringt produktionsreife Dokumentenverarbeitung als gehosteten MCP-Server zu Ihren Agenten. Es befähigt sie, über 60 Dateitypen in strukturierte Daten umzuwandeln, die für Ihre Anwendungen, Vektordatenbanken und alle nachgelagerten Prozesse bereit sind, indem Dateien direkt in ihrer aktuellen Sitzung geparst, angereichert, in Chunks zerlegt und eingebettet werden.

Sie können es nutzen, indem Sie sich hier anmelden.

Eine MCP-Server-Implementierung zur Interaktion mit der Unstructured API. Dieser Server bietet Werkzeuge zum Auflisten von Quellen und Workflows.

Verfügbare Werkzeuge

WerkzeugBeschreibung
list_sourcesListet verfügbare Quellen aus der Unstructured API auf.
get_source_infoRuft detaillierte Informationen zu einem bestimmten Quell-Connector ab.
create_source_connectorErstellt einen Quell-Connector.)
update_source_connectorAktualisiert einen bestehenden Quell-Connector anhand von Parametern.
delete_source_connectorLöscht einen Quell-Connector anhand der Quell-ID.
list_destinationsListet verfügbare Ziele aus der Unstructured API auf.
get_destination_infoRuft detaillierte Informationen zu einem bestimmten Ziel-Connector ab.
create_destination_connectorErstellt einen Ziel-Connector anhand von Parametern.
update_destination_connectorAktualisiert einen bestehenden Ziel-Connector anhand der Ziel-ID.
delete_destination_connectorLöscht einen Ziel-Connector anhand der Ziel-ID.
list_workflowsListet Workflows aus der Unstructured API auf.
get_workflow_infoRuft detaillierte Informationen zu einem bestimmten Workflow ab.
create_workflowErstellt einen neuen Workflow mit Quell-ID, Ziel-ID usw.
run_workflowFührt einen bestimmten Workflow anhand der Workflow-ID aus.
update_workflowAktualisiert einen bestehenden Workflow anhand von Parametern.
delete_workflowLöscht einen bestimmten Workflow anhand der ID.
list_jobsListet Jobs für einen bestimmten Workflow aus der Unstructured API auf.
get_job_infoRuft detaillierte Informationen zu einem bestimmten Job anhand der Job-ID ab.
cancel_jobLöscht einen bestimmten Job anhand der ID.
list_workflows_with_finished_jobsListet alle Workflows auf, die einen abgeschlossenen Job haben, zusammen mit Informationen zu Quell- und Zieldetails.

Nachfolgend finden Sie eine Liste der Connectors, die der UNS-MCP-Server derzeit unterstützt. Die vollständige Liste der Quell-Connectors, die die Unstructured-Plattform unterstützt, finden Sie hier und die Zielliste hier. Weitere sind in Planung!

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

Um das Werkzeug zum Erstellen/Aktualisieren/Löschen eines Connectors zu verwenden, müssen die Anmeldeinformationen für diesen spezifischen Connector in Ihrer .env-Datei definiert sein. Nachfolgend finden Sie die Liste der credentials für die von uns unterstützten Connectors:

Name der AnmeldeinformationBeschreibung
ANTHROPIC_API_KEYerforderlich, um das minimal_client zur Interaktion mit unserem Server auszuführen.
AWS_KEY, AWS_SECRETerforderlich, um einen S3-Connector über den uns-mcp-Server zu erstellen, siehe Anleitung in der Dokumentation und hier
WEAVIATE_CLOUD_API_KEYerforderlich, um einen Weaviate-Vektordatenbank-Connector zu erstellen, siehe Anleitung in der Dokumentation
FIRECRAWL_API_KEYerforderlich, um Firecrawl-Werkzeuge in external/firecrawl.py zu verwenden, melden Sie sich bei Firecrawl an und erhalten Sie einen API-Schlüssel.
ASTRA_DB_APPLICATION_TOKEN, ASTRA_DB_API_ENDPOINTerforderlich, um einen Astradb-Connector über den uns-mcp-Server zu erstellen, siehe Anleitung in der Dokumentation
AZURE_CONNECTION_STRINGerforderliche Option 1 zum Erstellen eines Azure-Connectors über den uns-mcp-Server, siehe Anleitung in der Dokumentation
AZURE_ACCOUNT_NAME+AZURE_ACCOUNT_KEYerforderliche Option 2 zum Erstellen eines Azure-Connectors über den uns-mcp-Server, siehe Anleitung in der Dokumentation
AZURE_ACCOUNT_NAME+AZURE_SAS_TOKENerforderliche Option 3 zum Erstellen eines Azure-Connectors über den uns-mcp-Server, siehe Anleitung in der Dokumentation
NEO4J_PASSWORDerforderlich, um einen Neo4j-Connector über den uns-mcp-Server zu erstellen, siehe Anleitung in der Dokumentation
MONGO_DB_CONNECTION_STRINGerforderlich, um einen Mongodb-Connector über den uns-mcp-Server zu erstellen, siehe Anleitung in der Dokumentation
GOOGLEDRIVE_SERVICE_ACCOUNT_KEYein Zeichenfolgenwert. Der ursprüngliche Server-Kontoschlüssel (siehe Dokumentation) befindet sich in einer JSON-Datei. Führen Sie base64 < /path/to/google_service_account_key.json im Terminal aus, um den Zeichenfolgenwert zu erhalten.
DATABRICKS_CLIENT_ID,DATABRICKS_CLIENT_SECRETerforderlich, um einen Databricks Volume/Delta Table-Connector über den uns-mcp-Server zu erstellen, siehe Anleitung in der Dokumentation und hier
ONEDRIVE_CLIENT_ID, ONEDRIVE_CLIENT_CRED,ONEDRIVE_TENANT_IDerforderlich, um einen OneDrive-Connector über den uns-mcp-Server zu erstellen, siehe Anleitung in der Dokumentation
PINECONE_API_KEYerforderlich, um einen Pinecone-Vektordatenbank-Connector über den uns-mcp-Server zu erstellen, siehe Anleitung in der Dokumentation
SALESFORCE_CONSUMER_KEY,SALESFORCE_PRIVATE_KEYerforderlich, um einen Salesforce-Quell-Connector über den uns-mcp-Server zu erstellen, siehe Anleitung in der Dokumentation
SHAREPOINT_CLIENT_ID, SHAREPOINT_CLIENT_CRED,SHAREPOINT_TENANT_IDerforderlich, um einen OneDrive-Connector über den uns-mcp-Server zu erstellen, siehe Anleitung in der Dokumentation
LOG_LEVELWird verwendet, um die Protokollierungsstufe für unseren minimal_client festzulegen, z. B. auf ERROR setzen, um alles zu erhalten.
CONFIRM_TOOL_USEauf true setzen, damit minimal_client die Ausführung vor jedem Werkzeugaufruf bestätigen kann.
DEBUG_API_REQUESTSauf true setzen, damit uns_mcp/server.py Anfrageparameter für besseres Debugging ausgeben kann.

Firecrawl-Quelle

Firecrawl ist eine Web-Crawling-API, die zwei Hauptfunktionen in unserem MCP bietet:

  1. HTML-Inhaltsabruf: Verwendung von invoke_firecrawl_crawlhtml zum Starten von Crawl-Jobs und check_crawlhtml_status zu deren Überwachung
  2. LLM-optimierte Textgenerierung: Verwendung von invoke_firecrawl_llmtxt zum Generieren von Text und check_llmtxt_status zum Abrufen der Ergebnisse

So funktioniert Firecrawl: Web-Crawling-Prozess:

  • Beginnt mit einer angegebenen URL und analysiert sie, um Links zu identifizieren
  • Verwendet die Sitemap, falls verfügbar; andernfalls folgt es den auf der Website gefundenen Links
  • Durchläuft rekursiv jeden Link, um alle Unterseiten zu entdecken
  • Sammelt Inhalte von jeder besuchten Seite und behandelt JavaScript-Rendering und Ratenbegrenzungen
  • Jobs können bei Bedarf mit cancel_crawlhtml_job abgebrochen werden
  • Verwenden Sie dies, wenn Sie alle Informationen als rohes HTML extrahiert benötigen – der Workflow von Unstructured bereinigt es wirklich gut :smile:

LLM-Textgenerierung:

  • Extrahiert nach dem Crawling saubere, aussagekräftige Textinhalte aus den gecrawlten Seiten
  • Generiert optimierte Textformate, die speziell für große Sprachmodelle formatiert sind
  • Ergebnisse werden automatisch am angegebenen S3-Speicherort hochgeladen
  • Hinweis: LLM-Textgenerierungsjobs können nach dem Start nicht abgebrochen werden. Die Funktion cancel_llmtxt_job wird aus Konsistenzgründen bereitgestellt, wird aber derzeit von der Firecrawl-API nicht unterstützt.

Hinweis: Eine Umgebungsvariable FIRECRAWL_API_KEY muss gesetzt sein, um diese Funktionen zu verwenden.

Installation & Konfiguration

Diese Anleitung bietet schrittweise Anweisungen zum Einrichten und Konfigurieren des UNS_MCP-Servers mit Python 3.12 und dem Tool uv.

Voraussetzungen

  • Python 3.12+
  • uv für die Umgebungsverwaltung
  • Ein API-Schlüssel von Unstructured. Sie können sich registrieren und Ihren API-Schlüssel hier erhalten.

Verwendung von uv (Empfohlen)

Bei der Verwendung von uvx ist keine zusätzliche Installation erforderlich, da es die Ausführung übernimmt. Wenn Sie das Paket jedoch direkt installieren möchten:

uv pip install uns_mcp

Claude Desktop konfigurieren

Für die Integration mit Claude Desktop fügen Sie den folgenden Inhalt zu Ihrer claude_desktop_config.json hinzu:

Hinweis: Die Datei befindet sich im Verzeichnis ~/Library/Application Support/Claude/.

Verwendung des Befehls uvx:

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

Alternativ mit dem Python-Paket:

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

Verwendung des Quellcodes

  1. Klonen Sie das Repository.

  2. Installieren Sie die Abhängigkeiten:

    uv sync
    
  3. Setzen Sie Ihren Unstructured-API-Schlüssel als Umgebungsvariable. Erstellen Sie eine .env-Datei im Stammverzeichnis mit folgendem Inhalt:

    UNSTRUCTURED_API_KEY="YOUR_KEY"
    

    Siehe .env.template für die konfigurierbaren Umgebungsvariablen.

Sie können den Server nun mit einer der folgenden Methoden ausführen:

Verwendung der editierbaren Paketinstallation Installieren Sie es als editierbares Paket:
uvx pip install -e .

Aktualisieren Sie Ihre Claude Desktop-Konfiguration:

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

Hinweis: Denken Sie daran, auf die uvx-ausführbare Datei in der Umgebung zu verweisen, in der Sie das Paket installiert haben

Verwendung des SSE-Serverprotokolls

Hinweis: Wird von Claude Desktop nicht unterstützt.

Für das SSE-Protokoll können Sie einfacher debuggen, indem Sie Client und Server entkoppeln:

  1. Starten Sie den Server in einem Terminal:

    uv run python uns_mcp/server.py --host 127.0.0.1 --port 8080
    # or
    make sse-server
    
  2. Testen Sie den Server mit einem lokalen Client in einem anderen Terminal:

    uv run python minimal_client/client.py "http://127.0.0.1:8080/sse"
    # or
    make sse-client
    

Hinweis: Um die Dienste zu stoppen, verwenden Sie Ctrl+C zuerst auf dem Client, dann auf dem Server.

Verwendung des Stdio-Serverprotokolls

Konfigurieren Sie Claude Desktop für die Verwendung von 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"
      ]
    }
  }
}

Alternativ führen Sie den lokalen Client aus:

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

Zusätzliche lokale Client-Konfiguration

Konfigurieren Sie den minimalen Client mit Umgebungsvariablen:

  • LOG_LEVEL="ERROR": Setzen, um Debug-Ausgaben des LLM zu unterdrücken und klare Nachrichten für Benutzer anzuzeigen.
  • CONFIRM_TOOL_USE='false': Deaktiviert die Bestätigung der Werkzeugnutzung vor der Ausführung. Mit Vorsicht verwenden, insbesondere während der Entwicklung, da das LLM teure Workflows ausführen oder Daten löschen kann.

Debugging-Tools

Anthropic bietet das Tool MCP Inspector zum Debuggen/Testen Ihres MCP-Servers. Führen Sie den folgenden Befehl aus, um eine Debugging-Benutzeroberfläche zu starten. Von dort aus können Sie im linken Bereich Umgebungsvariablen hinzufügen (die auf Ihre lokale Umgebung verweisen). Geben Sie dort Ihren persönlichen API-Schlüssel als Umgebungsvariable ein. Gehen Sie zu tools, um die Funktionen zu testen, die Sie dem MCP-Server hinzufügen.

mcp dev uns_mcp/server.py

Wenn Sie Anforderungsaufrufparameter in UnstructuredClient protokollieren müssen, setzen Sie die Umgebungsvariable DEBUG_API_REQUESTS=false. Die Protokolle werden in einer Datei mit dem Format unstructured-client-{date}.log gespeichert, die untersucht werden kann, um Anforderungsaufrufparameter für UnstructuredClient-Funktionen zu debuggen.

Terminalzugriff zum minimalen Client hinzufügen

Wir werden @wonderwhy-er/desktop-commander verwenden, um dem minimalen Client Terminalzugriff hinzuzufügen. Es basiert auf dem MCP-Dateisystemserver. Seien Sie vorsichtig, da der Client (und auch das LLM) nun Zugriff auf private Dateien hat.

Führen Sie den folgenden Befehl aus, um das Paket zu installieren:

npx @wonderwhy-er/desktop-commander setup

Starten Sie dann den Client mit einem zusätzlichen 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

Verwendung einer Teilmenge von Werkzeugen

Wenn Ihr Client nur eine Teilmenge von Werkzeugen unterstützt, sollten Sie Folgendes beachten:

  • Das Werkzeug update_workflow muss zusammen mit dem Werkzeug create_workflow in den Kontext geladen werden, da es eine detaillierte Beschreibung zum Erstellen und Konfigurieren benutzerdefinierter Knoten enthält.

Bekannte Probleme

  • update_workflow – muss die Konfiguration des Workflows, den es aktualisiert, im Kontext haben, entweder durch Bereitstellung durch den Benutzer oder durch Aufruf des Werkzeugs get_workflow_info, da dieses Werkzeug nicht als patch-Anwender fungiert, sondern die Workflow-Konfiguration vollständig ersetzt.

CHANGELOG.md

Alle neu entwickelten Funktionen/Korrekturen/Verbesserungen werden zu CHANGELOG.md hinzugefügt. Das 0.x.x-dev-Vorabversionsformat wird bevorzugt, bevor wir auf eine stabile Version aktualisieren.

Fehlerbehebung

  • Wenn Sie auf Probleme mit Error: spawn <command> ENOENT stoßen, bedeutet dies, dass <command> nicht installiert oder in Ihrem PATH nicht sichtbar ist:
    • Stellen Sie sicher, dass Sie es installieren und zu Ihrem PATH hinzufügen.
    • oder geben Sie den absoluten Pfad zum Befehl im Feld command Ihrer Konfiguration an. Ersetzen Sie also beispielsweise python durch /opt/miniconda3/bin/python