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 installed
Maintenance
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
- AlicenseNot gradedqualityBmaintenanceExposes VSCode Jupyter notebooks to MCP-compatible AI agents, enabling them to read, edit, and run cells against the same kernel.MIT
- AlicenseAqualityDmaintenanceEnables 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.444Apache 2.0
- AlicenseAqualityCmaintenanceEnables AI agents to create, read, edit, and execute Jupyter notebook cells, manage kernels, and connect to remote Jupyter servers.21MIT
- AlicenseBqualityBmaintenanceAn 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
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.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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