Unstructured MCP Server

resmi

Unstructured Platform'da yapılandırılmamış veri işleme iş akışlarınızı kurun ve bunlarla etkileşime geçin.

Dokümantasyon

Unstructured API MCP Sunucusu

Unstructured API ile etkileşim kurmak için bir MCP sunucu uygulaması. Bu sunucu, kaynakları ve iş akışlarını listelemek için araçlar sağlar.

Mevcut Araçlar

AraçAçıklama
list_sourcesUnstructured API'den mevcut kaynakları listeler.
get_source_infoBelirli bir kaynak bağlayıcısı hakkında ayrıntılı bilgi alır.
create_source_connectorBir kaynak bağlayıcısı oluşturur.)
update_source_connectorMevcut bir kaynak bağlayıcısını parametrelerle günceller.
delete_source_connectorBir kaynak bağlayıcısını kaynak kimliğine göre siler.
list_destinationsUnstructured API'den mevcut hedefleri listeler.
get_destination_infoBelirli bir hedef bağlayıcısı hakkında ayrıntılı bilgi alır
create_destination_connectorParametrelerle bir hedef bağlayıcısı oluşturur.
update_destination_connectorMevcut bir hedef bağlayıcısını hedef kimliğine göre günceller.
delete_destination_connectorBir hedef bağlayıcısını hedef kimliğine göre siler.
list_workflowsUnstructured API'den iş akışlarını listeler.
get_workflow_infoBelirli bir iş akışı hakkında ayrıntılı bilgi alır.
create_workflowKaynak, hedef kimliği vb. ile yeni bir iş akışı oluşturur.
run_workflowBelirli bir iş akışını iş akışı kimliği ile çalıştırır
update_workflowMevcut bir iş akışını parametrelerle günceller.
delete_workflowBelirli bir iş akışını kimliğe göre siler.
list_jobsUnstructured API'den belirli bir iş akışı için işleri listeler.
get_job_infoBelirli bir iş hakkında iş kimliğine göre ayrıntılı bilgi alır.
cancel_jobBelirli bir işi kimliğe göre siler.
list_workflows_with_finished_jobsTamamlanmış herhangi bir işi olan tüm iş akışlarını, kaynak ve hedef ayrıntıları hakkında bilgilerle birlikte listeler.

Aşağıda, UNS-MCP sunucusunun şu anda desteklediği bağlayıcıların bir listesi bulunmaktadır; Unstructured platformunun desteklediği kaynak bağlayıcılarının tam listesini burada ve hedef listesini burada görebilirsiniz. Daha fazlasını eklemeyi planlıyoruz!

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

Bir bağlayıcı oluşturan/güncelleyen/silen aracı kullanmak için, o belirli bağlayıcının kimlik bilgileri .env dosyanızda tanımlanmış olmalıdır. Aşağıda, desteklediğimiz bağlayıcılar için credentials listesi bulunmaktadır:

Kimlik Bilgisi AdıAçıklama
ANTHROPIC_API_KEYSunucumuzla etkileşim kurmak için minimal_client çalıştırmak gereklidir.
AWS_KEY, AWS_SECRETuns-mcp sunucusu aracılığıyla S3 bağlayıcısı oluşturmak için gereklidir, nasıl yapılacağını belgelerde ve burada görebilirsiniz
WEAVIATE_CLOUD_API_KEYWeaviate vektör veritabanı bağlayıcısı oluşturmak için gereklidir, nasıl yapılacağını belgelerde görebilirsiniz
FIRECRAWL_API_KEYexternal/firecrawl.py içindeki Firecrawl araçlarını kullanmak için gereklidir, Firecrawl adresinden kaydolun ve bir API anahtarı alın.
ASTRA_DB_APPLICATION_TOKEN, ASTRA_DB_API_ENDPOINTuns-mcp sunucusu aracılığıyla Astradb bağlayıcısı oluşturmak için gereklidir, nasıl yapılacağını belgelerde görebilirsiniz
AZURE_CONNECTION_STRINGuns-mcp sunucusu aracılığıyla Azure bağlayıcısı oluşturmak için seçenek 1 gereklidir, nasıl yapılacağını belgelerde görebilirsiniz
AZURE_ACCOUNT_NAME+AZURE_ACCOUNT_KEYuns-mcp sunucusu aracılığıyla Azure bağlayıcısı oluşturmak için seçenek 2 gereklidir, nasıl yapılacağını belgelerde görebilirsiniz
AZURE_ACCOUNT_NAME+AZURE_SAS_TOKENuns-mcp sunucusu aracılığıyla Azure bağlayıcısı oluşturmak için seçenek 3 gereklidir, nasıl yapılacağını belgelerde görebilirsiniz
NEO4J_PASSWORDuns-mcp sunucusu aracılığıyla Neo4j bağlayıcısı oluşturmak için gereklidir, nasıl yapılacağını belgelerde görebilirsiniz
MONGO_DB_CONNECTION_STRINGuns-mcp sunucusu aracılığıyla Mongodb bağlayıcısı oluşturmak için gereklidir, nasıl yapılacağını belgelerde görebilirsiniz
GOOGLEDRIVE_SERVICE_ACCOUNT_KEYbir dize değeri. Orijinal sunucu hesap anahtarı (belgeleri takip edin) json dosyasındadır, dize değerini almak için terminalde base64 < /path/to/google_service_account_key.json çalıştırın
DATABRICKS_CLIENT_ID,DATABRICKS_CLIENT_SECRETuns-mcp sunucusu aracılığıyla Databricks volume/delta table bağlayıcısı oluşturmak için gereklidir, nasıl yapılacağını belgelerde ve burada görebilirsiniz
ONEDRIVE_CLIENT_ID, ONEDRIVE_CLIENT_CRED,ONEDRIVE_TENANT_IDuns-mcp sunucusu aracılığıyla One Drive bağlayıcısı oluşturmak için gereklidir, nasıl yapılacağını belgelerde görebilirsiniz
PINECONE_API_KEYuns-mcp sunucusu aracılığıyla Pinecone vektör DB bağlayıcısı oluşturmak için gereklidir, nasıl yapılacağını belgelerde görebilirsiniz
SALESFORCE_CONSUMER_KEY,SALESFORCE_PRIVATE_KEYuns-mcp sunucusu aracılığıyla salesforce kaynak bağlayıcısı oluşturmak için gereklidir, nasıl yapılacağını belgelerde görebilirsiniz
SHAREPOINT_CLIENT_ID, SHAREPOINT_CLIENT_CRED,SHAREPOINT_TENANT_IDuns-mcp sunucusu aracılığıyla One Drive bağlayıcısı oluşturmak için gereklidir, nasıl yapılacağını belgelerde görebilirsiniz
LOG_LEVELminimal_client için günlük seviyesini ayarlamak için kullanılır, örneğin her şeyi almak için ERROR olarak ayarlayın
CONFIRM_TOOL_USEminimal_client'nin her araç çağrısından önce yürütmeyi onaylayabilmesi için true olarak ayarlayın
DEBUG_API_REQUESTSuns_mcp/server.py'nin daha iyi hata ayıklama için istek parametrelerini çıktılayabilmesi için true olarak ayarlayın

Firecrawl Kaynağı

Firecrawl, MCP'mizde iki ana yetenek sağlayan bir web tarama API'sidir:

  1. HTML İçerik Alma: Tarama işlerini başlatmak için invoke_firecrawl_crawlhtml ve bunları izlemek için check_crawlhtml_status kullanma
  2. LLM için Optimize Edilmiş Metin Üretimi: Metin üretmek için invoke_firecrawl_llmtxt ve sonuçları almak için check_llmtxt_status kullanma

Firecrawl nasıl çalışır:

Web Tarama Süreci:

  • Belirtilen bir URL ile başlar ve bağlantıları belirlemek için analiz eder
  • Varsa site haritasını kullanır; aksi takdirde web sitesinde bulunan bağlantıları takip eder
  • Tüm alt sayfaları keşfetmek için her bağlantıyı özyinelemeli olarak dolaşır
  • JavaScript işleme ve hız sınırlarını ele alarak ziyaret edilen her sayfadan içerik toplar
  • Gerekirse işler cancel_crawlhtml_job ile iptal edilebilir
  • Tüm bilgilerin ham HTML olarak çıkarılmasını istiyorsanız bunu kullanın, Unstructured'ın iş akışı bunu gerçekten iyi temizler :smile: LLM Metin Üretimi:
  • Taramadan sonra, taranan sayfalardan temiz, anlamlı metin içeriği çıkarır
  • Büyük dil modelleri için özel olarak biçimlendirilmiş optimize metin formatları üretir
  • Sonuçlar otomatik olarak belirtilen S3 konumuna yüklenir
  • Not: LLM metin üretim işleri başlatıldıktan sonra iptal edilemez. cancel_llmtxt_job işlevi tutarlılık için sağlanmıştır ancak şu anda Firecrawl API tarafından desteklenmemektedir.

Not: Bu işlevleri kullanmak için bir FIRECRAWL_API_KEY ortam değişkeni ayarlanmalıdır.

Kurulum & Yapılandırma

Bu kılavuz, Python 3.12 ve uv aracını kullanarak UNS_MCP sunucusunu kurmak ve yapılandırmak için adım adım talimatlar sağlar.

Ön Koşullar

  • Python 3.12+
  • Ortam yönetimi için uv
  • Unstructured'dan bir API anahtarı. Kaydolup API anahtarınızı buradan alabilirsiniz.

uv Kullanımı (Önerilir)

uvx kullanıldığında, yürütmeyi kendisi yönettiği için ek kurulum gerekmez. Ancak paketi doğrudan kurmayı tercih ederseniz:

uv pip install uns_mcp

Claude Desktop'ı Yapılandırma

Claude Desktop ile entegrasyon için, claude_desktop_config.json dosyanıza aşağıdaki içeriği ekleyin:

Not: Dosya, ~/Library/Application Support/Claude/ dizininde bulunur.

uvx Komutu Kullanarak:

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

Alternatif Olarak, Python Paketi Kullanarak:

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

Kaynak Kod Kullanımı

  1. Depoyu klonlayın.

  2. Bağımlılıkları yükleyin:

    uv sync
    
  3. Unstructured API anahtarınızı bir ortam değişkeni olarak ayarlayın. Kök dizinde aşağıdaki içeriğe sahip bir .env dosyası oluşturun:

    UNSTRUCTURED_API_KEY="YOUR_KEY"
    

    Yapılandırılabilir ortam değişkenleri için .env.template sayfasına bakın.

Artık sunucuyu aşağıdaki yöntemlerden birini kullanarak çalıştırabilirsiniz:

Düzenlenebilir Paket Kurulumu Kullanarak Düzenlenebilir paket olarak kurun:
uvx pip install -e .

Claude Desktop yapılandırmanızı güncelleyin:

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

Not: Paketi kurduğunuz ortamdaki uvx yürütülebilir dosyasını işaret ettiğinizden emin olun

SSE Sunucu Protokolü Kullanımı

Not: Claude Desktop tarafından desteklenmez.

SSE protokolü için, istemci ve sunucuyu ayırarak daha kolay hata ayıklama yapabilirsiniz:

  1. Bir terminalde sunucuyu başlatın:

    uv run python uns_mcp/server.py --host 127.0.0.1 --port 8080
    # or
    make sse-server
    
  2. Başka bir terminalde yerel bir istemci kullanarak sunucuyu test edin:

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

Not: Hizmetleri durdurmak için, önce istemcide sonra sunucuda Ctrl+C kullanın.

Stdio Sunucu Protokolü Kullanımı

Claude Desktop'ı stdio kullanacak şekilde yapılandırın:

{
  "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 olarak, yerel istemciyi çalıştırın:

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

Ek Yerel İstemci Yapılandırması

Minimal istemciyi ortam değişkenlerini kullanarak yapılandırın:

  • LOG_LEVEL="ERROR": LLM'den gelen hata ayıklama çıktılarını bastırmak ve kullanıcılar için net mesajlar görüntülemek için ayarlayın.
  • CONFIRM_TOOL_USE='false': Yürütmeden önce araç kullanım onayını devre dışı bırakın. Özellikle geliştirme sırasında dikkatli kullanın, çünkü LLM pahalı iş akışları yürütebilir veya verileri silebilir.

Hata Ayıklama Araçları

Anthropic, MCP sunucunuzda hata ayıklamak/test etmek için MCP Inspector aracını sağlar. Bir hata ayıklama kullanıcı arayüzü başlatmak için aşağıdaki komutu çalıştırın. Buradan, sol bölmede ortam değişkenleri ekleyebilirsiniz (yerel ortamınıza işaret ederek). Kişisel API anahtarınızı buraya ortam değişkeni olarak ekleyin. tools sayfasına gidin, MCP sunucusuna eklediğiniz yetenekleri test edebilirsiniz.

mcp dev uns_mcp/server.py

İstek çağrı parametrelerini UnstructuredClient'e kaydetmeniz gerekiyorsa, DEBUG_API_REQUESTS=false ortam değişkenini ayarlayın. Günlükler, UnstructuredClient işlevlerine yapılan istek çağrı parametrelerinde hata ayıklamak için incelenebilecek unstructured-client-{date}.log biçiminde bir dosyada saklanır.

Minimal istemciye terminal erişimi ekleme

Minimal istemciye terminal erişimi eklemek için @wonderwhy-er/desktop-commander kullanacağız. Bu, MCP Dosya Sistemi Sunucusu üzerine inşa edilmiştir. Dikkatli olun, çünkü istemci (ve LLM) artık özel dosyalara erişebilir.

Paketi kurmak için aşağıdaki komutu yürütün:

npx @wonderwhy-er/desktop-commander setup

Ardından istemciyi ek parametre ile başlatın:

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

Araçların alt kümesini kullanma

İstemciniz yalnızca araçların bir alt kümesini kullanmayı destekliyorsa, bilmeniz gerekenler şunlardır:

  • update_workflow aracı, özel düğümün nasıl oluşturulacağı ve yapılandırılacağına dair ayrıntılı açıklama içerdiğinden, create_workflow aracı ile birlikte bağlama yüklenmelidir.

Bilinen Sorunlar

  • update_workflow - güncellediği iş akışının yapılandırmasını, kullanıcı tarafından sağlanarak veya get_workflow_info aracı çağrılarak bağlamda bulundurmalıdır, çünkü bu araç patch uygulayıcısı olarak çalışmaz, iş akışı yapılandırmasını tamamen değiştirir.

CHANGELOG.md

Yeni geliştirilen özellikler/düzeltmeler/iyileştirmeler CHANGELOG.md dosyasına eklenecektir. Kararlı bir sürüme geçmeden önce 0.x.x-dev ön sürüm formatı tercih edilir.

Sorun Giderme

  • Error: spawn <command> ENOENT ile ilgili sorunlarla karşılaşırsanız, bu <command>'in kurulu olmadığı veya PATH'inizde görünür olmadığı anlamına gelir:
    • Kurduğunuzdan ve PATH'inize eklediğinizden emin olun.
    • veya yapılandırmanızın command alanında komutun mutlak yolunu sağlayın. Örneğin, python yerine /opt/miniconda3/bin/python yazın.