Skip to main content
Glama
hadiproz

jupyter-vscode-mcp

by hadiproz

Jupyter VS Code MCP

License: MIT MCP

VS-Code-Erweiterung, die Jupyter-Notebook-Operationen als MCP-Tools über reines HTTP bereitstellt — eine portable URL für jeden KI-Coding-Agenten. Keine absoluten Pfade, kein node-Befehl, kein Stdio-Verdrahten.

Richten Sie einen beliebigen MCP-Client auf die URL, und der Agent kann Notebooks in Ihrer Live-Editor-Sitzung erkunden, bearbeiten, ausführen und debuggen: Er sieht dieselben Zellen wie Sie, spricht mit demselben Kernel, den Ihr Notebook verwendet (lokal oder remote — Colab eingeschlossen), und jede Aktion landet in der echten VS-Code-Oberfläche.

Features

Notebook-Bearbeitung mit stabilen Zellen-Handles

  • Jede Zelle wird durch ein einheitliches Schema identifiziert: #NB-xxxxxxxx, gespeichert in der Standard-nbformat-4.5-Zellen-ID. Sie übersteht Bearbeitungen, Einfügen/Löschen anderer Zellen, Indexverschiebungen, Speichern/erneutes Öffnen, Neuladen der Erweiterung — selbst das Kopieren der Datei auf einen anderen Rechner.

  • IDs werden nach einem Löschen nie wiederverwendet: Neue Zellen erhalten immer frische Zufalls-IDs. jupyter_get_summary weist jeder Zelle, der eine ID fehlt (z. B. manuell in der Oberfläche erstellt), eine ID zu, sodass jeder gemeldete Handle sofort wiederverwendbar ist.

  • Indizes sind überall 0-basiert (Zusammenfassung, Quellen, Ausführungsbereiche, Ausgaben) — keine gemischten Konventionen.

Nicht-blockierende Ausführungssteuerung

  • jupyter_run_cells startet die Ausführung und kehrt sofort zurück; fragen Sie mit jupyter_wait_until_idle ab oder machen Sie mit jupyter_get_status einen Schnappschuss. Keine blinden Sleeps, keine MCP-Timeouts bei langen Zellen.

  • Kernel-Bereitschaftsprüfung: Bei einem toten/nicht vorhandenen Kernel werden umsetzbare Hinweise zurückgegeben, anstatt das System zu blockieren.

  • jupyter_interrupt_kernel bricht den aktuellen Lauf ab und behält dabei alle Variablen.

Kernel-Intelligenz (Copilot-Qualität)

  • jupyter_get_variables — typbewusste Variablenberichte: DataFrame/Series als {shape, columns[:8], head(2)}, ndarray als {shape, dtype}, Container mit length, Skalare als kurze Repräsentationen. Verwendet bei Verfügbarkeit die offizielle Jupyter-Variablenansicht-API, andernfalls eine stille Kernel-Abfrage, die den Ausführungszähler nie berührt. Eine optionale Dokument-Symbolfilterung blendet internes Rauschen nur aus, wenn tatsächlich Symbole verfügbar sind.

  • jupyter_get_pip_packages — Umgebungsinventar (Name + Version) der aktiven Kernel-Umgebung.

  • jupyter_install_packages — pip läuft innerhalb des eigenen Interpreters des Kernels, sodass Pakete in der Laufzeitumgebung landen, die das Notebook tatsächlich verwendet — einschließlich entfernter VMs wie Colab, niemals auf dem lokalen Host. Unterstützt Versionsangaben und --upgrade, verifiziert anschließend, dass jede Angabe aufgelöst wird, und meldet ehrliche Fehlschläge (mit dem echten Ausgabeende von pip), statt Erfolg vorzutäuschen.

  • jupyter_get_status fragt den Live-Kernel nach der tatsächlichen Python-Version/Plattform ab, anstatt veralteten Metadaten zu vertrauen.

  • jupyter_select_kernel öffnet die native Kernel-Auswahl von VS Code, wenn kein Kernel aktiv ist.

Nur-Netzwerk-MCP-Transport

  • Streamable HTTP (MCP-Spezifikation 2025-11-25) mit einfachen JSON-Antworten — ein minimaler Client benötigt nichts weiter als curl.

  • Endpunkte: /mcp (plus Legacy /sse), GET /health für Lebendigkeits- und Versionsprüfung.

  • Mehrere gleichzeitige Agent-Sitzungen werden unterstützt; Sitzungen überstehen Portänderungen im laufenden Betrieb.

Ehrliche Berichterstattung

Fehler enthalten Kontext und Hinweise für die nächsten Schritte: fehlender Kernel → Anleitung zum Starten, veraltete ID → Aktualisierung über die Zusammenfassung, fehlgeschlagene pip-Installation → echtes pip-Fehlerende, belegter Kernel → expliziter Verschiebungshinweis statt stiller leerer Ergebnisse.

Related MCP server: Jupyter MCP Server

Tools

Tool

Beschreibung

jupyter_list_open_notebooks

Öffnet Notebooks mit URIs, Pfaden, Zellanzahl und Dirty-Flags

jupyter_get_summary

Kompakte Übersicht: stabile IDs, Typen, Ausführungsstatus, Ausgabe-MIME-Typen, Vorschauen

jupyter_get_cell_source

Quelltext einer Zelle per ID oder 0-basiertem Index; Zeilen-Paginierung

jupyter_edit_cell

Quelltext ersetzen; ID bleibt danach gülig

jupyter_insert_cell / jupyter_delete_cell

Struktur-Änderungen an 0-basierten Positionen; neue, nicht wiederverwendbare IDs

jupyter_save_notebook

.ipynb auf der Festplatte speichern

jupyter_create_notebook

Leeres .ipynb auf der Festplatte erstellen + im Editor öffnen

jupyter_run_cells

Nicht-blockierender Start: Indexbereich [stat,end) oder geordnete ID-Liste

jupyter_wait_until_idle

Pollt bis idle oder Timeout; liefert abgeschlossene Zellen + Erfolgsflags

jupyter_get_status

Sofort-Snapshot: kernelStatus, Live-Laufzeitinfos, laufende Zellen, Dirty-Zustand

jupyter_interrupt_kernel

Aktuelle Ausführung abbrechen, Variablen behalten

jupyter_restart_kernel

Vollständiger Neustart (löscht Variablen)

jupyter_get_outputs

Ausgaben inline (kur er Text) oder Arrefakdateien unter .jupyter-mcp/arifaks/

jupyter_get_variabes

Typbewuster Kernel-Variablenbericht

jupyter_get_pip_packages

Inventar der installierten Pakete der Kernel-Umgebung

jupyter_install_packages

Kernel seiige pip-Installation mit Versionsangaben + Verifizierung nach der Installtion

jupyter_select_kernel

Native Kernel-Auswahl öffnen und resulierenden Zusand melden

Stabile Zellen-IDs

Jede Zelle erhält eine zufällige persisente ID (#NB-xxxxxxxx), die in das Feld der Standard-nbformat-4.5-Zellen-ID geschrieben wird — denselben Speicherplatz, den die Platfform selbst lis und der Speichern/Laden unverändert überseht. Die ID is immun gegen Posiionsänderungen, Inhalsbearbeiungen, Einfügen/Löschen von Schweserzellen und erneuem Öffnen. Bevorzugen Sie IDs gegenüber Indizes; rufen Sie jupyter_get_summary auf, um sie zu ermielen (sie füllt auch fehlende IDs für Zellen auf, die außerhalb der Tools er sell wurden).

Eine reine 8-Hex-Eingabe (abcd1234) wird als Kurzform für #NB-abcd1234 akzepier.

Kompatible Agenen

Jeder MCP-Client, der HTTP sprich, funkionier. Häufige Konfiguraionen:

Claude Code, Cursor, Windsurf, Cline, Copilo:

{
  "mcpServers": {
    "jupyter-vscode-mcp": {
      "url": "http://localhost:9123/mcp"
    }
  }
}

OpenCode, Kilo Code:

{
  "mcp": {
    "jupyter-vscode-mcp": {
      "type": "remote",
      "url": "http://localhost:9123/mcp",
      "enabled": true
    }
  }
}

Führen Sie "Jupyter VS Code MCP: Show MCP Configuraion" über die Be fehlspalee aus → wählen Sie Ihren Agenen → Snipet wird in die Zwischenabage kopier.

Install & Run

Laden Sie die neuese .vsix von Releases heruner, dann:

code --install-extension jupyter-vscode-mcp-<version>.vsix
  1. Öffnen Sie eine beliebige .ipynb — der Server sarze automaisch auf 127.0.0.1:9123 (die Sausleise zeig den Zusand; zum Umschalen klicken).

  2. Fügen Sie Ihrem Agenen die obige URL-Konfiguraion hinzu.

  3. Prüfen Sie jederzei die Erreichbarkei: curl http://localhos:9123/health.

Einsellungen: jupyter-vscode-mcp.mcpPort (Standard 9123, wird im laufenden Betrieb angewendet), jupyter-vscode-mcp.autoStart (Standard true).

Empfohlener Workflow

jupyter_list_open_notebooks   → pick notebook
jupyter_get_summary           → stable #NB-* IDs, exec state        (0-based)
jupyter_get_cell_source       → read only what you need
jupyter_edit_cell             → IDs stay valid after edits
jupyter_run_cells             → starts async, returns immediately
jupyter_wait_until_idle       → blocks until done (or poll get_status)
jupyter_get_outputs           → inline short text, artifact files for big/binary
jupyter_get_variables         → inspect kernel state after runs

Architektur

AI agent ──HTTP/JSON-RPC──▶ VS Code extension (in-process http server :9123)
                                 │ vscode.* APIs + ms-toolsai.jupyter public API
                                 ▼
                     notebook cells, outputs, kernel status

Kernel-Interaktionen verwenden die dokumentierte öffentliche API ms-toolsai.jupyter (kernel.executeCode, Interrupt-/Neustart-Befehle, Variablen-/pip-Auflistungsbefehle) mit Befehls-Fallbacks; die Ausführungsverfolgung basiert auf workspace.onDidChangeNotebookDocument.

Entwicklung

npm install
npm run compile      # typecheck
npm run lint
npm run build        # esbuild bundle
npm run smoke        # local protocol smoke test (vscode stubbed)
npx @vscode/vsce package

Referenzen

Lizenz

MIT

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to interact with Jupyter notebooks via MCP tools for querying, modifying, executing, and setting up notebooks, with state preservation and real-time collaboration.
    4
    44
    Apache 2.0
  • A
    license
    B
    quality
    B
    maintenance
    An MCP server that connects directly to a Jupyter kernel via ZMQ, enabling AI assistants to read, create, edit, execute, and manage Jupyter Notebooks as MCP tools.
    9
    MIT

View all related MCP servers

Related MCP Connectors

  • MCP server exposing the Backtest360 engine API as tools for AI agents.

  • MCP server for secureFlows: token-free URL builders and integration-linting tools for AI agents.

  • Live browser debugging for AI assistants — DOM, console, network via MCP.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/hadiproz/jupyter-vscode-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server