feat: mejorar init-jupyter para detectar notebooks existentes

Ahora el skill detecta si ya hay archivos .ipynb en el repo o carpeta notebooks.
Si existen, simplemente inicia Jupyter via MCP sin reinicializar el proyecto.
Se garantiza que siempre use MCP para la integración con Claude.
Se agrega Glob a las herramientas permitidas para la detección.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-03-23 13:03:00 +01:00
parent 9f88010eb5
commit 4bf7f51613
+86 -50
View File
@@ -1,80 +1,116 @@
--- ---
name: init-jupyter name: init-jupyter
description: Inicializa un proyecto Python con uv, Jupyter Lab y configura MCP para Claude description: Inicializa o inicia Jupyter Lab via MCP. Detecta notebooks existentes automáticamente.
argument-hint: [ruta-proyecto] argument-hint: [ruta-proyecto]
disable-model-invocation: true disable-model-invocation: true
user-invocable: true user-invocable: true
allowed-tools: Bash, Read, Write, Edit allowed-tools: Bash, Read, Write, Edit, Glob
--- ---
# Inicializar Proyecto Jupyter # Inicializar/Iniciar Proyecto Jupyter via MCP
Este skill automatiza la configuración completa de un entorno de análisis de datos con Jupyter Lab integrado con Claude via MCP. Este skill gestiona entornos Jupyter Lab integrados con Claude via MCP. Detecta automáticamente si ya existe un proyecto configurado.
## Pasos a ejecutar ## Flujo de decisión
1. **Validar ubicación** ### 1. Detectar notebooks existentes
- Si se proporciona `$1`, usar esa ruta
- Si no, usar el directorio actual
2. **Inicializar proyecto con uv** Buscar archivos `.ipynb` en:
```bash - Raíz del proyecto
cd [ruta] && uv init - Carpeta `notebooks/`
``` - Cualquier subcarpeta
3. **Crear entorno virtual** ```bash
```bash find [ruta] -name "*.ipynb" -type f 2>/dev/null | head -5
uv venv ```
```
4. **Instalar dependencias** ### 2. Si HAY notebooks existentes → Iniciar directamente
```bash
uv add jupyter jupyter-collaboration
```
5. **Instalar jupyter-mcp-server** **2a. Verificar que MCP está configurado**
```bash - Comprobar si existe `.claude/settings.local.json` con configuración de jupyter
uv tool install jupyter-mcp-server - Si no existe, crearlo (ver paso 6 del flujo de inicialización)
```
6. **Configurar MCP para Claude** **2b. Verificar que jupyter-mcp-server está instalado**
- Crear o actualizar `.claude/settings.local.json` con la configuración del servidor MCP de Jupyter: ```bash
```json which jupyter-mcp-server || uv tool install jupyter-mcp-server
{ ```
"mcpServers": {
"jupyter": {
"command": "jupyter-mcp-server",
"args": []
}
}
}
```
7. **Crear script de lanzamiento** `start-jupyter.sh`: **2c. Iniciar Jupyter via MCP**
```bash ```bash
#!/bin/bash source .venv/bin/activate 2>/dev/null || true
source .venv/bin/activate jupyter lab --no-browser --NotebookApp.token='' --NotebookApp.password='' --NotebookApp.disable_check_xsrf=True
.venv/bin/jupyter lab --no-browser --NotebookApp.token='' --NotebookApp.password='' --NotebookApp.disable_check_xsrf=True ```
```
8. **Mostrar resumen al usuario** con los comandos para: **2d. Informar al usuario** que Jupyter está corriendo y puede usar las herramientas MCP de Jupyter desde Claude.
- Activar el entorno: `source .venv/bin/activate`
- Lanzar Jupyter: `./start-jupyter.sh` o el comando directo ### 3. Si NO hay notebooks → Inicializar proyecto completo
Seguir estos pasos:
**3a. Validar ubicación**
- Si se proporciona `$1`, usar esa ruta
- Si no, usar el directorio actual
**3b. Inicializar proyecto con uv** (si no existe pyproject.toml)
```bash
cd [ruta] && uv init
```
**3c. Crear entorno virtual**
```bash
uv venv
```
**3d. Instalar dependencias**
```bash
uv add jupyter jupyter-collaboration
```
**3e. Instalar jupyter-mcp-server**
```bash
uv tool install jupyter-mcp-server
```
**3f. Configurar MCP para Claude**
Crear o actualizar `.claude/settings.local.json`:
```json
{
"mcpServers": {
"jupyter": {
"command": "jupyter-mcp-server",
"args": []
}
}
}
```
**3g. Crear carpeta notebooks** (opcional)
```bash
mkdir -p notebooks
```
**3h. Iniciar Jupyter via MCP**
```bash
source .venv/bin/activate
jupyter lab --no-browser --NotebookApp.token='' --NotebookApp.password='' --NotebookApp.disable_check_xsrf=True
```
## Ejemplos de uso ## Ejemplos de uso
**Inicializar en directorio actual:** **Iniciar/inicializar en directorio actual:**
```bash ```bash
/init-jupyter /init-jupyter
``` ```
**Inicializar en ruta específica:** **Iniciar/inicializar en ruta específica:**
```bash ```bash
/init-jupyter ~/proyectos/mi-analisis /init-jupyter ~/proyectos/mi-analisis
``` ```
## Notas ## Notas importantes
- Si el proyecto ya tiene `pyproject.toml`, preguntar antes de sobrescribir - **Siempre usa MCP**: Jupyter se ejecuta siempre de forma que Claude pueda interactuar via MCP
- El script `start-jupyter.sh` se crea con permisos de ejecución - Si detecta notebooks existentes, NO reinicializa el proyecto, solo inicia Jupyter
- Si el proyecto ya tiene `pyproject.toml`, no ejecuta `uv init`
- La configuración MCP se guarda en `.claude/settings.local.json` del proyecto - La configuración MCP se guarda en `.claude/settings.local.json` del proyecto
- El servidor MCP permite a Claude crear, editar y ejecutar celdas de notebooks