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 รองรับ ที่นี่ และรายการปลายทาง ที่นี่ เรากำลังวางแผนที่จะเพิ่มเติมอีก!

แหล่งข้อมูลปลายทาง
S3S3
AzureWeaviate
Google DrivePinecone
OneDriveAstraDB
SalesforceMongoDB
SharepointNeo4j
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 ของเรา:

  1. การดึงเนื้อหา HTML: การใช้ invoke_firecrawl_crawlhtml เพื่อเริ่มงานรวบรวมข้อมูลและ check_crawlhtml_status เพื่อตรวจสอบ
  2. การสร้างข้อความที่ปรับให้เหมาะกับ 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>"
         }
      }
   }
}

การใช้ซอร์สโค้ด

  1. โคลนที่เก็บ

  2. ติดตั้งการพึ่งพา:

    uv sync
    
  3. ตั้งค่าคีย์ 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 คุณสามารถดีบักได้ง่ายขึ้นโดยแยกไคลเอนต์และเซิร์ฟเวอร์:

  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 การดีบัก จากนั้นคุณจะสามารถเพิ่มตัวแปรสภาพแวดล้อม (ชี้ไปยัง 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