ZenML

resmi

Berinteraksi dengan pipeline MLOps dan LLMOps Anda melalui server MCP ZenML Anda

Apa yang bisa Anda lakukan dengan ZenML MCP?

  • Memeriksa sumber daya ZenML — Minta untuk membuat daftar atau menjelaskan pipeline, stack, model, atau deployment melalui zenml_list_resources dan zenml_describe_resources.
  • Memicu eksekusi pipeline — Minta eksekusi baru dari snapshot atau template menggunakan trigger_pipeline dengan nama atau ID.
  • Mengambil detail dan log eksekusi — Ambil log langkah, log deployment, atau kode langkah dengan get_step_logs, get_deployment_logs, atau get_step_code.
  • Mendiagnosis masalah pengaturan — Jalankan diagnose_zenml_setup untuk memecahkan masalah konektivitas server atau masalah konfigurasi.
  • Membuka dasbor interaktif — Luncurkan dasbor eksekusi pipeline atau bagan aktivitas melalui open_pipeline_run_dashboard atau open_run_activity_chart.
  • Mengelola sumber daya dengan aman — Buat, perbarui, atau hapus sumber daya seperti proyek atau stack menggunakan zenml_create_resource, zenml_update_resource, atau zenml_delete_resource.

Dokumentasi

Server MCP untuk ZenML

Trust Score

Proyek ini mengimplementasikan server Model Context Protocol (MCP) untuk berinteraksi dengan API ZenML.

ZenML MCP Server

Apa itu MCP?

Model Context Protocol (MCP) adalah protokol terbuka yang menstandarkan cara aplikasi menyediakan konteks kepada Large Language Models (LLM). Protokol ini bertindak seperti "port USB-C untuk aplikasi AI" — menyediakan cara terstandar untuk menghubungkan model AI ke berbagai sumber data dan alat.

MCP mengikuti arsitektur klien-server di mana:

  • Host MCP: Program seperti Claude Desktop atau IDE yang ingin mengakses data melalui MCP
  • Klien MCP: Klien protokol yang menjaga koneksi 1:1 dengan server
  • Server MCP: Program ringan yang mengekspos kemampuan spesifik melalui protokol terstandar
  • Sumber Data Lokal: File, database, dan layanan di komputer Anda yang dapat diakses server MCP secara aman
  • Layanan Jarak Jauh: Sistem eksternal yang tersedia melalui internet yang dapat dihubungkan oleh server MCP

Apa itu ZenML?

ZenML adalah platform sumber terbuka untuk membangun dan mengelola pipeline ML dan AI. Platform ini menyediakan antarmuka terpadu untuk mengelola data, model, dan eksperimen.

Untuk informasi lebih lanjut, lihat situs web ZenML dan dokumentasi kami.

Fitur

Server menyediakan alat MCP untuk mengakses fungsi baca inti dari server ZenML, menyediakan cara untuk mendapatkan informasi langsung tentang:

Entitas Inti

  • Pengguna - akun pengguna dan izin
  • Stack - konfigurasi infrastruktur
  • Komponen Stack - blok penyusun stack individual
  • Flavor - jenis komponen yang tersedia
  • Konektor Layanan - autentikasi cloud

Eksekusi Pipeline

  • Pipeline - definisi pipeline
  • Jalankan Pipeline - riwayat eksekusi dan status
  • Langkah Pipeline - detail langkah individual, kode, dan log
  • Jadwal - jadwal eksekusi otomatis
  • Artefak - metadata tentang artefak data (bukan data itu sendiri)

Deployment & Serving

  • Snapshot - konfigurasi pipeline yang dibekukan (artefak "apa yang akan dijalankan/disajikan")
  • Deployment - instance serving runtime dengan status, URL, dan log
  • Layanan - endpoint serving model

Organisasi & Penemuan

  • Proyek - wadah organisasi untuk sumber daya ZenML
  • Tag - label metadata lintas sektor untuk penemuan
  • Build - artefak build pipeline dengan informasi gambar dan kode

Model

  • Model - entri registry model ML
  • Versi Model - artefak model dengan versi

API Kompatibilitas (migrasi disarankan)

  • Template jalankan pipeline tetap tersedia di ZenML 0.97.0, sementara Snapshot lebih disukai untuk alur kerja baru (lihat Panduan Migrasi)

Server juga memungkinkan Anda untuk memicu jalankan pipeline baru menggunakan snapshot (disarankan) atau parameter pemicu berbasis template yang sudah tidak digunakan lagi.

Catatan: Kami terus meningkatkan integrasi ini berdasarkan umpan balik pengguna. Silakan bergabung dengan komunitas Slack kami untuk berbagi pengalaman dan membantu kami membuatnya lebih baik lagi!

Profil alat dan kebijakan tulis

Profil compact default mengiklankan 16 alat. Tujuh alat generik mencakup katalog sumber daya, pembacaan, mutasi biasa, dan tindakan siklus hidup terbatas:

AlatTujuan
zenml_describe_resourcesMenemukan jenis sumber daya yang didukung dan skema operasi terbatas
zenml_list_resourcesDaftar satu jenis sumber daya dengan filter dan paginasi yang divalidasi
zenml_get_resourceDapatkan satu sumber daya, dengan cakupan induk dan proyek jika diperlukan
zenml_create_resourceBuat sumber daya yang didukung dari payload bertipe
zenml_update_resourcePerbarui satu UUID sumber daya yang tepat
zenml_delete_resourceHapus atau arsipkan satu UUID sumber daya yang tepat
zenml_action_resourceJalankan tindakan siklus hidup atau hubungan yang diizinkan tanpa percobaan ulang

Sembilan alat terfokus tetap ada karena menyediakan diagnostik, konteks aktif, log atau kode yang dialirkan, eksekusi pipeline, atau App interaktif:

  • diagnose_zenml_setup
  • get_active_user dan get_active_project
  • trigger_pipeline
  • get_step_logs, get_step_code, dan get_deployment_logs
  • open_pipeline_run_dashboard dan open_run_activity_chart

get_step_logs mengembalikan maksimal 50.000 entri, yang terlama terlebih dahulu, dengan flag possibly_truncated, plus note yang menyatakan entri mana yang hilang dan alasannya. Berikan tail untuk hanya mendapatkan entri terbaru. Di server ZenML 0.97+ halaman ini melalui log store; di 0.96 menggunakan endpoint permintaan tunggal yang lebih lama.

Gunakan ZENML_MCP_PROFILE=legacy ketika klien yang ada masih bergantung pada nama lama yang spesifik untuk entitas seperti list_pipeline_runs. Ini mempertahankan lapisan kompatibilitas nama alat dan skema yang dikarakterisasi untuk ZenML 0.97.0. Ini tidak menambahkan dukungan untuk versi server ZenML yang lebih lama. Gunakan hanya saat migrasi: bentuk respons lama dapat mengekspos lebih banyak metadata operasional daripada alat ringkas, meskipun server menghilangkan konfigurasi yang mengandung kredensial dan bidang sensitif lainnya dari kedua profil.

Pendaftaran dan akses tulis bersifat independen:

ProfilKebijakanAlat yang diiklankan
compactread_write16
compactread_only11
legacyread_write57
legacyread_only52

Setel ZENML_MCP_WRITE_POLICY=read_only untuk menghapus keempat alat mutasi generik dan trigger_pipeline dari penemuan dan pengiriman MCP. Penemuan sumber daya juga menghilangkan skema buat, perbarui, hapus, dan tindakan. Pengaturan ZENML_MCP_READ_ONLY=true yang lebih lama tetap diterima; nilai kebijakan yang tidak valid gagal tertutup ke mode hanya-baca. ZENML_MCP_PROFILE yang tidak valid menghentikan startup dengan kesalahan konfigurasi.

Versi 2.0.0 memerlukan MCP Python SDK 2.2.0 dan ZenML 0.96.4. Profil ringkas adalah default baru dan merupakan perubahan penemuan yang merusak untuk klien yang memanggil nama alat spesifik entitas. Setel ZENML_MCP_PROFILE=legacy saat memigrasikan klien tersebut, lalu pindahkan setiap panggilan ke alat sumber daya generik.

Hasil mutasi membedakan hasil completed, accepted, dan unknown. Server tidak mengulangi mutasi setelah mungkin mencapai ZenML. Untuk hasil yang diterima atau tidak diketahui, ikuti instruksi rekonsiliasi dalam respons sebelum memutuskan apakah akan memanggil lagi. Gunakan pembacaan bernama jika tersedia. Pembuatan webhook dan rotasi rahasia dapat mengembalikan rahasia penandatanganan baru sekali; pembacaan berikutnya menghilangkannya. Skema hapus menyatakan apakah operasi mengarsipkan metadata, menghapus metadata, menghapus penyediaan sumber daya langsung, atau dapat menghapus data artefak yang tersimpan.

Rilis 2.0 pertama mencakup operasi biasa untuk proyek, stack dan komponen, flavor, layanan, pipeline dan jalankan, snapshot dan template, deployment, artefak dan versi, model dan versi, tag, konektor, repositori kode, webhook, pemicu, kondisi tunggu, dan pemanggilan hook. Pengguna, jadwal, jenis konektor layanan, rahasia, dan permintaan sumber daya memiliki cakupan hanya-baca yang ditunjukkan oleh zenml_describe_resources. Ini mengecualikan administrasi bidang kontrol ZenML Cloud, administrasi Resource Manager, administrasi pengguna dan kredensial, CRUD nilai rahasia, login dan verifikasi konektor, peristiwa webhook mentah, dan alat debugging atau lineage agregat.

Mulai alur kerja generik dengan menemukan skema yang tepat, lalu memanggilnya:

zenml_describe_resources(resource_type="pipeline_run", operation="list")
zenml_list_resources(
    resource_type="pipeline_run",
    filters={"status": "completed", "sort_by": "desc:created"},
    page=1,
    size=10,
)

Prompt dan sumber daya tetap tersedia di kedua profil. Prompt analisis, endpoint skema sumber daya terbatas, dan most_recent_runs adalah prompt atau sumber daya MCP, bukan alat.

Kompatibilitas template jalankan

ZenML 0.97.0 mempertahankan API CRUD template jalankan. Snapshot lebih disukai untuk alur kerja baru. Pembuatan pipeline yang nyaman dan parameter pemicu berbasis template tidak digunakan lagi. Di profil lama, get_run_template dan list_run_templates tetap tersedia untuk klien yang ada.

Input tag lama tetap ada di list_run_templates untuk kompatibilitas skema, tetapi ZenML 0.97.0 tidak memiliki filter sisi server yang setara. Nilai non-null ditolak sebelum panggilan SDK. Pemfilteran tag snapshot tetap tersedia.

Migrasi: Template Jalankan → Snapshot

Mengapa perubahan ini? Snapshot menggantikan template jalankan sebagai artefak pipeline yang dapat dijalankan yang disukai ZenML. SDK 0.97.0 masih mendukung CRUD template jalankan, sementara kode baru harus menggunakan snapshot.

Panduan Migrasi Cepat

Pola Lama (Template)Pola Ringkas (Snapshot)
list_run_templates()zenml_list_resources(resource_type="snapshot", filters={"runnable": true, "named_only": true})
get_run_template(name)zenml_get_resource(resource_type="snapshot", resource_id=id)
trigger_pipeline(template_id=...)trigger_pipeline(snapshot_name_or_id=...)

Contoh Alur Kerja (Snapshot-First)

1. Discover project context:
   → get_active_project()

2. Find runnable snapshots:
   → zenml_list_resources(resource_type="snapshot", filters={"runnable": true, "named_only": true})

3. Trigger a run:
   → trigger_pipeline(snapshot_name_or_id="my-snapshot")

4. Check deployments:
   → zenml_list_resources(resource_type="deployment", filters={"status": "running"})
   → get_deployment_logs(name_id_or_prefix="my-deployment", tail=100)

Catatan: get_deployment_logs mengembalikan output terbatas (default 100 baris, maks 1000, dibatasi 100KB) dan memerlukan integrasi deployer yang sesuai untuk diinstal.

Pengaturan Cepat melalui Dashboard (Disarankan)

Cara termudah untuk mengatur Server MCP ZenML adalah melalui halaman Pengaturan MCP di dashboard ZenML Anda.

MCP Settings Page

Navigasikan ke Pengaturan → MCP di dashboard ZenML Anda untuk mendapatkan:

  • Cuplikan yang telah dikonfigurasi untuk URL server dan kredensial spesifik Anda
  • Instalasi satu klik melalui deep link untuk IDE yang didukung
  • Konfigurasi salin-tempel untuk VS Code, Claude Desktop, Cursor, Claude Code, OpenAI Codex, dan lainnya
  • Opsi Docker dan uv berdasarkan preferensi Anda

Pengguna ZenML Pro

Halaman Pengaturan MCP memungkinkan Anda membuat Personal Access Token (PAT) dengan satu klik. Token secara otomatis disertakan dalam semua cuplikan konfigurasi yang dihasilkan.

Pengguna ZenML OSS

  1. Pertama buat token akun layanan melalui Pengaturan → Akun Layanan
  2. Tempel token ke halaman Pengaturan MCP
  3. Salin konfigurasi yang dihasilkan untuk IDE Anda

Lebih suka pengaturan manual? Lihat instruksi terperinci di bawah.

App MCP (Eksperimental)

Apa itu App MCP? App MCP adalah UI HTML interaktif yang dapat disajikan server MCP langsung ke klien AI. Mereka dirender dalam iframe sandbox dan dapat memanggil alat server secara dua arah. Lihat pengumuman resmi untuk detail lengkap.

Run Activity Chart

Server ini menyertakan dua App MCP eksperimental:

AppAlatDeskripsi
Dashboard Jalankan Pipelineopen_pipeline_run_dashboardTabel interaktif jalankan pipeline terbaru dengan status, detail langkah, dan log
Bagan Aktivitas Jalankanopen_run_activity_chartBagan batang aktivitas jalankan pipeline selama 30 hari terakhir dengan rincian status

Pipeline Runs Dashboard

App ini disertakan sebagai contoh bukti konsep. Kami menyambut umpan balik dan kontribusi untuk App MCP lainnya. Ini masih hari-hari awal untuk fitur baru ini, jadi kami harus melihat bagaimana perkembangannya. Kami berharap untuk mendukungnya lebih penuh di masa depan.

Klien yang Didukung

App MCP memerlukan transport Streamable HTTP (bukan stdio). Klien berikut saat ini mendukung App MCP:

  • ✅ VS Code (Edisi Insiders)
  • ✅ Goose
  • ✅ ChatGPT (segera diluncurkan)
  • ⚠️ Claude Desktop -- per akhir Januari 2026, belum merender App.
  • ⚠️ Claude.ai (web) — per akhir Januari 2026, belum merender App.

Catatan: Kami tidak dapat menguji secara menyeluruh dengan Claude Desktop atau Claude.ai pada saat penulisan. Jika Anda mengalami masalah, silakan laporkan.

Menjalankan App MCP dengan Docker

App MCP menggunakan Streamable HTTP. Jaga port kontainer terikat ke loopback dan letakkan reverse proxy terautentikasi atau layanan akses sadar identitas di depannya sebelum mengizinkan akses jarak jauh. Validasi Host dan Origin melindungi terhadap DNS rebinding; mereka tidak mengautentikasi pemanggil.

1. Bangun dan jalankan kontainer Docker:

docker build -t mcp-zenml:apps .

docker run --rm -d --name mcp-zenml-apps -p 127.0.0.1:8001:8001 \
  -e ZENML_STORE_URL="https://your-zenml-server.example.com" \
  -e ZENML_STORE_API_KEY="your-api-key" \
  -e ZENML_MCP_PROFILE="compact" \
  -e ZENML_MCP_WRITE_POLICY="read_write" \
  -e ZENML_ACTIVE_PROJECT_ID="your-project-id" \
  mcp-zenml:apps --transport streamable-http --host 0.0.0.0 --port 8001 \
  --disable-dns-rebinding-protection

2. Konfigurasikan akses jarak jauh terautentikasi: Buat Cloudflare Tunnel bernama, Tailscale Funnel dengan kontrol akses, atau reverse proxy terautentikasi yang setara. Arahkan origin privatnya ke http://127.0.0.1:8001, wajibkan identitas atau kredensial layanan untuk hostname publik, dan teruskan hanya permintaan terautentikasi ke origin. Konfigurasikan klien MCP Anda untuk menggunakan alur OAuth yang didukung penyedia atau header otorisasi.

Sebelum menambahkan kredensial ZenML ke kontainer, verifikasi bahwa permintaan tidak terautentikasi tidak dapat mencapai MCP:

curl -i https://mcp.example.com/mcp

Responsnya harus berupa 401, 403, atau pengalihan login dari penyedia akses. Respons JSON-RPC atau MCP berarti perimeter terbuka dan harus diperbaiki terlebih dahulu.

3. Hubungkan klien terautentikasi Anda:

{
	"servers": {
		"ZenML": {
			"url": "https://mcp.example.com/mcp",
			"type": "http"
		}
	},
	"inputs": []
}
  • Minta AI untuk "membuka dasbor pipeline runs" atau "menampilkan bagan aktivitas run"

Catatan penting:

  • ZENML_ACTIVE_PROJECT_ID wajib — tanpanya, alat pipeline run akan gagal dengan "Tidak ada proyek yang saat ini disetel sebagai aktif"
  • --disable-dns-rebinding-protection hanya sesuai ketika proxy terautentikasi memvalidasi host publik dan port kontainer tetap loopback-only
  • Batasi kunci API ZenML pada izin yang dibutuhkan klien MCP; gunakan ZENML_MCP_WRITE_POLICY=read_only untuk klien yang hanya inspeksi

Pengujian & Jaminan Kualitas

Proyek ini mencakup pengujian otomatis untuk memastikan server MCP tetap berfungsi:

  • 🔄 Uji Asap Otomatis: Uji asap komprehensif berjalan setiap 3 hari melalui GitHub Actions
  • 🚨 Pembuatan Masalah: Pengujian yang gagal secara otomatis membuat masalah GitHub dengan informasi debugging terperinci
  • ⚡ CI Cepat: Menggunakan UV dengan caching untuk instalasi dependensi dan pengujian yang cepat
  • 🧪 Pengujian Manual: Anda dapat menjalankan uji asap secara lokal menggunakan uv run scripts/test_mcp_server.py server/zenml_server.py

Pengujian otomatis memverifikasi:

  • Koneksi dan jabat tangan protokol MCP
  • Inisialisasi server dan penemuan alat
  • Fungsionalitas alat dasar (saat server ZenML dapat diakses)
  • Enumerasi sumber daya dan prompt
  • diagnose_zenml_setup mengembalikan diagnostik terstruktur bahkan di lingkungan yang dibatasi

CI tanpa kredensial mencakup setiap adaptor melalui protokol MCP. CI PR dan rilis juga memulai server OSS ZenML 0.97.0 baru di alamat loopback dan menjalankan CRUD yang dipertahankan serta resep isolasi proyek dengan nama yang sama. Server menggunakan konfigurasi sementara dan database yang dihapus saat pekerjaan keluar; tidak ada lingkungan repositori, runner yang dihosting sendiri, atau kredensial ZenML yang diperlukan.

Server OSS lokal ZenML menonaktifkan autentikasi dan penyimpanan SQL-nya tidak mendukung replay pipeline atau infrastruktur deployment eksternal. Akses terbatas dan pemicu yang diaktifkan fitur, replay, deployment, kondisi tunggu, dan resep permintaan sumber daya tetap menjadi gerbang opt-in terpisah. Mereka memerlukan ZENML_MCP_RESTRICTED_INTEGRATION=1 dengan ZENML_MCP_RESTRICTED_API_KEY, atau ZENML_MCP_ACTION_INTEGRATION=1 dengan UUID fixture sekali pakai yang tepat di ZENML_MCP_ACTION_FIXTURE, masing-masing. Lewati yang digerbang bukan bukti bahwa kemampuan tersebut lulus. Operator dapat menyetel ZENML_MCP_REQUIRE_COMPLETE_INTEGRATION=1 untuk mengubah gerbang opt-in yang hilang menjadi kegagalan. Penyediaan infrastruktur cloud tidak pernah menjadi bagian dari jalur pengujian default.

Debugging dengan MCP Inspector

Untuk debugging interaktif, gunakan MCP Inspector — alat berbasis web yang memungkinkan Anda menguji alat MCP secara real-time:

# Using .env.local (recommended for development)
cp .env.local.example .env.local  # Then edit with your credentials
source .env.local && npx @modelcontextprotocol/inspector \
  -e ZENML_STORE_URL=$ZENML_STORE_URL \
  -e ZENML_STORE_API_KEY=$ZENML_STORE_API_KEY \
  -- uv run server/zenml_server.py

Ini membuka UI web dengan kredensial Anda terisi sebelumnya — cukup klik Connect dan gunakan tab Tools untuk menguji alat apa pun secara interaktif.

Lihat CLAUDE.md untuk instruksi debugging yang lebih terperinci.

Privasi & Analitik

Server MCP ZenML mengumpulkan analitik penggunaan anonim untuk membantu kami meningkatkan produk.

Kami melacak:

  • Alat mana yang digunakan dan seberapa sering
  • Tingkat dan jenis kesalahan (hanya jenis kesalahan, bukan pesan)
  • Info lingkungan dasar (OS, versi Python, dan apakah berjalan di Docker/CI)
  • Durasi sesi dan pola penggunaan alat

Kami TIDAK mengumpulkan:

  • URL server ZenML atau kunci API Anda
  • Nama pipeline, nama model, atau data bisnis apa pun
  • Pesan kesalahan atau jejak tumpukan
  • Informasi identitas pribadi apa pun

Untuk menonaktifkan analitik:

# Option 1
export ZENML_MCP_ANALYTICS_ENABLED=false

# Option 2
export ZENML_MCP_DISABLE_ANALYTICS=true

Untuk debugging/pengujian (mencatat peristiwa ke stderr alih-alih mengirim):

export ZENML_MCP_ANALYTICS_DEV=true

Untuk pengguna Docker: Anda dapat menyetel ZENML_MCP_ANALYTICS_ID (harus UUID yang valid) untuk mempertahankan ID anonim yang konsisten di seluruh restart kontainer. Jika Anda tidak menyetelnya dan sistem file kontainer tidak dapat menyimpan file ID analitik, server akan kembali ke UUID anonim deterministik yang berasal dari hash ZENML_STORE_URL (URL itu sendiri tidak pernah dikirim sebagai properti peristiwa).

Opsi analitik tambahan:

  • ZENML_MCP_ANALYTICS_SHUTDOWN_TIMEOUT_S — waktu maksimum (detik) untuk mengirim analitik secara sinkron selama shutdown (default: 1.0)

Catatan tentang pelacakan shutdown: Peristiwa shutdown dikirim secara sinkron dengan batas waktu terikat untuk keandalan pengiriman terbaik. Namun, jika kontainer dimatikan dengan SIGKILL (misalnya, docker kill), penangan shutdown tidak dapat dijalankan — ini adalah keterbatasan Docker/OS, bukan bug.

Validasi Startup

Anda dapat mengaktifkan pemeriksaan diagnostik startup yang ringan:

# Print warnings but start normally
uv run server/zenml_server.py --startup-validation warn

# Exit non-zero if required setup is missing (useful in Docker/CI)
uv run server/zenml_server.py --startup-validation strict

Anda juga dapat menyetel ini melalui variabel lingkungan: ZENML_MCP_STARTUP_VALIDATION=warn.

Alat diagnose_zenml_setup juga tersedia sebagai alat MCP untuk pemecahan masalah runtime — alat ini berfungsi bahkan ketika SDK ZenML tidak diinstal atau variabel lingkungan hilang.

Pengaturan Manual

Prasyarat

Anda perlu memiliki akses ke server ZenML yang diterapkan. Jika Anda tidak memilikinya, Anda dapat mendaftar uji coba gratis di ZenML Pro dan kami akan mengelola deployment untuk Anda.

Tip: Setelah Anda memiliki server ZenML, periksa halaman Pengaturan MCP di dasbor Anda untuk pengalaman pengaturan termudah.

Kompatibilitas: Versi saat ini diuji terhadap ZenML 0.97.0. Jika Anda menjalankan versi ZenML yang lebih lama, gunakan rilis sebelumnya dari server MCP ini.

Anda juga (mungkin) perlu menginstal uv secara lokal. Untuk informasi lebih lanjut, lihat dokumentasi uv. Kami merekomendasikan instalasi melalui skrip penginstal mereka atau melalui brew jika menggunakan Mac. (Secara teknis Anda tidak perlu menginstalnya, tetapi ini membuat instalasi dan pengaturan menjadi mudah.)

Anda juga perlu mengkloning repositori ini di suatu tempat secara lokal:

git clone https://github.com/zenml-io/mcp-zenml.git

File konfigurasi MCP Anda

File konfigurasi MCP adalah file JSON yang memberi tahu klien MCP cara terhubung ke server MCP Anda. Klien MCP yang berbeda akan menggunakan atau menentukan ini secara berbeda. Dua klien MCP yang umum digunakan adalah Claude Desktop dan Cursor, yang kami sediakan instruksi instalasinya di bawah.

Anda perlu menentukan server MCP ZenML Anda dalam format berikut:

{
    "mcpServers": {
        "zenml": {
            "command": "/usr/local/bin/uv",
            "args": ["run", "path/to/server/zenml_server.py"],
            "env": {
                "LOGLEVEL": "WARNING",
                "NO_COLOR": "1",
                "ZENML_LOGGING_COLORS_DISABLED": "true",
                "ZENML_LOGGING_VERBOSITY": "WARN",
                "ZENML_ENABLE_RICH_TRACEBACK": "false",
                "ZENML_MCP_PROFILE": "compact",
                "ZENML_MCP_WRITE_POLICY": "read_write",
                "PYTHONUNBUFFERED": "1",
                "PYTHONIOENCODING": "UTF-8",
                "ZENML_STORE_URL": "https://your-zenml-server-goes-here.com",
                "ZENML_STORE_API_KEY": "your-api-key-here"
            }
        }
    }
}

Ada empat nilai dummy yang perlu Anda ganti:

  • jalur ke uv yang diinstal secara lokal (jalur yang tercantum di atas adalah tempatnya di Mac jika Anda menginstalnya melalui brew)
  • jalur ke file zenml_server.py (ini adalah file yang akan dijalankan saat Anda terhubung ke server MCP). File ini terletak di dalam repositori ini di root. Anda perlu menentukan jalur lengkap yang tepat ke file ini.
  • URL server ZenML (ini adalah URL server ZenML Anda. Anda dapat menemukannya di UI Cloud ZenML). Ini akan terlihat seperti https://d534d987a-zenml.cloudinfra.zenml.io.
  • kunci API server ZenML (ini adalah kunci API untuk server ZenML Anda. Anda dapat menemukannya di UI Cloud ZenML atau baca dokumentasi ini tentang cara membuatnya. Untuk tujuan server MCP ZenML, kami merekomendasikan menggunakan akun layanan.)

Anda bebas mengubah cara menjalankan file Python server MCP, tetapi menggunakan uv mungkin akan menjadi opsi termudah karena menangani lingkungan dan instalasi dependensi untuk Anda.

Instalasi untuk digunakan dengan Claude Desktop

Alternatif cepat: Gunakan halaman Pengaturan MCP di dasbor ZenML Anda (Pengaturan → MCP) untuk mendapatkan instruksi instalasi yang telah dikonfigurasi sebelumnya dan tautan dalam untuk Claude Desktop.

Anda perlu menginstal versi terbaru Claude Desktop.

Anda cukup membuka menu Pengaturan dan menyeret file mcp-zenml.mcpb dari root repositori ini ke menu dan itu akan memandu Anda melalui proses instalasi dan pengaturan. Anda perlu menambahkan URL server ZenML dan kunci API Anda.

Catatan: Bundel MCP (.mcpb) menggantikan format Ekstensi Desktop lama (.dxt); file .dxt yang ada masih berfungsi di Claude Desktop.

Opsional: Meningkatkan Tampilan Output Alat ZenML

Untuk pengalaman yang lebih baik dengan hasil alat ZenML, Anda dapat mengonfigurasi Claude untuk menampilkan respons JSON dalam format yang lebih mudah dibaca. Di Claude Desktop, buka Pengaturan → Profil, dan di bagian "Preferensi pribadi apa yang harus dipertimbangkan Claude dalam respons?" tambahkan sesuatu seperti berikut (atau gunakan kata-kata persis ini!):

When using zenml tools which return JSON strings and you're asked a question, you might want to consider using markdown tables to summarize the results or make them easier to view!

Ini akan mendorong Claude untuk memformat output alat ZenML sebagai tabel markdown, membuat informasi lebih mudah dibaca dan dipahami.

Instalasi untuk digunakan dengan Cursor

Alternatif cepat: Halaman Pengaturan MCP di dasbor ZenML Anda (Pengaturan → MCP) dapat menghasilkan konten mcp.json yang tepat dengan kredensial Anda terisi sebelumnya.

Anda perlu menginstal Cursor.

Cursor bekerja sedikit berbeda dari Claude Desktop karena Anda menentukan file konfigurasi berdasarkan per-repositori. Ini berarti jika Anda ingin menggunakan server MCP ZenML di beberapa repositori, Anda perlu menentukan file konfigurasi di masing-masing repositori tersebut.

Untuk mengaturnya untuk satu repositori, Anda perlu:

  • buat folder .cursor di root repositori Anda
  • di dalamnya, buat file mcp.json dengan konten di atas
  • buka pengaturan Cursor Anda dan klik server ZenML untuk 'mengaktifkannya'.

Dalam pengalaman kami, terkadang ini menunjukkan indikator kesalahan merah meskipun berfungsi. Anda dapat mencobanya dengan mengobrol di jendela obrolan Cursor. Ini akan memberi tahu Anda apakah dapat mengakses alat ZenML atau tidak.

Gambar Docker

Anda dapat menjalankan server sebagai kontainer Docker. Proses berkomunikasi melalui stdio, sehingga akan menunggu koneksi klien MCP. Teruskan kredensial ZenML Anda melalui variabel lingkungan.

Gambar Pra-bangun (Docker Hub)

Tarik gambar multi-arsitektur terbaru:

docker pull zenmldocker/mcp-zenml:latest

Rilis berversi ditandai sebagai X.Y.Z:

docker pull zenmldocker/mcp-zenml:2.0.0

Jalankan dengan kredensial ZenML Anda (mode stdio):

docker run -i --rm \
  -e ZENML_STORE_URL="https://your-zenml-server.example.com" \
  -e ZENML_STORE_API_KEY="your-api-key" \
  zenmldocker/mcp-zenml:latest

Konfigurasi MCP kanonik menggunakan Docker

{
  "mcpServers": {
    "zenml": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "ZENML_STORE_URL=https://...",
        "-e", "ZENML_STORE_API_KEY=ZENKEY_...",
        "-e", "ZENML_ACTIVE_PROJECT_ID=...",
        "-e", "ZENML_MCP_PROFILE=compact",
        "-e", "ZENML_MCP_WRITE_POLICY=read_write",
        "-e", "LOGLEVEL=WARNING",
        "-e", "NO_COLOR=1",
        "-e", "ZENML_LOGGING_COLORS_DISABLED=true",
        "-e", "ZENML_LOGGING_VERBOSITY=WARN",
        "-e", "ZENML_ENABLE_RICH_TRACEBACK=false",
        "-e", "PYTHONUNBUFFERED=1",
        "-e", "PYTHONIOENCODING=UTF-8",
        "zenmldocker/mcp-zenml:latest"
      ]
    }
  }
}

Bangun Secara Lokal

Dari root repositori:

docker build -t zenmldocker/mcp-zenml:local .

Jalankan gambar yang dibangun secara lokal:

docker run -i --rm \
  -e ZENML_STORE_URL="https://your-zenml-server.example.com" \
  -e ZENML_STORE_API_KEY="your-api-key" \
  zenmldocker/mcp-zenml:local

Bundel MCP (.mcpb)

Proyek ini menggunakan Bundel MCP (.mcpb) — penerus Ekstensi Desktop Anthropic (DXT). Bundel MCP mengemas seluruh server MCP (termasuk dependensi) ke dalam satu file dengan konfigurasi yang ramah pengguna.

Catatan tentang penggantian nama: Bundel MCP menggantikan format .dxt yang lebih lama. Claude Desktop tetap kompatibel mundur dengan file .dxt yang ada, tetapi kami sekarang mengirimkan mcp-zenml.mcpb dan merekomendasikan penggunaannya ke depan.

File mcp-zenml.mcpb di root repositori menggunakan runtime UV MCPB 0.4. Host menginstal dependensi Python yang disematkan untuk sistem operasi saat ini, sehingga bundel yang sama berfungsi di macOS, Windows, dan Linux tanpa menyematkan ekstensi native khusus platform. Instalasi memerlukan akses jaringan pada pertama kali UV menyelesaikan lingkungan yang dibundel.

Pembangunan bundel menggunakan kembali mcpb-uv.lock yang dikomit dan menyelesaikan grafik dependensi Python-nya dalam mode offline. Daftar dependensi bundel berasal dari [project].dependencies di pyproject.toml. Setelah mengubah daftar itu, setel MCPB_REFRESH_LOCK=1 untuk menyelesaikan ulang secara online sambil mempertahankan setiap pin yang masih cocok; MCPB_REFRESH_LOCK=upgrade memindahkan setiap pin ke versi terbarunya.

Saat Anda menyeret dan menjatuhkan file .mcpb ke dalam pengaturan Claude Desktop, file tersebut secara otomatis menangani:

  • Instalasi dependensi runtime
  • Manajemen konfigurasi yang aman
  • Kompatibilitas lintas platform
  • Proses pengaturan yang ramah pengguna

Untuk informasi lebih lanjut, lihat pengumuman Anthropic tentang Ekstensi Desktop (DXT) dan panduan pengemasan bundel MCP terkait dalam dokumentasi mereka: https://www.anthropic.com/engineering/desktop-extensions

Dipublikasikan di Registry MCP Anthropic

Server MCP ini dipublikasikan ke Registry MCP resmi Anthropic dan dapat ditemukan oleh host yang kompatibel. Pada setiap rilis bertanda (tagged release), CI kami memperbarui entri registry melalui CLI mcp-publisher registry menggunakan GitHub OIDC, sehingga Anda dapat menginstal atau menemukan ZenML MCP Server secara langsung di mana pun registry didukung (misalnya, katalog Ekstensi Claude Desktop).

  • Selalu terbarui: entri registry diperbarui dengan setiap rilis dari manifest.json dan server.json dari commit yang ditandai.
  • Jalur instalasi alternatif: Anda masih dapat menginstal secara lokal melalui bundel .mcpb yang dikemas (lihat di atas) atau menjalankan image Docker.

Pelajari lebih lanjut tentang registry di sini: