Unstructured
官方在 Unstructured Platform 上設定並與您的非結構化資料處理工作流程互動
你可以用 Unstructured MCP 做什麼?
- 列出可用的來源與目標 — 使用
list_sources和list_destinations查看您的 Unstructured 帳戶中配置了哪些連接器。 - 管理來源與目標連接器 — 透過
create_source_connector、update_destination_connector及相關工具建立、更新或刪除連接器。 - 執行並監控擷取工作流程 — 使用
run_workflow觸發工作流程,再透過list_jobs和get_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 平台支援的完整來源連接器清單此處和目的地清單此處。我們計劃新增更多!
| 來源 | 目的地 |
|---|---|
| S3 | S3 |
| Azure | Weaviate |
| Google Drive | Pinecone |
| OneDrive | AstraDB |
| Salesforce | MongoDB |
| Sharepoint | Neo4j |
| 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_KEY | 在 external/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 中提供兩項主要功能:
- HTML 內容擷取:使用
invoke_firecrawl_crawlhtml啟動爬取作業,並使用check_crawlhtml_status監控它們 - 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>"
}
}
}
}
使用原始碼
-
複製儲存庫。
-
安裝相依套件:
uv sync -
將您的 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 協定,您可以透過分離客戶端和伺服器來更輕鬆地進行除錯:
-
在一個終端機中啟動伺服器:
uv run python uns_mcp/server.py --host 127.0.0.1 --port 8080 # or make sse-server -
在另一個終端機中使用本地客戶端測試伺服器:
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