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
+60 -24
View File
@@ -1,44 +1,78 @@
--- ---
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
Buscar archivos `.ipynb` en:
- Raíz del proyecto
- Carpeta `notebooks/`
- Cualquier subcarpeta
```bash
find [ruta] -name "*.ipynb" -type f 2>/dev/null | head -5
```
### 2. Si HAY notebooks existentes → Iniciar directamente
**2a. Verificar que MCP está configurado**
- Comprobar si existe `.claude/settings.local.json` con configuración de jupyter
- Si no existe, crearlo (ver paso 6 del flujo de inicialización)
**2b. Verificar que jupyter-mcp-server está instalado**
```bash
which jupyter-mcp-server || uv tool install jupyter-mcp-server
```
**2c. Iniciar Jupyter via MCP**
```bash
source .venv/bin/activate 2>/dev/null || true
jupyter lab --no-browser --NotebookApp.token='' --NotebookApp.password='' --NotebookApp.disable_check_xsrf=True
```
**2d. Informar al usuario** que Jupyter está corriendo y puede usar las herramientas MCP de Jupyter desde Claude.
### 3. Si NO hay notebooks → Inicializar proyecto completo
Seguir estos pasos:
**3a. Validar ubicación**
- Si se proporciona `$1`, usar esa ruta - Si se proporciona `$1`, usar esa ruta
- Si no, usar el directorio actual - Si no, usar el directorio actual
2. **Inicializar proyecto con uv** **3b. Inicializar proyecto con uv** (si no existe pyproject.toml)
```bash ```bash
cd [ruta] && uv init cd [ruta] && uv init
``` ```
3. **Crear entorno virtual** **3c. Crear entorno virtual**
```bash ```bash
uv venv uv venv
``` ```
4. **Instalar dependencias** **3d. Instalar dependencias**
```bash ```bash
uv add jupyter jupyter-collaboration uv add jupyter jupyter-collaboration
``` ```
5. **Instalar jupyter-mcp-server** **3e. Instalar jupyter-mcp-server**
```bash ```bash
uv tool install jupyter-mcp-server uv tool install jupyter-mcp-server
``` ```
6. **Configurar MCP para Claude** **3f. Configurar MCP para Claude**
- Crear o actualizar `.claude/settings.local.json` con la configuración del servidor MCP de Jupyter: Crear o actualizar `.claude/settings.local.json`:
```json ```json
{ {
"mcpServers": { "mcpServers": {
@@ -50,31 +84,33 @@ Este skill automatiza la configuración completa de un entorno de análisis de d
} }
``` ```
7. **Crear script de lanzamiento** `start-jupyter.sh`: **3g. Crear carpeta notebooks** (opcional)
```bash ```bash
#!/bin/bash mkdir -p notebooks
source .venv/bin/activate
.venv/bin/jupyter lab --no-browser --NotebookApp.token='' --NotebookApp.password='' --NotebookApp.disable_check_xsrf=True
``` ```
8. **Mostrar resumen al usuario** con los comandos para: **3h. Iniciar Jupyter via MCP**
- Activar el entorno: `source .venv/bin/activate` ```bash
- Lanzar Jupyter: `./start-jupyter.sh` o el comando directo 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