Unstructured MCP Server

resmi

Siapkan dan jalankan alur kerja pemrosesan data tidak terstruktur Anda di Unstructured Platform.

Dokumentasi

Server MCP API Unstructured

Implementasi server MCP untuk berinteraksi dengan Unstructured API. Server ini menyediakan alat untuk mendaftar sumber dan alur kerja.

Alat yang Tersedia

AlatDeskripsi
list_sourcesMendaftar sumber yang tersedia dari Unstructured API.
get_source_infoMendapatkan informasi detail tentang konektor sumber tertentu.
create_source_connectorMembuat konektor sumber.)
update_source_connectorMemperbarui konektor sumber yang ada berdasarkan parameter.
delete_source_connectorMenghapus konektor sumber berdasarkan ID sumber.
list_destinationsMendaftar tujuan yang tersedia dari Unstructured API.
get_destination_infoMendapatkan info detail tentang konektor tujuan tertentu
create_destination_connectorMembuat konektor tujuan berdasarkan parameter.
update_destination_connectorMemperbarui konektor tujuan yang ada berdasarkan ID tujuan.
delete_destination_connectorMenghapus konektor tujuan berdasarkan ID tujuan.
list_workflowsMendaftar alur kerja dari Unstructured API.
get_workflow_infoMendapatkan informasi detail tentang alur kerja tertentu.
create_workflowMembuat alur kerja baru dengan sumber, ID tujuan, dll.
run_workflowMenjalankan alur kerja tertentu dengan ID alur kerja
update_workflowMemperbarui alur kerja yang ada berdasarkan parameter.
delete_workflowMenghapus alur kerja tertentu berdasarkan ID.
list_jobsMendaftar pekerjaan untuk alur kerja tertentu dari Unstructured API.
get_job_infoMendapatkan informasi detail tentang pekerjaan tertentu berdasarkan ID pekerjaan.
cancel_jobMenghapus pekerjaan tertentu berdasarkan ID.
list_workflows_with_finished_jobsMendaftar semua alur kerja yang memiliki pekerjaan selesai, beserta informasi tentang detail sumber dan tujuan.

Di bawah ini adalah daftar konektor yang saat ini didukung oleh server UNS-MCP, silakan lihat daftar lengkap konektor sumber yang didukung platform Unstructured di sini dan daftar tujuan di sini. Kami berencana menambahkan lebih banyak lagi!

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

Untuk menggunakan alat yang membuat/memperbarui/menghapus konektor, kredensial untuk konektor tertentu harus ditentukan dalam file .env Anda. Di bawah ini adalah daftar credentials untuk konektor yang kami dukung:

Nama KredensialDeskripsi
ANTHROPIC_API_KEYdiperlukan untuk menjalankan minimal_client untuk berinteraksi dengan server kami.
AWS_KEY, AWS_SECRETdiperlukan untuk membuat konektor S3 melalui server uns-mcp, lihat caranya di dokumentasi dan di sini
WEAVIATE_CLOUD_API_KEYdiperlukan untuk membuat konektor basis data vektor Weaviate, lihat caranya di dokumentasi
FIRECRAWL_API_KEYdiperlukan untuk menggunakan alat Firecrawl di external/firecrawl.py, daftar di Firecrawl dan dapatkan kunci API.
ASTRA_DB_APPLICATION_TOKEN, ASTRA_DB_API_ENDPOINTdiperlukan untuk membuat konektor Astradb melalui server uns-mcp, lihat caranya di dokumentasi
AZURE_CONNECTION_STRINGdiperlukan opsi 1 untuk membuat konektor Azure melalui server uns-mcp, lihat caranya di dokumentasi
AZURE_ACCOUNT_NAME+AZURE_ACCOUNT_KEYdiperlukan opsi 2 untuk membuat konektor Azure melalui server uns-mcp, lihat caranya di dokumentasi
AZURE_ACCOUNT_NAME+AZURE_SAS_TOKENdiperlukan opsi 3 untuk membuat konektor Azure melalui server uns-mcp, lihat caranya di dokumentasi
NEO4J_PASSWORDdiperlukan untuk membuat konektor Neo4j melalui server uns-mcp, lihat caranya di dokumentasi
MONGO_DB_CONNECTION_STRINGdiperlukan untuk membuat konektor Mongodb melalui server uns-mcp, lihat caranya di dokumentasi
GOOGLEDRIVE_SERVICE_ACCOUNT_KEYnilai string. Kunci akun server asli (ikuti dokumentasi) ada dalam file json, jalankan base64 < /path/to/google_service_account_key.json di terminal untuk mendapatkan nilai string
DATABRICKS_CLIENT_ID,DATABRICKS_CLIENT_SECRETdiperlukan untuk membuat konektor volume/tabel delta Databricks melalui server uns-mcp, lihat caranya di dokumentasi dan di sini
ONEDRIVE_CLIENT_ID, ONEDRIVE_CLIENT_CRED,ONEDRIVE_TENANT_IDdiperlukan untuk membuat konektor One Drive melalui server uns-mcp, lihat caranya di dokumentasi
PINECONE_API_KEYdiperlukan untuk membuat konektor basis data vektor Pinecone melalui server uns-mcp, lihat caranya di dokumentasi
SALESFORCE_CONSUMER_KEY,SALESFORCE_PRIVATE_KEYdiperlukan untuk membuat konektor sumber salesforce melalui server uns-mcp, lihat caranya di dokumentasi
SHAREPOINT_CLIENT_ID, SHAREPOINT_CLIENT_CRED,SHAREPOINT_TENANT_IDdiperlukan untuk membuat konektor One Drive melalui server uns-mcp, lihat caranya di dokumentasi
LOG_LEVELDigunakan untuk mengatur level logging untuk minimal_client kami, mis. atur ke ERROR untuk mendapatkan semuanya
CONFIRM_TOOL_USEatur ke true agar minimal_client dapat mengonfirmasi eksekusi sebelum setiap panggilan alat
DEBUG_API_REQUESTSatur ke true agar uns_mcp/server.py dapat mengeluarkan parameter permintaan untuk debugging yang lebih baik

Sumber Firecrawl

Firecrawl adalah API perayapan web yang menyediakan dua kemampuan utama di MCP kami:

  1. Pengambilan Konten HTML: Menggunakan invoke_firecrawl_crawlhtml untuk memulai pekerjaan perayapan dan check_crawlhtml_status untuk memantaunya
  2. Pembuatan Teks yang Dioptimalkan LLM: Menggunakan invoke_firecrawl_llmtxt untuk menghasilkan teks dan check_llmtxt_status untuk mengambil hasil

Cara kerja Firecrawl:

Proses Perayapan Web:

  • Dimulai dengan URL tertentu dan menganalisisnya untuk mengidentifikasi tautan
  • Menggunakan peta situs jika tersedia; jika tidak, mengikuti tautan yang ditemukan di situs web
  • Secara rekursif melintasi setiap tautan untuk menemukan semua subhalaman
  • Mengumpulkan konten dari setiap halaman yang dikunjungi, menangani rendering JavaScript dan batas kecepatan
  • Pekerjaan dapat dibatalkan dengan cancel_crawlhtml_job jika diperlukan
  • Gunakan ini jika Anda memerlukan semua info yang diekstrak ke dalam HTML mentah, alur kerja Unstructured membersihkannya dengan sangat baik :smile:

Pembuatan Teks LLM:

  • Setelah perayapan, mengekstrak konten teks yang bersih dan bermakna dari halaman yang dirayapi
  • Menghasilkan format teks yang dioptimalkan yang diformat khusus untuk model bahasa besar
  • Hasil secara otomatis diunggah ke lokasi S3 yang ditentukan
  • Catatan: Pekerjaan pembuatan teks LLM tidak dapat dibatalkan setelah dimulai. Fungsi cancel_llmtxt_job disediakan untuk konsistensi tetapi saat ini tidak didukung oleh Firecrawl API.

Catatan: Variabel lingkungan FIRECRAWL_API_KEY harus diatur untuk menggunakan fungsi-fungsi ini.

Instalasi & Konfigurasi

Panduan ini memberikan instruksi langkah demi langkah untuk menyiapkan dan mengonfigurasi server UNS_MCP menggunakan Python 3.12 dan alat uv.

Prasyarat

  • Python 3.12+
  • uv untuk manajemen lingkungan
  • Kunci API dari Unstructured. Anda dapat mendaftar dan mendapatkan kunci API Anda di sini.

Menggunakan uv (Direkomendasikan)

Tidak diperlukan instalasi tambahan saat menggunakan uvx karena ia menangani eksekusi. Namun, jika Anda lebih suka menginstal paket secara langsung:

uv pip install uns_mcp

Konfigurasi Claude Desktop

Untuk integrasi dengan Claude Desktop, tambahkan konten berikut ke claude_desktop_config.json Anda:

Catatan: File terletak di direktori ~/Library/Application Support/Claude/.

Menggunakan Perintah uvx:

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

Alternatif, Menggunakan Paket Python:

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

Menggunakan Kode Sumber

  1. Kloning repositori.

  2. Instal dependensi:

    uv sync
    
  3. Atur kunci API Unstructured Anda sebagai variabel lingkungan. Buat file .env di direktori root dengan konten berikut:

    UNSTRUCTURED_API_KEY="YOUR_KEY"
    

    Lihat .env.template untuk variabel lingkungan yang dapat dikonfigurasi.

Anda sekarang dapat menjalankan server menggunakan salah satu metode berikut:

Menggunakan Instalasi Paket yang Dapat Diedit Instal sebagai paket yang dapat diedit:
uvx pip install -e .

Perbarui konfigurasi Claude Desktop Anda:

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

Catatan: Ingatlah untuk menunjuk ke executable uvx di lingkungan tempat Anda menginstal paket

Menggunakan Protokol Server SSE

Catatan: Tidak didukung oleh Claude Desktop.

Untuk protokol SSE, Anda dapat melakukan debug lebih mudah dengan memisahkan klien dan server:

  1. Mulai server di satu terminal:

    uv run python uns_mcp/server.py --host 127.0.0.1 --port 8080
    # or
    make sse-server
    
  2. Uji server menggunakan klien lokal di terminal lain:

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

Catatan: Untuk menghentikan layanan, gunakan Ctrl+C pada klien terlebih dahulu, lalu server.

Menggunakan Protokol Server Stdio

Konfigurasikan Claude Desktop untuk menggunakan 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"
      ]
    }
  }
}

Alternatif, jalankan klien lokal:

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

Konfigurasi Klien Lokal Tambahan

Konfigurasikan klien minimal menggunakan variabel lingkungan:

  • LOG_LEVEL="ERROR": Atur untuk menekan output debug dari LLM, menampilkan pesan yang jelas untuk pengguna.
  • CONFIRM_TOOL_USE='false': Nonaktifkan konfirmasi penggunaan alat sebelum eksekusi. Gunakan dengan hati-hati, terutama selama pengembangan, karena LLM dapat menjalankan alur kerja yang mahal atau menghapus data.

Alat debugging

Anthropic menyediakan alat MCP Inspector untuk debug/uji server MCP Anda. Jalankan perintah berikut untuk memutar UI debugging. Dari sana, Anda akan dapat menambahkan variabel lingkungan (menunjuk ke env lokal Anda) di panel kiri. Sertakan kunci API pribadi Anda di sana sebagai env var. Buka tools, Anda dapat menguji kemampuan yang Anda tambahkan ke server MCP.

mcp dev uns_mcp/server.py

Jika Anda perlu mencatat parameter panggilan permintaan ke UnstructuredClient, atur variabel lingkungan DEBUG_API_REQUESTS=false. Log disimpan dalam file dengan format unstructured-client-{date}.log, yang dapat diperiksa untuk debug parameter panggilan permintaan ke fungsi UnstructuredClient.

Tambahkan akses terminal ke klien minimal

Kami akan menggunakan @wonderwhy-er/desktop-commander untuk menambahkan akses terminal ke klien minimal. Ini dibangun di atas Server Sistem File MCP. Berhati-hatilah, karena klien (juga LLM) sekarang memiliki akses ke file pribadi.

Jalankan perintah berikut untuk menginstal paket:

npx @wonderwhy-er/desktop-commander setup

Kemudian mulai klien dengan parameter tambahan:

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

Menggunakan subset alat

Jika klien Anda mendukung penggunaan hanya subset alat, berikut adalah daftar hal yang harus Anda perhatikan:

  • Alat update_workflow harus dimuat dalam konteks bersama dengan alat create_workflow, karena berisi deskripsi detail tentang cara membuat dan mengonfigurasi node kustom.

Masalah yang Diketahui

  • update_workflow - perlu memiliki dalam konteks konfigurasi alur kerja yang sedang diperbarui baik dengan menyediakannya oleh pengguna atau dengan memanggil alat get_workflow_info, karena alat ini tidak berfungsi sebagai applier patch, ia sepenuhnya mengganti konfigurasi alur kerja.

CHANGELOG.md

Setiap fitur/perbaikan/peningkatan baru yang dikembangkan akan ditambahkan ke CHANGELOG.md. Format pra-rilis 0.x.x-dev lebih disukai sebelum kami naik ke versi stabil.

Pemecahan Masalah

  • Jika Anda mengalami masalah dengan Error: spawn <command> ENOENT itu berarti <command> tidak terinstal atau tidak terlihat di PATH Anda:
    • Pastikan untuk menginstalnya dan menambahkannya ke PATH Anda.
    • atau berikan path absolut ke perintah di bidang command konfigurasi Anda. Jadi misalnya ganti python dengan /opt/miniconda3/bin/python