Unstructured MCP Server
ทางการตั้งค่าและโต้ตอบกับเวิร์กโฟลว์การประมวลผลข้อมูล
เอกสาร
เซิร์ฟเวอร์ MCP ของ Unstructured API
การใช้งานเซิร์ฟเวอร์ MCP สำหรับการโต้ตอบกับ Unstructured API เซิร์ฟเวอร์นี้มีเครื่องมือสำหรับแสดงรายการแหล่งข้อมูลและเวิร์กโฟลว์
เครื่องมือที่พร้อมใช้งาน
| เครื่องมือ | คำอธิบาย |
|---|---|
list_sources | แสดงรายการแหล่งข้อมูลที่พร้อมใช้งานจาก Unstructured API |
get_source_info | รับข้อมูลโดยละเอียดเกี่ยวกับตัวเชื่อมต่อแหล่งข้อมูลเฉพาะ |
create_source_connector | สร้างตัวเชื่อมต่อแหล่งข้อมูล) |
update_source_connector | อัปเดตตัวเชื่อมต่อแหล่งข้อมูลที่มีอยู่ด้วยพารามิเตอร์ |
delete_source_connector | ลบตัวเชื่อมต่อแหล่งข้อมูลด้วยรหัสแหล่งข้อมูล |
list_destinations | แสดงรายการปลายทางที่พร้อมใช้งานจาก Unstructured API |
get_destination_info | รับข้อมูลโดยละเอียดเกี่ยวกับตัวเชื่อมต่อปลายทางเฉพาะ |
create_destination_connector | สร้างตัวเชื่อมต่อปลายทางด้วยพารามิเตอร์ |
update_destination_connector | อัปเดตตัวเชื่อมต่อปลายทางที่มีอยู่ด้วยรหัสปลายทาง |
delete_destination_connector | ลบตัวเชื่อมต่อปลายทางด้วยรหัสปลายทาง |
list_workflows | แสดงรายการเวิร์กโฟลว์จาก Unstructured API |
get_workflow_info | รับข้อมูลโดยละเอียดเกี่ยวกับเวิร์กโฟลว์เฉพาะ |
create_workflow | สร้างเวิร์กโฟลว์ใหม่ด้วยแหล่งข้อมูล รหัสปลายทาง ฯลฯ |
run_workflow | รันเวิร์กโฟลว์เฉพาะด้วยรหัสเวิร์กโฟลว์ |
update_workflow | อัปเดตเวิร์กโฟลว์ที่มีอยู่ด้วยพารามิเตอร์ |
delete_workflow | ลบเวิร์กโฟลว์เฉพาะด้วยรหัส |
list_jobs | แสดงรายการงานสำหรับเวิร์กโฟลว์เฉพาะจาก Unstructured API |
get_job_info | รับข้อมูลโดยละเอียดเกี่ยวกับงานเฉพาะด้วยรหัสงาน |
cancel_job | ลบงานเฉพาะด้วยรหัส |
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 | จำเป็นสำหรับการสร้างตัวเชื่อมต่อ S3 ผ่านเซิร์ฟเวอร์ uns-mcp ดูวิธีการใน เอกสารประกอบ และ ที่นี่ |
WEAVIATE_CLOUD_API_KEY | จำเป็นสำหรับการสร้างตัวเชื่อมต่อฐานข้อมูลเวกเตอร์ Weaviate ดูวิธีการใน เอกสารประกอบ |
FIRECRAWL_API_KEY | จำเป็นสำหรับการใช้เครื่องมือ Firecrawl ใน external/firecrawl.py ลงทะเบียนที่ Firecrawl และรับคีย์ API |
ASTRA_DB_APPLICATION_TOKEN, ASTRA_DB_API_ENDPOINT | จำเป็นสำหรับการสร้างตัวเชื่อมต่อ Astradb ผ่านเซิร์ฟเวอร์ uns-mcp ดูวิธีการใน เอกสารประกอบ |
AZURE_CONNECTION_STRING | ตัวเลือกที่ 1 ที่จำเป็นสำหรับการสร้างตัวเชื่อมต่อ Azure ผ่านเซิร์ฟเวอร์ uns-mcp ดูวิธีการใน เอกสารประกอบ |
AZURE_ACCOUNT_NAME+AZURE_ACCOUNT_KEY | ตัวเลือกที่ 2 ที่จำเป็นสำหรับการสร้างตัวเชื่อมต่อ Azure ผ่านเซิร์ฟเวอร์ uns-mcp ดูวิธีการใน เอกสารประกอบ |
AZURE_ACCOUNT_NAME+AZURE_SAS_TOKEN | ตัวเลือกที่ 3 ที่จำเป็นสำหรับการสร้างตัวเชื่อมต่อ Azure ผ่านเซิร์ฟเวอร์ uns-mcp ดูวิธีการใน เอกสารประกอบ |
NEO4J_PASSWORD | จำเป็นสำหรับการสร้างตัวเชื่อมต่อ Neo4j ผ่านเซิร์ฟเวอร์ uns-mcp ดูวิธีการใน เอกสารประกอบ |
MONGO_DB_CONNECTION_STRING | จำเป็นสำหรับการสร้างตัวเชื่อมต่อ Mongodb ผ่านเซิร์ฟเวอร์ uns-mcp ดูวิธีการใน เอกสารประกอบ |
GOOGLEDRIVE_SERVICE_ACCOUNT_KEY | ค่าสตริง คีย์บัญชีเซิร์ฟเวอร์ดั้งเดิม (ทำตาม เอกสารประกอบ) อยู่ในไฟล์ json รัน base64 < /path/to/google_service_account_key.json ในเทอร์มินัลเพื่อรับค่าสตริง |
DATABRICKS_CLIENT_ID,DATABRICKS_CLIENT_SECRET | จำเป็นสำหรับการสร้างตัวเชื่อมต่อ Databricks volume/delta table ผ่านเซิร์ฟเวอร์ uns-mcp ดูวิธีการใน เอกสารประกอบ และ ที่นี่ |
ONEDRIVE_CLIENT_ID, ONEDRIVE_CLIENT_CRED,ONEDRIVE_TENANT_ID | จำเป็นสำหรับการสร้างตัวเชื่อมต่อ One Drive ผ่านเซิร์ฟเวอร์ uns-mcp ดูวิธีการใน เอกสารประกอบ |
PINECONE_API_KEY | จำเป็นสำหรับการสร้างตัวเชื่อมต่อฐานข้อมูลเวกเตอร์ Pinecone ผ่านเซิร์ฟเวอร์ uns-mcp ดูวิธีการใน เอกสารประกอบ |
SALESFORCE_CONSUMER_KEY,SALESFORCE_PRIVATE_KEY | จำเป็นสำหรับการสร้างตัวเชื่อมต่อแหล่งข้อมูล salesforce ผ่านเซิร์ฟเวอร์ uns-mcp ดูวิธีการใน เอกสารประกอบ |
SHAREPOINT_CLIENT_ID, SHAREPOINT_CLIENT_CRED,SHAREPOINT_TENANT_ID | จำเป็นสำหรับการสร้างตัวเชื่อมต่อ One Drive ผ่านเซิร์ฟเวอร์ uns-mcp ดูวิธีการใน เอกสารประกอบ |
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:
กระบวนการรวบรวมข้อมูลเว็บ:
- เริ่มต้นด้วย URL ที่ระบุและวิเคราะห์เพื่อระบุลิงก์
- ใช้แผนผังเว็บไซต์หากมี มิฉะนั้นจะติดตามลิงก์ที่พบบนเว็บไซต์
- สำรวจแต่ละลิงก์ซ้ำๆ เพื่อค้นพบหน้าย่อยทั้งหมด
- รวบรวมเนื้อหาจากทุกหน้าที่เยี่ยมชม จัดการการเรนเดอร์ JavaScript และการจำกัดอัตรา
- งานสามารถยกเลิกได้ด้วย
cancel_crawlhtml_jobหากจำเป็น - ใช้สิ่งนี้หากคุณต้องการข้อมูลทั้งหมดที่แยกออกมาเป็น HTML ดิบ เวิร์กโฟลว์ของ Unstructured จะทำความสะอาดได้ดีมาก :smile: การสร้างข้อความสำหรับ LLM:
- หลังจากรวบรวมข้อมูล จะดึงเนื้อหาข้อความที่สะอาดและมีความหมายจากหน้าที่รวบรวมมา
- สร้างรูปแบบข้อความที่ปรับให้เหมาะสมสำหรับโมเดลภาษาขนาดใหญ่โดยเฉพาะ
- ผลลัพธ์จะถูกอัปโหลดไปยังตำแหน่ง S3 ที่ระบุโดยอัตโนมัติ
- หมายเหตุ: งานสร้างข้อความสำหรับ LLM ไม่สามารถยกเลิกได้เมื่อเริ่มต้นแล้ว ฟังก์ชัน
cancel_llmtxt_jobมีไว้เพื่อความสอดคล้อง แต่ปัจจุบันยังไม่รองรับโดย Firecrawl API
หมายเหตุ: ต้องตั้งค่าตัวแปรสภาพแวดล้อม FIRECRAWL_API_KEY เพื่อใช้ฟังก์ชันเหล่านี้
การติดตั้งและการกำหนดค่า
คู่มือนี้อธิบายขั้นตอนการตั้งค่าและกำหนดค่าเซิร์ฟเวอร์ UNS_MCP โดยใช้ Python 3.12 และเครื่องมือ uv
ข้อกำหนดเบื้องต้น
- Python 3.12+
uvสำหรับการจัดการสภาพแวดล้อม- คีย์ API จาก Unstructured คุณสามารถสมัครและรับคีย์ 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 -
ตั้งค่าคีย์ API ของ Unstructured เป็นตัวแปรสภาพแวดล้อม สร้างไฟล์ .env ในไดเรกทอรีรากด้วยเนื้อหาต่อไปนี้:
UNSTRUCTURED_API_KEY="YOUR_KEY"อ้างอิง
.env.templateสำหรับตัวแปรสภาพแวดล้อมที่กำหนดค่าได้
คุณสามารถรันเซิร์ฟเวอร์ได้โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้:
การใช้การติดตั้งแพ็คเกจแบบแก้ไขได้
ติดตั้งเป็นแพ็คเกจแบบแก้ไขได้:uvx pip install -e .
อัปเดตการกำหนดค่า Claude Desktop ของคุณ:
{
"mcpServers": {
"UNS_MCP": {
"command": "uvx",
"args": ["uns_mcp"]
}
}
}
หมายเหตุ: อย่าลืมชี้ไปที่ uvx executable ในสภาพแวดล้อมที่คุณติดตั้งแพ็คเกจ
การใช้โปรโตคอลเซิร์ฟเวอร์ 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 การดีบัก จากนั้นคุณจะสามารถเพิ่มตัวแปรสภาพแวดล้อม (ชี้ไปยัง env ภายในของคุณ) ในบานหน้าต่างด้านซ้าย รวมคีย์ API ส่วนตัวของคุณที่นั่นเป็น env var ไปที่ tools คุณสามารถทดสอบความสามารถที่คุณเพิ่มลงในเซิร์ฟเวอร์ MCP ได้
mcp dev uns_mcp/server.py
หากคุณต้องการบันทึกพารามิเตอร์การเรียกคำขอไปยัง UnstructuredClient ให้ตั้งค่าตัวแปรสภาพแวดล้อม DEBUG_API_REQUESTS=false
บันทึกจะถูกเก็บไว้ในไฟล์ที่มีรูปแบบ unstructured-client-{date}.log ซึ่งสามารถตรวจสอบเพื่อดีบักพารามิเตอร์การเรียกคำขอไปยังฟังก์ชัน UnstructuredClient
เพิ่มการเข้าถึงเทอร์มินัลไปยังไคลเอนต์ขั้นต่ำ
เราจะใช้ @wonderwhy-er/desktop-commander เพื่อเพิ่มการเข้าถึงเทอร์มินัลไปยังไคลเอนต์ขั้นต่ำ มันสร้างขึ้นบน MCP Filesystem Server ระวัง เนื่องจากไคลเอนต์ (รวมถึง 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