Jupyter Notebook MCP Server
Interactúa con cuadernos de Jupyter, permitiendo la ejecución de código, la manipulación de celdas y la gestión de cuadernos.
Documentación
Servidor MCP de Jupyter Notebook
Un servidor FastMCP que proporciona herramientas para interactuar con cuadernos de Jupyter. Construido usando el framework FastMCP.
Características
- ✅ Leer celdas de cuaderno con filtrado
- ✅ Añadir nuevas celdas en cualquier posición
- ✅ Ejecutar celdas individuales
- ✅ Ejecutar cuadernos completos
- ✅ Obtener metadatos y estadísticas del cuaderno
- ✅ Manejo adecuado de errores y validación
- ✅ Informe de progreso para operaciones largas
- ✅ Registro completo mediante el contexto de FastMCP
Integración con tu cliente MCP
Asegúrate de que uv esté instalado. Para usar este servidor con cursor, claude desktop o cualquier otro cliente MCP, añade lo siguiente a tu archivo de configuración mcp:
{
"mcpServers": {
"jupyter-notebook": {
"command": "uv",
"args": [
"run",
"--with",
"fastmcp>=2.8.1",
"python",
"<absolute_path_to_jupyter_mcp_server>/main.py"
]
}
}
}
Pruebas
Ejecuta el cliente de prueba para ver toda la funcionalidad en acción:
python test_client.py
Notas de seguridad
- La ejecución de celdas ejecuta código Python directamente mediante subprocesos
- Solo ejecute cuadernos de fuentes confiables
- Considere ejecutar en un entorno aislado para uso en producción
- Los controles de tiempo de espera ayudan a prevenir ejecuciones descontroladas
Dependencias
fastmcp- marco de servidor MCP
Herramientas
Este servidor MCP proporciona las siguientes herramientas para trabajar con cuadernos de Jupyter:
📖 read_notebook_cells
Lee celdas de un cuaderno de Jupyter con filtrado opcional por tipo de celda.
Parámetros:
notebook_path(str): Ruta al archivo .ipynbcell_type(str opcional): Filtrar por tipo de celda ('code', 'markdown', 'raw')
➕ add_cell_to_notebook
Añade una nueva celda a un cuaderno de Jupyter en una posición especificada.
Parámetros:
notebook_path(str): Ruta al archivo .ipynbcell_content(str): Contenido de la nueva celdacell_type(str, predeterminado="code"): Tipo de celda ('code', 'markdown', 'raw')position(int opcional): Posición para insertar la celda (predeterminado: añadir al final)metadata(dict opcional): Metadatos opcionales de la celda
⚡ execute_notebook_cell
Ejecuta una celda específica en un cuaderno de Jupyter.
Parámetros:
notebook_path(str): Ruta al archivo .ipynbcell_index(int): Índice de la celda a ejecutar (basado en 0)kernel_name(str, predeterminado="python3"): Kernel de Jupyter a usartimeout(int, predeterminado=30): Tiempo de espera de ejecución en segundos
🔄 execute_entire_notebook
Ejecuta todas las celdas de código en un cuaderno de Jupyter secuencialmente.
Parámetros:
notebook_path(str): Ruta al archivo .ipynbkernel_name(str, predeterminado="python3"): Kernel de Jupyter a usartimeout_per_cell(int, predeterminado=30): Tiempo de espera por celda en segundosstop_on_error(bool, predeterminado=True): Si detener la ejecución si una celda falla
📊 get_notebook_info
Obtén información básica sobre un cuaderno de Jupyter.
Parámetros:
notebook_path(str): Ruta al archivo .ipynb