AgentSkillsCN

mcp-jupyter

MCP Jupyter工具参考(内核管理、单元格执行、Papermill)。适用于执行笔记本、管理内核,或通过MCP进行交互式代码运行的场景。

SKILL.md
--- frontmatter
name: mcp-jupyter
description: Reference for MCP Jupyter tools (kernel management, cell execution, Papermill). Use when executing notebooks, managing kernels, or running code interactively via MCP.

MCP Jupyter Reference

When to Use MCP vs Local Scripts

NeedToolWhy
Batch validation (Python)scripts/notebook_tools.py validateFaster, no kernel setup
Batch execution (Python)scripts/notebook_tools.py executePapermill CLI, simpler
Structure analysisscripts/notebook_helpers.py list --verboseLocal, instant
Find enrichment gapsNotebookHelper.find_cells_needing_enrichment()Python API
Cell-by-cell .NET executionMCP execute_on_kernelOnly option (Papermill blocked)
Interactive debuggingMCP manage_kernel + execute_on_kernelLive kernel state
Notebook read/write via APIMCP read_cells, add_cellRemote/programmatic

Rule: Prefer local scripts for Python notebooks. Use MCP for .NET kernels and interactive sessions. See notebook-helpers skill for full script reference.

Available MCP Tools

ToolDescription
list_kernels()List available kernel specs
manage_kernel(action, kernel_name/id)start/stop/restart/interrupt kernel
execute_on_kernel(kernel_id, mode, ...)Execute code, cell, or full notebook
execute_notebook(input_path, ...)Papermill execution (sync/async)
read_notebook(path)Read notebook content
read_cells(path, mode)Read cells (list/summary)
get_notebook_info(path)Notebook metadata
manage_async_job(action, job_id)Manage async Papermill jobs

Supported Kernels

KernelNameNotes
Python 3python3Via ipykernel in conda mcp-jupyter-py310
.NET C#.net-csharpVia dotnet-interactive
.NET F#.net-fsharpVia dotnet-interactive
Lean 4lean4Via WSL wrapper

Execution Patterns

Python notebooks - Papermill (preferred for batch)

python
execute_notebook(
    input_path="MyIA.AI.Notebooks/path/notebook.ipynb",
    output_path="MyIA.AI.Notebooks/path/notebook.ipynb",  # Same file = overwrite with outputs
    mode="sync"
)

Python notebooks - Cell-by-cell (for control)

python
manage_kernel(action="start", kernel_name="python3")
# Execute cells
execute_on_kernel(kernel_id="...", mode="notebook_cell", path="notebook.ipynb", cell_index=0)
# ...
manage_kernel(action="stop", kernel_id="...")

.NET notebooks - Cell-by-cell ONLY

IMPORTANT: Papermill does NOT work with .NET notebooks. Always use cell-by-cell.

python
manage_kernel(action="start", kernel_name=".net-csharp")

# CRITICAL: Set working directory first
execute_on_kernel(
    kernel_id="...", mode="code",
    code='System.IO.Directory.SetCurrentDirectory(@"d:\\dev\\CoursIA\\MyIA.AI.Notebooks\\Sudoku");'
)

# Execute cells sequentially
for idx in range(cell_count):
    execute_on_kernel(kernel_id="...", mode="notebook_cell", path="notebook.ipynb", cell_index=idx)

manage_kernel(action="stop", kernel_id="...")

Known Issues

ProblemWorkaround
Papermill + #!importUse cell-by-cell execution
Papermill + .NET kernelsKernel hangs at startup; use cell-by-cell
.NET cold start timeoutNormal (30-60s); retry once
Async progress values incorrectKnown bug; ignore progress numbers
Kernel unresponsive after failed PapermillStop and restart kernel
Relative paths failSet working directory explicitly
Widgets/interactive elementsUse BATCH_MODE=true parameter