Unstructured MCP Server
resmiSiapkan 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
| Alat | Deskripsi |
|---|---|
list_sources | Mendaftar sumber yang tersedia dari Unstructured API. |
get_source_info | Mendapatkan informasi detail tentang konektor sumber tertentu. |
create_source_connector | Membuat konektor sumber.) |
update_source_connector | Memperbarui konektor sumber yang ada berdasarkan parameter. |
delete_source_connector | Menghapus konektor sumber berdasarkan ID sumber. |
list_destinations | Mendaftar tujuan yang tersedia dari Unstructured API. |
get_destination_info | Mendapatkan info detail tentang konektor tujuan tertentu |
create_destination_connector | Membuat konektor tujuan berdasarkan parameter. |
update_destination_connector | Memperbarui konektor tujuan yang ada berdasarkan ID tujuan. |
delete_destination_connector | Menghapus konektor tujuan berdasarkan ID tujuan. |
list_workflows | Mendaftar alur kerja dari Unstructured API. |
get_workflow_info | Mendapatkan informasi detail tentang alur kerja tertentu. |
create_workflow | Membuat alur kerja baru dengan sumber, ID tujuan, dll. |
run_workflow | Menjalankan alur kerja tertentu dengan ID alur kerja |
update_workflow | Memperbarui alur kerja yang ada berdasarkan parameter. |
delete_workflow | Menghapus alur kerja tertentu berdasarkan ID. |
list_jobs | Mendaftar pekerjaan untuk alur kerja tertentu dari Unstructured API. |
get_job_info | Mendapatkan informasi detail tentang pekerjaan tertentu berdasarkan ID pekerjaan. |
cancel_job | Menghapus pekerjaan tertentu berdasarkan ID. |
list_workflows_with_finished_jobs | Mendaftar 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!
| Sumber | Tujuan |
|---|---|
| S3 | S3 |
| Azure | Weaviate |
| Google Drive | Pinecone |
| OneDrive | AstraDB |
| Salesforce | MongoDB |
| Sharepoint | Neo4j |
| 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 Kredensial | Deskripsi |
|---|---|
ANTHROPIC_API_KEY | diperlukan untuk menjalankan minimal_client untuk berinteraksi dengan server kami. |
AWS_KEY, AWS_SECRET | diperlukan untuk membuat konektor S3 melalui server uns-mcp, lihat caranya di dokumentasi dan di sini |
WEAVIATE_CLOUD_API_KEY | diperlukan untuk membuat konektor basis data vektor Weaviate, lihat caranya di dokumentasi |
FIRECRAWL_API_KEY | diperlukan untuk menggunakan alat Firecrawl di external/firecrawl.py, daftar di Firecrawl dan dapatkan kunci API. |
ASTRA_DB_APPLICATION_TOKEN, ASTRA_DB_API_ENDPOINT | diperlukan untuk membuat konektor Astradb melalui server uns-mcp, lihat caranya di dokumentasi |
AZURE_CONNECTION_STRING | diperlukan opsi 1 untuk membuat konektor Azure melalui server uns-mcp, lihat caranya di dokumentasi |
AZURE_ACCOUNT_NAME+AZURE_ACCOUNT_KEY | diperlukan opsi 2 untuk membuat konektor Azure melalui server uns-mcp, lihat caranya di dokumentasi |
AZURE_ACCOUNT_NAME+AZURE_SAS_TOKEN | diperlukan opsi 3 untuk membuat konektor Azure melalui server uns-mcp, lihat caranya di dokumentasi |
NEO4J_PASSWORD | diperlukan untuk membuat konektor Neo4j melalui server uns-mcp, lihat caranya di dokumentasi |
MONGO_DB_CONNECTION_STRING | diperlukan untuk membuat konektor Mongodb melalui server uns-mcp, lihat caranya di dokumentasi |
GOOGLEDRIVE_SERVICE_ACCOUNT_KEY | nilai 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_SECRET | diperlukan 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_ID | diperlukan untuk membuat konektor One Drive melalui server uns-mcp, lihat caranya di dokumentasi |
PINECONE_API_KEY | diperlukan untuk membuat konektor basis data vektor Pinecone melalui server uns-mcp, lihat caranya di dokumentasi |
SALESFORCE_CONSUMER_KEY,SALESFORCE_PRIVATE_KEY | diperlukan untuk membuat konektor sumber salesforce melalui server uns-mcp, lihat caranya di dokumentasi |
SHAREPOINT_CLIENT_ID, SHAREPOINT_CLIENT_CRED,SHAREPOINT_TENANT_ID | diperlukan untuk membuat konektor One Drive melalui server uns-mcp, lihat caranya di dokumentasi |
LOG_LEVEL | Digunakan untuk mengatur level logging untuk minimal_client kami, mis. atur ke ERROR untuk mendapatkan semuanya |
CONFIRM_TOOL_USE | atur ke true agar minimal_client dapat mengonfirmasi eksekusi sebelum setiap panggilan alat |
DEBUG_API_REQUESTS | atur 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:
- Pengambilan Konten HTML: Menggunakan
invoke_firecrawl_crawlhtmluntuk memulai pekerjaan perayapan dancheck_crawlhtml_statusuntuk memantaunya - Pembuatan Teks yang Dioptimalkan LLM: Menggunakan
invoke_firecrawl_llmtxtuntuk menghasilkan teks dancheck_llmtxt_statusuntuk 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_jobjika 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_jobdisediakan 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+
uvuntuk 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
-
Kloning repositori.
-
Instal dependensi:
uv sync -
Atur kunci API Unstructured Anda sebagai variabel lingkungan. Buat file .env di direktori root dengan konten berikut:
UNSTRUCTURED_API_KEY="YOUR_KEY"Lihat
.env.templateuntuk 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:
-
Mulai server di satu terminal:
uv run python uns_mcp/server.py --host 127.0.0.1 --port 8080 # or make sse-server -
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_workflowharus dimuat dalam konteks bersama dengan alatcreate_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 alatget_workflow_info, karena alat ini tidak berfungsi sebagai applierpatch, 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> ENOENTitu 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
commandkonfigurasi Anda. Jadi misalnya gantipythondengan/opt/miniconda3/bin/python