Data Science Tools Python ★ 1,172

datalayer/jupyter-mcp-server

Jupyter için Model Context Protocol (MCP) Sunucusu.

Claude Desktop config.json'a ekle

{
  "mcpServers": {
    "datalayer-jupyter-mcp-server": {
      "command": "python",
      "args": [
        "-m",
        "jupyter_mcp_server"
      ]
    }
  }
}

Datalayer

Sponsor Olun

🪐🔧 Jupyter MCP Server

AI'nin Jupyter Notebook'larını gerçek zamanlı olarak bağlamak ve yönetmek için geliştirilmiş bir MCP sunucusu

Datalayer tarafından geliştirilmiştir

PyPI - Version Total PyPI downloads Docker Pulls License

Jupyter MCP Server Demo

[!IMPORTANT] v1.0.0'da kırılan değişiklik: MCP istemci kurulumunuzda MCP_TOKEN yapılandırmanız gerekir.

Kurulum ayrıntıları için: https://jupyter-mcp-server.datalayer.tech/providers/jupyter-streamable-http-standalone/#3-configure-your-mcp-client

v1.0.2'deki güncelleme: pycrdt artık desteklenmektedir, bu nedenle datalayer_pycrdt yüklemesi artık gerekli değildir.

[!NOTE] Geri Bildiriminize İhtiyacımız Var!

JupyterHub ve Google Colab dağıtımları için aktif olarak destek geliştiriyoruz. Jupyter MCP Server'ı bu platformlarla kullanıyorsanız veya kullanmayı planlıyorsanız, sizi duyduğumuz için sevineceğiz!

  • 🏢 JupyterHub kullanıcıları: Dağıtım kurulumunuzu ve gereksinimlerinizi paylaşın
  • 🌐 Google Colab kullanıcıları: Kullanım durumlarınızı ve iş akışlarınızı anlamamıza yardımcı olun

Topluluk sayfamızda konuşmaya katılın - geri bildiriminiz özellikleri önceliklendirmemize ve bu entegrasyonların ihtiyaçlarınız için sorunsuz bir şekilde çalışmasını sağlamaya yardımcı olacaktır.

📖 İçindekiler

🚀 Temel Özellikler

  • Gerçek zamanlı kontrol: Notebook değişikliklerini anında görüntüleyin.
  • 🔁 Akıllı yürütme: Hücre çıktısı geri bildirimi sayesinde çalıştırma başarısız olduğunda otomatik olarak ayarlanır.
  • 🧠 Bağlama farkında: Daha ilgili etkileşimler için tüm notebook bağlamını anlar.
  • 📊 Çoklu mod desteği: Görüntüler, grafikler ve metin dahil olmak üzere farklı çıktı türlerini destekler.
  • 📚 Çok notebook desteği: Birden fazla notebook arasında sorunsuz geçiş yapın.
  • 🎨 JupyterLab entegrasyonu: Otomatik notebook açma gibi geliştirilmiş UI entegrasyonu.
  • 🤝 MCP uyumlu: Claude Desktop, Cursor, Windsurf ve daha fazlası gibi herhangi bir MCP istemcisiyle çalışır.
  • 🔍 Gözlemlenebilirlik: Araç çağrılarını ve kernel yürütmelerini izlemek için OpenTelemetry entegrasyonu olan yerleşik hook sistemi.

Herhangi bir Jupyter dağıtımı (yerel, JupyterHub, ...) ve Datalayer barındırılan Notebook'larla uyumludur.

🔧 MCP Genel Bakış

🔧 Araçlar Genel Bakışı

Sunucu, Jupyter notebook'larıyla etkileşim kurmak için aşağıdaki şekilde kategorize edilen zengin bir araç seti sağlar. Her araç, parametreleri ve dönüş değerleri hakkında daha fazla bilgi için lütfen resmi Araçlar belgelerine bakın.

Sunucu Yönetimi Araçları

Ad Açıklama
list_files Jupyter sunucusunun dosya sistemindeki dosyaları ve dizinleri listeleyin.
list_kernels Jupyter sunucusundaki tüm kullanılabilir ve çalışan kernel oturumlarını listeleyin.
connect_to_jupyter MCP sunucusunu yeniden başlatmadan bir Jupyter sunucusuna dinamik olarak bağlanın. Jupyter uzantısı olarak çalışırken mevcut değildir. Sunucuları dinamik olarak değiştirmek veya sabit kodlanmış yapılandırmayı önlemek için kullanışlıdır. Daha fazla bilgi

Çok-Notebook Yönetimi Araçları

Ad Açıklama
use_notebook Bir notebook dosyasına bağlanın, yeni bir tane oluşturun veya notebook'lar arasında geçiş yapın.
list_notebooks Jupyter sunucusundaki tüm kullanılabilir notebook'ları ve durumlarını listeleyin
restart_notebook Belirli bir yönetilen notebook için kernel'i yeniden başlatın.
unuse_notebook Belirli bir notebook'tan bağlantıyı kesin ve kaynaklarını serbest bırakın.
read_notebook Notebook hücrelerinin kaynak içeriğini kısa veya ayrıntılı format seçenekleriyle okuyun.

Hücre İşlemleri ve Yürütme Araçları

Ad Açıklama
read_cell Tek bir hücrenin tam içeriğini (Meta veri, Kaynak ve Çıktılar) okuyun.
insert_cell Belirtilen konuma yeni bir kod veya markdown hücresi ekleyin.
delete_cell Belirtilen indeksteki bir hücreyi silin.
move_cell Bir hücreyi notebook içinde bir konumdan diğerine taşıyın.
overwrite_cell_source Mevcut bir hücrenin kaynak kodunu üzerine yazın.
edit_cell_source Tam yeniden yazma olmaksızın bir hücrenin kaynağına cerrahi bul ve değiştir düzenlemeleri uygulayın.
execute_cell Zaman aşımı ile bir hücreyi yürütün, görüntüler dahil çoklu mod çıktısını destekler.
insert_execute_code_cell Yeni bir kod hücresi ekleyin ve tek adımda yürütün.
execute_code Kernel'de doğrudan kod yürütün, magic komutları ve shell komutlarını destekler.

JupyterLab Entegrasyonu

Yalnızca JupyterLab modu etkinleştirildiğinde kullanılabilir. Varsayılan olarak etkindir.

JupyterLab modunda çalışırken, Jupyter MCP Server, ek JupyterLab komutlarını MCP araçları olarak göstermek için jupyter-mcp-tools ile entegre olur. Varsayılan olarak, aşağıdaki araçlar etkindir:

Ad Açıklama
notebook_run-all-cells Geçerli notebook'taki tüm hücreleri sırayla yürütün
notebook_get-selected-cell Şu anda seçili hücre hakkında bilgi alın
📚 Ek araçları nasıl özelleştireceğinizi öğrenin

Artık allowed_jupyter_mcp_tools yapılandırma parametresini kullanarak jupyter-mcp-tools'tan hangi araçların kullanılabilir olduğunu özelleştirebilirsiniz. Bu, ek notebook işlemleri, konsol komutları, dosya yönetimi araçları ve daha fazlasını etkinleştirmenizi sağlar.

# Örnek: Komut satırı aracılığıyla ek araçları etkinleştirin
jupyter lab --port 4040 --IdentityProvider.token MY_TOKEN --JupyterMCPServerExtensionApp.allowed_jupyter_mcp_tools="notebook_run-all-cells,notebook_get-selected-cell,notebook_append-execute,console_create"

Kullanılabilir araçların tam listesi ve ayrıntılı yapılandırma talimatları için lütfen Ek Araçlar belgelerine bakın.

📝 İstem Genel Bakışı

Sunucu, MCP'nin istem özelliğini de destekler ve kullanıcıların Jupyter notebook'larıyla etkileşim kurması için kolay bir yol sağlar.

Ad Açıklama
jupyter-cite Belirtilen notebook'tan belirli hücreleri alıntı yapın (Coding IDE veya CLI'da @ gibi)

Her istem, giriş parametreleri ve dönüş içeriği hakkında daha fazla bilgi için lütfen resmi İstem belgelerine bakın.

🏁 Başlangıç

Streamable HTTP taşıması, Jupyter Server uzantısı olarak çalıştırma ve gelişmiş yapılandırma dahil olmak üzere kapsamlı kurulum talimatları için belgelerimizi kontrol edin. Ya da JupyterLab ve STDIO taşıması ile burada hızlı bir şekilde başlayın.

1. Ortamınızı Kurun

pip install jupyterlab==4.4.1 jupyter-collaboration==4.0.2 jupyter-mcp-tools>=0.1.4 ipykernel pycrdt

[!TIP] Ortamınızın doğru şekilde yapılandırıldığını doğrulamak için:

  1. JupyterLab'de bir notebook açın
  2. Herhangi bir hücreye (kod veya markdown) bir miktar içerik yazın
  3. Sekme göstergesini gözlemleyin: notebook adının yanında bir "×" görünmelidir; bu kaydedilmemiş değişiklikleri gösterir
  4. Birkaç saniye bekleyin—"×", manuel olarak kaydetmeden otomatik olarak "●" olarak değişmelidir

Bu otomatik kaydetme davranışı, gerçek zamanlı işbirliği özelliklerinin düzgün çalıştığını doğrular; bu, MCP sunucusu entegrasyonu için gereklidir.

2. JupyterLab'i Başlatın

# JupyterLab'i 8888 portunda başlatın, herhangi bir IP'den erişime izin verin ve bir token ayarlayın
jupyter lab --port 8888 --IdentityProvider.token MY_TOKEN --ip 0.0.0.0

[!NOTE] Yukarıdaki JupyterLab yerine JupyterHub aracılığıyla notebook'ları çalıştırıyorsanız, JupyterHub kurulum kılavuzumuza başvurun.

3. Tercih Ettiğiniz MCP İstemcisini Yapılandırın

Daha sonra, MCP istemcinizi sunucuya bağlanacak şekilde yapılandırın. İhtiyaçlarınıza en uygun olanı seçmek için iki ana yöntem sunuyoruz:

  • 📦 uvx Kullanarak (Hızlı Başlangıç için Önerilir): uv kullanan hafif ve hızlı bir yöntem. Yerel geliştirme ve ilk kez kullanıcılar için idealdir.
  • 🐳 Docker Kullanarak (Üretim için Önerilir): Tutarlı ve izole bir ortamı sağlayan konteynerleştirilmiş bir yaklaşım; üretim veya karmaşık kurulumlar için mükemmeldir.
📦 uvx Kullanarak (Hızlı Başlangıç)

Önce uv yükleyin:

pip install uv
uv --version
# 0.6.14 veya daha yüksek olmalıdır

uv yüklemesi hakkında daha fazla ayrıntıya bakın.

Sonra, istemcinizi yapılandırın:

{
  "mcpServers": {
    "jupyter": {
      "command": "uvx",
      "args": ["jupyter-mcp-server@latest"],
      "env": {
        "JUPYTER_URL": "http://localhost:8888",
        "JUPYTER_TOKEN": "MY_TOKEN",
        "ALLOW_IMG_OUTPUT": "true"
      }
    }
  }
}
🐳 Docker Kullanarak (Üretim)

macOS ve Windows'ta:

{
  "mcpServers": {
    "jupyter": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "JUPYTER_URL",
        "-e", "JUPYTER_TOKEN",
        "-e", "ALLOW_IMG_OUTPUT",
        "datalayer/jupyter-mcp-server:latest"
      ],
      "env": {
        "JUPYTER_URL": "http://host.docker.internal:8888",
        "JUPYTER_TOKEN": "MY_TOKEN",
        "ALLOW_IMG_OUTPUT": "true"
      }
    }
  }
}

Linux'ta:

{
  "mcpServers": {
    "jupyter": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "JUPYTER_URL",
        "-e", "JUPYTER_TOKEN",
        "-e", "ALLOW_IMG_OUTPUT",
        "--network=host",
        "datalayer/jupyter-mcp-server:latest"
      ],
      "env": {
        "JUPYTER_URL": "http://localhost:8888",
        "JUPYTER_TOKEN": "MY_TOKEN",
        "ALLOW_IMG_OUTPUT": "true"
      }
    }
  }
}

[!TIP]

  1. Port Yapılandırması: Jupyter URL'lerinizde port'un jupyter lab komutunda kullanılan ile eşleştiğinden emin olun. Basitleştirilmiş yapılandırma için bunu JUPYTER_URL'de ayarlayın.
  2. Sunucu Ayrımı: Her iki hizmet de aynı sunucudayken JUPYTER_URL kullanın, gelişmiş dağıtımlar için bireysel değişkenleri ayarlayın. Farklı URL değişkenleri, bazı dağıtımlar notebook depolamayı (DOCUMENT_URL) kernel yürütmesinden (RUNTIME_URL) ayırdığı için mevcuttur.
  3. Kimlik Doğrulama: Çoğu durumda belge ve çalışma zamanı hizmetleri aynı kimlik doğrulama belirtecini kullanır. Basitleştirilmiş yapılandırma için JUPYTER_TOKEN kullanın veya farklı kimlik bilgileri için DOCUMENT_TOKEN ve RUNTIME_TOKEN'ı bireysel olarak ayarlayın.
  4. Notebook Yolu: DOCUMENT_ID parametresi, MCP istemcisinin varsayılan olarak bağlanacağı notebook'a giden yolu belirtir. JupyterLab'in başlatıldığı dizine göre göreli olmalıdır. DOCUMENT_ID'yi atlarsanız, MCP istemcisi Jupyter sunucusundaki tüm kullanılabilir notebook'ları otomatik olarak listeleyebilir ve istemeriniz aracılığıyla etkileşimli olarak birini seçmenize izin verir.
  5. Görüntü Çıktısı: LLM'niz çoklu mod desteği desteklemiyorsa ALLOW_IMG_OUTPUT'u false olarak ayarlayın.

Çeşitli MCP istemcilerini yapılandırma hakkında ayrıntılı talimatlar için—Claude Desktop, VS Code, Cursor, Cline ve Windsurf dahil—İstemciler belgelerine bakın.

✅ En İyi Uygulamalar

  • Gelişmiş çoklu mod anlayışı yeteneklerinden tam olarak yararlanmak için çoklu mod girişini destekleyen LLM'lerle (Gemini 2.5 Pro gibi) etkileşim kurun.
  • Görüntü verilerini döndürebilen ve ayrıştırabilen bir MCP istemcisi kullanın (Cursor, Gemini CLI, vb.), çünkü bazı istemciler bu özelliği desteklemeyebilir.
  • Karmaşık görevleri (tüm veri bilimi iş akışı gibi) birden fazla alt göreve (veri temizleme, özellik mühendisliği, model eğitimi, model değerlendirmesi, vb.) bölün ve bunları adım adım yürütün.
  • Net yapılandırılmış istekler ve kurallar sağlayın (👉 Başlamak için İstem Şablonlarımızı ziyaret edin)
  • Mümkün olduğunca çok bağlam sağlayın (halihazırda yüklü paketler, mevcut veri setleri için alan açıklamaları, geçerli çalışma dizini, ayrıntılı görev gereksinimleri, vb.).

🤝 Katkıda Bulunma

Her türlü katkıyı memnuniyetle karşılarız! İşte bazı örnekler:

  • 🐛 Hata düzeltmeleri
  • 📝 Mevcut özelliklerdeki iyileştirmeler
  • 🔧 Yeni özellik geliştirme
  • 📚 Belgelendirme iyileştirmeleri ve istem şablonları

Geliştirmeye nasıl başlayacağınız ve katkılarınızı nasıl sunacağınız hakkında ayrıntılı talimatlar için lütfen Katkı Kılavuzumuza bakın.

Katkıcılarımız

Contributors

📚 Kaynaklar

Jupyter MCP Server hakkında blog yazıları, videolar veya diğer materyalleri mi arıyorsunuz?

👉 Daha fazla bilgi için belgelerimizde Kaynaklar bölümünü ziyaret edin!

Star History Chart


Bu proje sizin için yararlı ise, lütfen bize bir ⭐️ verin

Datalayer tarafından ❤️ ile yapılmıştır

Barındırılan dağıtım

Barındırılan bir dağıtım Fronteir AI'da mevcuttur.

Benzer MCP sunucuları

Daha fazla: Data Science Tools →