/ Directorio / Playground / jupyter-mcp-server
● Comunidad datalayer ⚡ Instantáneo

jupyter-mcp-server

por datalayer · datalayer/jupyter-mcp-server

Permite que Claude ejecute y lea tus cuadernos de Jupyter en tiempo real — ejecuta celdas, visualiza gráficos, se recupera de errores, todo sin salir del chat.

jupyter-mcp-server (Datalayer) conecta clientes MCP a una instancia activa de JupyterLab/Jupyter Server. Admite múltiples cuadernos, salidas de imágenes/gráficos, gestión de kernels y bucles de recuperación de errores. Útil para exploración de datos, análisis reproducibles o para que agentes operen un cuaderno como un compañero.

Por qué usarlo

Características clave

Demo en vivo

Cómo se ve en la práctica

jupyter.replay ▶ listo
0/0

Instalar

Elige tu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "jupyter": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Abre Claude Desktop → Settings → Developer → Edit Config. Reinicia después de guardar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "jupyter": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Cursor usa el mismo esquema mcpServers que Claude Desktop. La configuración del proyecto prevalece sobre la global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "jupyter": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Haz clic en el icono MCP Servers de la barra lateral de Cline y luego en "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "jupyter": {
      "command": "uvx",
      "args": [
        "jupyter-mcp-server"
      ],
      "_inferred": true
    }
  }
}

Mismo formato que Claude Desktop. Reinicia Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "jupyter",
      "command": "uvx",
      "args": [
        "jupyter-mcp-server"
      ]
    }
  ]
}

Continue usa un array de objetos de servidor en lugar de un mapa.

~/.config/zed/settings.json
{
  "context_servers": {
    "jupyter": {
      "command": {
        "path": "uvx",
        "args": [
          "jupyter-mcp-server"
        ]
      }
    }
  }
}

Añádelo a context_servers. Zed recarga en caliente al guardar.

claude mcp add jupyter -- uvx jupyter-mcp-server

Un solo comando. Verifica con claude mcp list. Quita con claude mcp remove.

Casos de uso

Usos del mundo real: jupyter-mcp-server

Cómo ejecutar análisis exploratorio de datos con Claude + Jupyter

👤 Científicos de datos, analistas ⏱ ~30 min intermediate

Cuándo usarlo: Tienes un nuevo conjunto de datos y quieres explorarlo sin escribir tú mismo las celdas repetitivas.

Requisitos previos
  • JupyterLab ejecutándose con autenticación por token — jupyter lab --no-browser; copia el token de la URL
  • Variables de entorno JUPYTER_URL + JUPYTER_TOKEN — Establécelas con la URL de tu lab y el token
Flujo
  1. Carga el cuaderno y los datos
    Usa use_notebook para abrir analysis.ipynb. Inserta una celda que cargue ./data/events.parquet en un DataFrame llamado df.✓ Copiado
    → La celda se ejecuta; se devuelve la vista previa de df.head()
  2. Itera sobre el análisis
    ¿Cómo se ve la distribución de event_type? Dibújala, muéstrame la imagen.✓ Copiado
    → Imagen del histograma renderizada en el chat
  3. Guarda un cuaderno limpio
    Limpia el cuaderno: elimina celdas de error, agrega encabezados markdown, reinicia-ejecuta-todo para verificar que funcione de principio a fin.✓ Copiado
    → Cuaderno que se reproduce de principio a fin

Resultado: Un cuaderno publicable con narrativa, gráficos y reproducibilidad verificada.

Errores comunes
  • El estado del kernel se desvía del orden de celdas del cuaderno — Usa notebook_run-all-cells después de ediciones para detectar bugs de estado oculto
  • Los archivos de datos no son visibles para el kernel — El CWD del kernel es el directorio del cuaderno, no donde iniciaste Jupyter — usa rutas absolutas
Combinar con: filesystem

Cuadernos autocorrectivos con Claude y jupyter-mcp

👤 Investigadores iterando en pipelines ⏱ ~45 min advanced

Cuándo usarlo: Un cuaderno largo falla a mitad; quieres que el agente corrija la celda y reanude en lugar de reiniciar.

Flujo
  1. Ejecuta con captura de errores
    Ejecuta todas las celdas en pipeline.ipynb. Cuando una celda falle, lee el traceback, corrige el código y reinténtalo antes de continuar.✓ Copiado
    → El cuaderno continúa más allá del primer error con una corrección aplicada
  2. Registra las correcciones para revisión
    Resume cada corrección que hayas hecho como celdas markdown encima del código cambiado✓ Copiado
    → Pista de auditoría de ediciones del agente

Resultado: El pipeline se completa con un historial de reparación visible.

Genera cuadernos de enseñanza a partir de esquemas de lecciones en lenguaje natural

👤 Educadores, redactores técnicos ⏱ ~30 min beginner

Cuándo usarlo: Quieres producir un cuaderno de ejemplo resuelto para estudiantes o una publicación de blog.

Flujo
  1. Esquema → andamiaje
    A partir de este esquema de lección [pega], crea lesson.ipynb con secciones como celdas markdown y celdas de código andamiadas.✓ Copiado
    → Cuaderno con estructura
  2. Rellena celdas de código y verifica
    Desarrolla cada celda de código con ejemplos ejecutables. Ejecuta de principio a fin y asegúrate de que no hay errores.✓ Copiado
    → Cuaderno limpio que los estudiantes pueden ejecutar

Resultado: Un cuaderno listo para enseñar creado en minutos, no en horas.

Combinaciones

Combínalo con otros MCPs para multiplicar por 10

jupyter + filesystem

Mueve artefactos dentro/fuera del directorio de trabajo del cuaderno

Copia los gráficos guardados por el cuaderno a ./reports/<date>/ a través del MCP del sistema de archivos.✓ Copiado
jupyter + postgres

Extrae datos de Postgres dentro del cuaderno

En una celda nueva, usa pandas.read_sql con mi conexión DB para cargar los eventos del mes pasado; luego haz EDA.✓ Copiado

Herramientas

Lo que expone este MCP

HerramientaEntradasCuándo llamarCoste
use_notebook path: str Abre/adjunta un cuaderno 0
list_notebooks Encuentra cuadernos disponibles 0
execute_cell notebook_id, cell_index Ejecuta una celda específica kernel time
insert_execute_code_cell notebook_id, code, position? Agrega código nuevo y ejecútalo kernel time
read_cell notebook_id, cell_index Inspecciona celdas existentes 0
list_kernels Ve qué está en ejecución; encuentra kernels zombis 0
restart_notebook notebook_id Reinicia el estado del kernel limpiamente 0

Coste y límites

Lo que cuesta ejecutarlo

Cuota de API
Ninguno desde MCP; Jupyter es tuyo para ejecutar
Tokens por llamada
Las salidas pueden ser grandes — especialmente imágenes y encabezados de DataFrame
Monetario
Gratis (autohospedado)
Consejo
Usa df.head() y df.info() no print(df) — los DataFrames completos inflan el uso de tokens

Seguridad

Permisos, secretos, alcance

Almacenamiento de credenciales: JUPYTER_TOKEN en env — trátalo como una contraseña; cualquiera que lo tenga puede ejecutar código en tu kernel
Salida de datos: MCP habla solo con tu URL del servidor Jupyter

Resolución de problemas

Errores comunes y soluciones

401 No autorizado al conectar con Jupyter

JUPYTER_TOKEN obsoleto — copia uno fresco de jupyter server list

Verificar: curl -H 'Authorization: token <TOKEN>' $JUPYTER_URL/api
Kernel ocupado / nunca regresa

La celda anterior aún se está ejecutando. Usa restart_notebook para recuperarse; cuidado con los bucles infinitos

Verificar: list_kernels muestra state=busy
Los gráficos no aparecen en Claude

Asegúrate de que %matplotlib inline esté establecido y estés devolviendo la figura, no solo llamando a plt.show() al final

Alternativas

jupyter-mcp-server vs otros

AlternativaCuándo usarlaContrapartida
nteract/papermillQuieres ejecuciones de cuadernos con scripts/parametrizadas sin chat interactivoSin bucle de agente; estilo batch
marimoQuieres cuadernos reactivos con menos estado ocultoHerramienta completamente diferente; aún sin MCP

Más

Recursos

📖 Lee el README oficial en GitHub

🐙 Ver issues abiertas

🔍 Ver todos los 400+ servidores MCP y Skills