MCP Jupyter Complete

Un servidor para la manipulación de cuadernos J

Documentación

MCP Jupyter Complete

Un servidor integral del Model Context Protocol (MCP) para la manipulación de cuadernos de Jupyter con operaciones basadas en posición e integración con VS Code.

Características

🎯 Operaciones Basadas en Posición

  • list_cells - Lista todas las celdas con índices e información de tipo
  • get_cell_source - Obtiene el código fuente de celdas específicas por índice
  • edit_cell_source - Edita el contenido de celdas por índice
  • insert_cell - Inserta nuevas celdas en posiciones específicas
  • delete_cell - Elimina celdas por índice con reindexación automática

🚀 Operaciones Mejoradas

  • move_cell - Mueve celdas entre posiciones
  • convert_cell_type - Convierte entre celdas de código/markdown/raw
  • bulk_edit_cells - Realiza múltiples operaciones en una sola llamada

🔧 Integración con VS Code

  • trigger_vscode_reload - Fuerza a VS Code a recargar archivos de cuaderno
  • Soporte de observador de archivos para recarga automática
  • Generación de espacio de trabajo y configuración de VS Code
  • Recomendaciones de extensiones para una experiencia óptima con Jupyter

Instalación

  1. Clonar el repositorio:

    git clone https://github.com/tofunori/mcp-jupyter-complete.git
    cd mcp-jupyter-complete
    
  2. Instalar dependencias:

    npm install
    
  3. Hacer ejecutable (opcional):

    npm link
    

Configuración

Agregar a su configuración de ~/.claude.json:

{
  "mcpServers": {
    "jupyter-complete": {
      "command": "node",
      "args": ["/path/to/mcp-jupyter-complete/src/index.js"]
    }
  }
}

O si se instala globalmente vía npm:

{
  "mcpServers": {
    "jupyter-complete": {
      "command": "mcp-jupyter-complete"
    }
  }
}

Ejemplos de Uso

Operaciones Básicas con Celdas

// List all cells
await mcp.call("list_cells", {
  notebook_path: "/path/to/notebook.ipynb"
});

// Get cell content
await mcp.call("get_cell_source", {
  notebook_path: "/path/to/notebook.ipynb",
  cell_index: 0
});

// Edit a cell
await mcp.call("edit_cell_source", {
  notebook_path: "/path/to/notebook.ipynb",
  cell_index: 1,
  new_source: "print('Hello World!')"
});

Operaciones Avanzadas

// Insert a new markdown cell
await mcp.call("insert_cell", {
  notebook_path: "/path/to/notebook.ipynb",
  position: 2,
  cell_type: "markdown",
  source: "# New Section\\n\\nThis is a new markdown cell."
});

// Move a cell
await mcp.call("move_cell", {
  notebook_path: "/path/to/notebook.ipynb",
  from_index: 3,
  to_index: 1
});

// Bulk operations
await mcp.call("bulk_edit_cells", {
  notebook_path: "/path/to/notebook.ipynb",
  operations: [
    {
      type: "edit",
      cell_index: 0,
      new_source: "# Updated title"
    },
    {
      type: "convert",
      cell_index: 1,
      new_type: "markdown"
    }
  ]
});

Integración con VS Code

// Trigger VS Code reload
await mcp.call("trigger_vscode_reload", {
  notebook_path: "/path/to/notebook.ipynb"
});

Configuración de VS Code

Para una integración óptima con VS Code:

  1. Instalar extensiones recomendadas:

    • Python
    • Jupyter
    • Jupyter Keymap
    • Jupyter Renderers
  2. Configurar recarga automática: Agregar a la configuración de VS Code:

    {
      "files.watcherExclude": {
        "**/.ipynb_checkpoints/**": true
      },
      "notebook.diffEditor.ignoreTrimWhitespace": false
    }
    
  3. Usar con Claude Code: Al usar con Claude Code, los cambios en el cuaderno realizados mediante MCP activarán automáticamente un aviso de recarga en VS Code.

Referencia de la API

Funciones Principales

FunciónParámetrosDescripción
list_cellsnotebook_pathLista todas las celdas con índices
get_cell_sourcenotebook_path, cell_indexObtiene el código fuente de la celda
edit_cell_sourcenotebook_path, cell_index, new_sourceEdita el contenido de la celda
insert_cellnotebook_path, position, cell_type?, source?Inserta una nueva celda
delete_cellnotebook_path, cell_indexElimina una celda

Funciones Mejoradas

FunciónParámetrosDescripción
move_cellnotebook_path, from_index, to_indexMueve la posición de la celda
convert_cell_typenotebook_path, cell_index, new_typeConvierte el tipo de celda
bulk_edit_cellsnotebook_path, operations[]Operaciones masivas

Funciones de VS Code

FunciónParámetrosDescripción
trigger_vscode_reloadnotebook_pathFuerza la recarga de VS Code

Tipos de Celdas

Tipos de celdas compatibles:

  • code - Celdas de código Python/ejecutable
  • markdown - Celdas de texto Markdown
  • raw - Celdas de texto raw

Manejo de Errores

El servidor proporciona mensajes de error detallados para:

  • Índices de celdas no válidos
  • Permisos de lectura/escritura de archivos
  • JSON de cuaderno malformado
  • Conversiones de tipo de celda no válidas

Desarrollo

Pruebas

npm test

Linting

npm run lint

Modo de Desarrollo

npm run dev

Contribuciones

  1. Haga un fork del repositorio
  2. Cree una rama de características
  3. Realice sus cambios
  4. Agregue pruebas si corresponde
  5. Envíe una solicitud de extracción

Licencia

Licencia MIT - consulte el archivo LICENSE para más detalles.

Registro de Cambios

v1.0.0

  • Lanzamiento inicial
  • Operaciones de celdas basadas en posición
  • Integración con VS Code
  • Soporte de operaciones masivas
  • Manejo integral de errores