Skip to main content
Glama
caryan

vscode-notebook-mcp

by caryan

vscode-notebook-mcp

Eine VS Code-Erweiterung, die die Jupyter-Notebooks in Ihrem VS Code-Editor für MCP-kompatible KI-Agenten (z. B. Claude Code) bereitstellt. Der Agent liest, bearbeitet und führt Zellen mit demselben Kernel aus, den auch VS Code verwendet.

Status: Pre-Alpha, Einzelentwickler-Projekt. Von Grund auf neu erstellt; kein Fork.

Tools (12)

Erkennung

Tool

Beschreibung

notebook_list_open

Listet alle geöffneten Notebooks mit URI, Dateiname, Zellanzahl und dem aktiven Notebook auf

notebook_list_cells

Listet Zellen mit Index, Typ, Sprache, Vorschau und Ausführungsstatus auf

notebook_get_cell_content

Vollständiger Quellcode einer Zelle

notebook_get_cell_output

Ausgaben einer Zelle (Text, Fehler, Bilder als base64)

Zellmanipulation

Tool

Beschreibung

notebook_insert_cell

Fügt eine Code- oder Markdown-Zelle an einer beliebigen Position ein; optional mit Ausführung

notebook_edit_cell

Ersetzt den Inhalt einer bestehenden Zelle

notebook_delete_cell

Löscht eine Zelle anhand des Index

Ausführung

Tool

Beschreibung

notebook_run_cell

Führt eine bestehende Code-Zelle aus und gibt die Ausgaben zurück

notebook_clear_cell_output

Löscht die Ausgaben einer einzelnen Zelle

notebook_clear_all_outputs

Löscht die Ausgaben aller Zellen

Kernel

Tool

Beschreibung

notebook_get_kernel_info

Sprache, Status, Notebook-URI

notebook_select_kernel

Programmgesteuert über kernel_id oder Öffnen der Kernel-Auswahl, falls weggelassen

Alle Tools akzeptieren eine optionale notebook_uri (wenn weggelassen → wird das aktive Notebook verwendet) und ein response_format ("markdown" oder "json").

Related MCP server: lsp-mcp

Einrichtung

  1. Installieren Sie die Jupyter-Erweiterung in VS Code, falls noch nicht geschehen.

  2. Erstellen und starten Sie diese Erweiterung:

    npm install
    npm run build

    Öffnen Sie dann diesen Ordner in VS Code und drücken Sie F5, um einen Extension Development Host mit geladener Erweiterung zu starten.

  3. Fügen Sie dies Ihrer MCP-Client-Konfiguration hinzu:

    {
      "mcpServers": {
        "notebook": {
          "url": "http://127.0.0.1:49777/mcp"
        }
      }
    }
  4. Öffnen Sie eine .ipynb-Datei im Extension Development Host. Achten Sie auf die 🪐 :49777-Anzeige in der Statusleiste.

Konfiguration

Einstellung

Standard

Beschreibung

notebook-mcp.port

49777

Bevorzugter Port. Erhöht sich automatisch, falls belegt (bis zu +99).

Befehle

  • Notebook MCP: Restart Server

  • Notebook MCP: Show Server Info

Architektur

┌─────────────────────────────────────────────────────────┐
│                    VS Code window                       │
│                                                         │
│  ┌───────────────────────────────────────────────────┐  │
│  │  Jupyter extension (ms-toolsai.jupyter)           │  │
│  │                                                   │  │
│  │  Notebook document  ◄──►  Kernel  ──►  Outputs    │  │
│  └───────────────────────────────────────────────────┘  │
│                          ▲                              │
│                          │ vscode.NotebookEdit,         │
│                          │ notebook.cell.execute,       │
│                          │ jupyter.kernels.getKernel    │
│                          │                              │
│  ┌───────────────────────┴───────────────────────────┐  │
│  │  This extension                                   │  │
│  │                                                   │  │
│  │   HTTP server :49777  ──►  MCP tools (12)         │  │
│  │   (StreamableHTTPServerTransport)                 │  │
│  └───────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────┘
                              │ HTTP (MCP protocol)
                              ▼
                ┌───────────────────────────────┐
                │   AI agent                    │
                │   (Claude Code, Cursor, etc.) │
                └───────────────────────────────┘

Implementierungshinweise

  • Schreibvorgänge erfolgen über vscode.NotebookEdit + vscode.WorkspaceEdit, wodurch Rückgängig/Wiederherstellen erhalten bleibt.

  • Ausführung sendet notebook.cell.execute und wartet durch Abfragen von cell.executionSummary.success auf einen boolean-Wert (VS Code erstellt die Zusammenfassung, sobald die Ausführung beginnt, aber success wird erst dann zu einem boolean, wenn der Kernel fertig ist).

  • Eingefügte Zellen werden mit einer Metadaten-ID markiert, damit der Executor sie wiederfinden kann, nachdem sich der Index durch andere gleichzeitige Bearbeitungen verschoben hat.

  • Multi-Notebook: Jedes Tool akzeptiert notebook_uri. Auflösung: explizite URI → Suche in vscode.workspace.notebookDocuments (oder öffnen); andernfalls Rückgriff auf vscode.window.activeNotebookEditor.

Entwicklung

npm install
npm run build       # esbuild bundle
npm run watch       # rebuild on change
npm run typecheck   # tsc --noEmit
npm test            # vitest (no tests yet)

Drücken Sie F5 in VS Code, um den Extension Development Host zu starten.

Referenzen

Andere Projekte, die in eine ähnliche Richtung gehen:

Ich habe dies von Grund auf neu erstellt, um zu lernen und Spielraum für Designanpassungen und die Entwicklung neuer Funktionen zu haben.

Lizenz

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with VS Code's language server protocol features (definitions, references, diagnostics) and debugger (breakpoints, stepping, variable inspection) via an MCP server.
    9 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables external agents to run, edit, create, and manage the Jupyter notebook the user is actively editing in VS Code, headlessly and without approval dialogs. Works with any MCP client and is Jupyter-optional for document operations.
    1
    MIT