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 tipoget_cell_source- Obtiene el código fuente de celdas específicas por índiceedit_cell_source- Edita el contenido de celdas por índiceinsert_cell- Inserta nuevas celdas en posiciones específicasdelete_cell- Elimina celdas por índice con reindexación automática
🚀 Operaciones Mejoradas
move_cell- Mueve celdas entre posicionesconvert_cell_type- Convierte entre celdas de código/markdown/rawbulk_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
-
Clonar el repositorio:
git clone https://github.com/tofunori/mcp-jupyter-complete.git cd mcp-jupyter-complete -
Instalar dependencias:
npm install -
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:
-
Instalar extensiones recomendadas:
- Python
- Jupyter
- Jupyter Keymap
- Jupyter Renderers
-
Configurar recarga automática: Agregar a la configuración de VS Code:
{ "files.watcherExclude": { "**/.ipynb_checkpoints/**": true }, "notebook.diffEditor.ignoreTrimWhitespace": false } -
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ón | Parámetros | Descripción |
|---|---|---|
list_cells | notebook_path | Lista todas las celdas con índices |
get_cell_source | notebook_path, cell_index | Obtiene el código fuente de la celda |
edit_cell_source | notebook_path, cell_index, new_source | Edita el contenido de la celda |
insert_cell | notebook_path, position, cell_type?, source? | Inserta una nueva celda |
delete_cell | notebook_path, cell_index | Elimina una celda |
Funciones Mejoradas
| Función | Parámetros | Descripción |
|---|---|---|
move_cell | notebook_path, from_index, to_index | Mueve la posición de la celda |
convert_cell_type | notebook_path, cell_index, new_type | Convierte el tipo de celda |
bulk_edit_cells | notebook_path, operations[] | Operaciones masivas |
Funciones de VS Code
| Función | Parámetros | Descripción |
|---|---|---|
trigger_vscode_reload | notebook_path | Fuerza la recarga de VS Code |
Tipos de Celdas
Tipos de celdas compatibles:
code- Celdas de código Python/ejecutablemarkdown- Celdas de texto Markdownraw- 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
- Haga un fork del repositorio
- Cree una rama de características
- Realice sus cambios
- Agregue pruebas si corresponde
- 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