jupyter-vscode-mcp
Jupyter VS Code 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_summaryweist 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_cellsstartet die Ausführung und kehrt sofort zurück; fragen Sie mitjupyter_wait_until_idleab oder machen Sie mitjupyter_get_statuseinen 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_kernelbricht 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 mitlength, 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_statusfragt 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 /healthfü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 | |
| Öffnet Notebooks mit URIs, Pfaden, Zellanzahl und Dirty-Flags | |
| Kompakte Übersicht: stabile IDs, Typen, Ausführungsstatus, Ausgabe-MIME-Typen, Vorschauen | |
| Quelltext einer Zelle per ID oder 0-basiertem Index; Zeilen-Paginierung | |
| Quelltext ersetzen; ID bleibt danach gülig | |
| Struktur-Änderungen an 0-basierten Positionen; neue, nicht wiederverwendbare IDs | |
|
| |
| Leeres | |
| Nicht-blockierender Start: Indexbereich | |
| Pollt bis idle oder Timeout; liefert abgeschlossene Zellen + Erfolgsflags | |
| Sofort-Snapshot: kernelStatus, Live-Laufzeitinfos, laufende Zellen, Dirty-Zustand | |
| Aktuelle Ausführung abbrechen, Variablen behalten | |
| Vollständiger Neustart (löscht Variablen) | |
| Ausgaben inline (kur er Text) oder Arrefakdateien unter | |
| Typbewuster Kernel-Variablenbericht | |
| Inventar der installierten Pakete der Kernel-Umgebung | |
| Kernel seiige pip-Installation mit Versionsangaben + Verifizierung nach der Installtion | |
| 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Öffnen Sie eine beliebige
.ipynb— der Server sarze automaisch auf127.0.0.1:9123(die Sausleise zeig den Zusand; zum Umschalen klicken).Fügen Sie Ihrem Agenen die obige URL-Konfiguraion hinzu.
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 runsArchitektur
AI agent ──HTTP/JSON-RPC──▶ VS Code extension (in-process http server :9123)
│ vscode.* APIs + ms-toolsai.jupyter public API
▼
notebook cells, outputs, kernel statusKernel-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 packageReferenzen
Model Context Protocol — Streamable-HTTP-Transport, Spezifikation 2025-11-25
microsoft/vscode-copilot-chat (MIT) — Variablenzusammenfassung, Kürzungsbudgets und Symbolfilterungsmuster
SMARK OpenCode IDE Bridge — Kernel-Vorprüfungen über die öffentliche Jupyter-API, Interrupt-/Neustart-Befehls-Fallbacks, ereignisbasierte Abschlussverfolgung
kriss-spy/opencode-jupyter — ursprüngliches HTTP-Bridge-Konzept
Lizenz
MIT
This server cannot be deployed
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP server exposing the Backtest360 engine API as tools for AI agents.
Remote MCP server exposing your Node Command fleet (files, shell, processes, browser) to AI hosts.
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceExposes VSCode Jupyter notebooks to MCP-compatible AI agents, enabling them to read, edit, and run cells against the same kernel.MIT
- AlicenseAqualityCmaintenanceEnables 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.445Apache 2.0
- AlicenseBqualityDmaintenanceAn 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.9MIT
- AlicenseNot gradedqualityBmaintenanceVS Code extension that bridges local Jupyter Notebooks with AI Agents via MCP, enabling direct control of the active notebook tab.2MIT