Unstructured

官方

在 Unstructured Platform 上設定並與您的非結構化資料處理工作流程互動

你可以用 Unstructured MCP 做什麼?

  • 列出可用的來源與目標 — 使用 list_sourceslist_destinations 查看您的 Unstructured 帳戶中配置了哪些連接器。
  • 管理來源與目標連接器 — 透過 create_source_connectorupdate_destination_connector 及相關工具建立、更新或刪除連接器。
  • 執行並監控擷取工作流程 — 使用 run_workflow 觸發工作流程,再透過 list_jobsget_job_info 追蹤其任務。
  • 尋找已完成任務的工作流程 — 呼叫 list_workflows_with_finished_jobs 來識別已完成處理的工作流程。
  • 將網站爬取到您的管道中 — 使用 invoke_firecrawl_crawlhtml 啟動 Firecrawl 爬取,並透過 check_crawlhtml_status 檢查狀態。

文件

Unstructured API MCP 伺服器

[!NOTE] 此伺服器與 Unstructured API 互動,以管理來源、目的地和工作流程。它並未積極維護,僅保留於此供參考。

如果您想將檔案解析並轉換為結構化輸出(markdown、JSON、HTML 或純文字),請改用 Unstructured Transform MCP 伺服器

Unstructured Transform 以託管 MCP 伺服器的形式,為您的代理程式提供生產級別的文件處理能力。它讓代理程式能夠在當前工作階段中,直接透過解析、豐富、分塊和嵌入檔案,將超過 60 種檔案類型轉換為結構化資料,以供您的應用程式、向量資料庫及任何下游流程使用。

您可以在此註冊開始使用。

一個用於與 Unstructured API 互動的 MCP 伺服器實作。此伺服器提供列出來源和工作流程的工具。

可用工具

工具說明
list_sources從 Unstructured API 列出可用的來源。
get_source_info取得特定來源連接器的詳細資訊。
create_source_connector建立來源連接器。)
update_source_connector透過參數更新現有的來源連接器。
delete_source_connector透過來源 ID 刪除來源連接器。
list_destinations從 Unstructured API 列出可用的目的地。
get_destination_info取得特定目的地連接器的詳細資訊
create_destination_connector透過參數建立目的地連接器。
update_destination_connector透過目的地 ID 更新現有的目的地連接器。
delete_destination_connector透過目的地 ID 刪除目的地連接器。
list_workflows從 Unstructured API 列出工作流程。
get_workflow_info取得特定工作流程的詳細資訊。
create_workflow使用來源、目的地 ID 等建立新的工作流程。
run_workflow使用工作流程 ID 執行特定工作流程
update_workflow透過參數更新現有的工作流程。
delete_workflow透過 ID 刪除特定工作流程。
list_jobs從 Unstructured API 列出特定工作流程的作業。
get_job_info透過作業 ID 取得特定作業的詳細資訊。
cancel_job透過 ID 刪除特定作業。
list_workflows_with_finished_jobs列出所有具有任何已完成作業的工作流程,以及來源和目的地的詳細資訊。

以下是 UNS-MCP 伺服器目前支援的連接器清單,請參閱 Unstructured 平台支援的完整來源連接器清單此處和目的地清單此處。我們計劃新增更多!

來源目的地
S3S3
AzureWeaviate
Google DrivePinecone
OneDriveAstraDB
SalesforceMongoDB
SharepointNeo4j
Databricks Volumes
Databricks Volumes Delta Table

要使用建立/更新/刪除連接器的工具,必須在您的 .env 檔案中定義該特定連接器的憑證。以下是我們支援的連接器的 credentials 清單:

憑證名稱說明
ANTHROPIC_API_KEY執行 minimal_client 與我們的伺服器互動時的必要項目。
AWS_KEY, AWS_SECRET透過 uns-mcp 伺服器建立 S3 連接器時的必要項目,請參閱文件此處了解如何操作
WEAVIATE_CLOUD_API_KEY建立 Weaviate 向量資料庫連接器時的必要項目,請參閱文件了解如何操作
FIRECRAWL_API_KEYexternal/firecrawl.py 中使用 Firecrawl 工具時的必要項目,請在 Firecrawl 註冊並取得 API 金鑰。
ASTRA_DB_APPLICATION_TOKEN, ASTRA_DB_API_ENDPOINT透過 uns-mcp 伺服器建立 Astradb 連接器時的必要項目,請參閱文件了解如何操作
AZURE_CONNECTION_STRING透過 uns-mcp 伺服器建立 Azure 連接器的選項 1 必要項目,請參閱文件了解如何操作
AZURE_ACCOUNT_NAME+AZURE_ACCOUNT_KEY透過 uns-mcp 伺服器建立 Azure 連接器的選項 2 必要項目,請參閱文件了解如何操作
AZURE_ACCOUNT_NAME+AZURE_SAS_TOKEN透過 uns-mcp 伺服器建立 Azure 連接器的選項 3 必要項目,請參閱文件了解如何操作
NEO4J_PASSWORD透過 uns-mcp 伺服器建立 Neo4j 連接器時的必要項目,請參閱文件了解如何操作
MONGO_DB_CONNECTION_STRING透過 uns-mcp 伺服器建立 Mongodb 連接器時的必要項目,請參閱文件了解如何操作
GOOGLEDRIVE_SERVICE_ACCOUNT_KEY一個字串值。原始伺服器帳戶金鑰(請遵循文件)位於 json 檔案中,在終端機中執行 base64 < /path/to/google_service_account_key.json 以取得字串值
DATABRICKS_CLIENT_ID,DATABRICKS_CLIENT_SECRET透過 uns-mcp 伺服器建立 Databricks volume/delta table 連接器時的必要項目,請參閱文件此處了解如何操作
ONEDRIVE_CLIENT_ID, ONEDRIVE_CLIENT_CRED,ONEDRIVE_TENANT_ID透過 uns-mcp 伺服器建立 One Drive 連接器時的必要項目,請參閱文件了解如何操作
PINECONE_API_KEY透過 uns-mcp 伺服器建立 Pinecone 向量資料庫連接器時的必要項目,請參閱文件了解如何操作
SALESFORCE_CONSUMER_KEY,SALESFORCE_PRIVATE_KEY透過 uns-mcp 伺服器建立 salesforce 來源連接器時的必要項目,請參閱文件了解如何操作
SHAREPOINT_CLIENT_ID, SHAREPOINT_CLIENT_CRED,SHAREPOINT_TENANT_ID透過 uns-mcp 伺服器建立 One Drive 連接器時的必要項目,請參閱文件了解如何操作
LOG_LEVEL用於設定我們的 minimal_client 的記錄層級,例如設定為 ERROR 以取得所有內容
CONFIRM_TOOL_USE設定為 true,以便 minimal_client 在每次工具呼叫前確認執行
DEBUG_API_REQUESTS設定為 true,以便 uns_mcp/server.py 可以輸出請求參數以利於除錯

Firecrawl 來源

Firecrawl 是一個網頁爬取 API,在我們的 MCP 中提供兩項主要功能:

  1. HTML 內容擷取:使用 invoke_firecrawl_crawlhtml 啟動爬取作業,並使用 check_crawlhtml_status 監控它們
  2. LLM 最佳化文字生成:使用 invoke_firecrawl_llmtxt 生成文字,並使用 check_llmtxt_status 擷取結果

Firecrawl 的運作方式: 網頁爬取流程:

  • 從指定的網址開始,分析該網址以識別連結
  • 若有網站地圖則使用之;否則追蹤網站上找到的連結
  • 遞迴遍歷每個連結以發現所有子頁面
  • 收集每個造訪頁面的內容,處理 JavaScript 渲染和速率限制
  • 必要時可使用 cancel_crawlhtml_job 取消作業
  • 若您需要將所有資訊提取為原始 HTML,請使用此功能,Unstructured 的工作流程能將其清理得非常乾淨 :smile:

LLM 文字生成:

  • 爬取完成後,從爬取的頁面中提取乾淨、有意義的文字內容
  • 生成專為大型語言模型格式化的最佳化文字格式
  • 結果會自動上傳至指定的 S3 位置
  • 注意:LLM 文字生成作業一旦開始就無法取消。cancel_llmtxt_job 函式是為了保持一致性而提供,但目前 Firecrawl API 不支援。

注意:必須設定 FIRECRAWL_API_KEY 環境變數才能使用這些功能。

安裝與設定

本指南提供逐步說明,協助您使用 Python 3.12 和 uv 工具來設定與配置 UNS_MCP 伺服器。

必要條件

  • Python 3.12+
  • 用於環境管理的 uv
  • 來自 Unstructured 的 API 金鑰。您可以在此註冊並取得 API 金鑰。

使用 uv(建議)

使用 uvx 時無需額外安裝,因為它會處理執行作業。不過,如果您偏好直接安裝套件:

uv pip install uns_mcp

設定 Claude Desktop

若要與 Claude Desktop 整合,請將以下內容新增至您的 claude_desktop_config.json

注意: 該檔案位於 ~/Library/Application Support/Claude/ 目錄中。

使用 uvx 指令:

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

或者,使用 Python 套件:

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

使用原始碼

  1. 複製儲存庫。

  2. 安裝相依套件:

    uv sync
    
  3. 將您的 Unstructured API 金鑰設定為環境變數。在根目錄中建立一個 .env 檔案,內容如下:

    UNSTRUCTURED_API_KEY="YOUR_KEY"
    

    請參閱 .env.template 以了解可設定的環境變數。

您現在可以使用下列其中一種方法來執行伺服器:

使用可編輯套件安裝 安裝為可編輯套件:
uvx pip install -e .

更新您的 Claude Desktop 設定:

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

注意:請記得指向您安裝套件所在環境中的 uvx 執行檔

使用 SSE 伺服器協定

注意:Claude Desktop 不支援。

對於 SSE 協定,您可以透過分離客戶端和伺服器來更輕鬆地進行除錯:

  1. 在一個終端機中啟動伺服器:

    uv run python uns_mcp/server.py --host 127.0.0.1 --port 8080
    # or
    make sse-server
    
  2. 在另一個終端機中使用本地客戶端測試伺服器:

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

注意: 若要停止服務,請先在客戶端使用 Ctrl+C,然後再停止伺服器。

使用 Stdio 伺服器協定

設定 Claude Desktop 使用 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"
      ]
    }
  }
}

或者,執行本地客戶端:

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

額外的本地客戶端設定

使用環境變數設定最小客戶端:

  • LOG_LEVEL="ERROR":設定為抑制來自 LLM 的除錯輸出,向使用者顯示清晰的訊息。
  • CONFIRM_TOOL_USE='false':在執行前停用工具使用確認。請謹慎使用,尤其是在開發期間,因為 LLM 可能會執行昂貴的工作流程或刪除資料。

除錯工具

Anthropic 提供 MCP Inspector 工具來除錯/測試您的 MCP 伺服器。執行以下指令來啟動除錯 UI。在那裡,您可以在左側窗格中新增環境變數(指向您的本地環境)。將您的個人 API 金鑰作為環境變數包含在內。前往 tools,您可以測試新增至 MCP 伺服器的功能。

mcp dev uns_mcp/server.py

如果您需要將請求呼叫參數記錄到 UnstructuredClient,請設定環境變數 DEBUG_API_REQUESTS=false。 記錄會儲存在格式為 unstructured-client-{date}.log 的檔案中,可以檢查該檔案以除錯對 UnstructuredClient 函式的請求呼叫參數。

為最小客戶端新增終端機存取權限

我們將使用 @wonderwhy-er/desktop-commander 為最小客戶端新增終端機存取權限。它建立在 MCP 檔案系統伺服器之上。請小心,因為客戶端(以及 LLM)現在可以存取私人檔案。

執行以下指令來安裝套件:

npx @wonderwhy-er/desktop-commander setup

然後使用額外參數啟動客戶端:

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

使用部分工具

如果您的客戶端支援僅使用部分工具,以下是您應該注意的事項清單:

  • update_workflow 工具必須與 create_workflow 工具一起載入到上下文中,因為它包含了如何建立和設定自訂節點的詳細說明。

已知問題

  • update_workflow - 需要在上下文中包含它正在更新的工作流程的設定,可以透過使用者提供或呼叫 get_workflow_info 工具來取得,因為此工具並非作為 patch 套用器運作,它會完全取代工作流程設定。

CHANGELOG.md

任何新開發的功能/修復/增強功能都將新增至 CHANGELOG.md。在我們提升至穩定版本之前,偏好使用 0.x.x-dev 預發布格式。

疑難排解

  • 如果您遇到 Error: spawn <command> ENOENT 的問題,這表示 <command> 未安裝或不在您的 PATH 中:
    • 請確保安裝它並將其新增至您的 PATH。
    • 或在您設定的 command 欄位中提供指令的絕對路徑。例如,將 python 替換為 /opt/miniconda3/bin/python