Guía paso a paso para alumnos que trabajan en Windows 10 / 11 y no tienen formación fuerte en línea de comandos. Cubre el setup completo que necesitan los ejercicios basico.md, mcp-server-kiro.md y avanzado.md.
Kiro se fundamenta en la terminal. Si nunca has abierto una consola, no te preocupes: seguirás comandos copiados literalmente. Cuando veas un bloque con fondo oscuro, copia la línea completa y pégala en tu terminal con clic derecho (no
Ctrl+V).
- Elegir tu terminal
- Instalar Git
- Instalar Python
- Instalar uv (gestor de entornos)
- Instalar Node.js (necesario para MCP)
- Instalar Kiro IDE
- Crear cuentas y obtener tokens
- Configurar Kaggle CLI
- Configurar Hugging Face
- Instalar el Kiro Power Data Science Assistant
- Verificación final
- Referencia completa de comandos CLI del curso
- Problemas comunes en Windows
En Windows hay varias terminales. Para este curso usarás PowerShell (viene preinstalado). Abrirla así:
- Presiona la tecla Windows.
- Escribe:
PowerShell. - Clic derecho en Windows PowerShell → Ejecutar como administrador (solo la primera vez, para instalar cosas).
Consejo: ancla PowerShell a la barra de tareas. La vas a usar mucho.
Desde la Microsoft Store instala Windows Terminal. Es más moderna, permite pestañas y soporta pegar con Ctrl+Shift+V.
Escribe y presiona Enter:
$PSVersionTable.PSVersionDebe mostrar una versión 5.x o 7.x. Cualquiera sirve.
Por defecto Windows bloquea scripts. Ejecuta esto una sola vez en una PowerShell abierta como administrador:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserCuando pregunte, responde S (sí).
Git es necesario para clonar repositorios (incluido el Kiro Power).
- Descarga desde https://git-scm.com/download/win
- Ejecuta el instalador y deja todas las opciones por defecto. Punto importante: deja marcada la opción "Git from the command line and also from 3rd-party software".
- Verifica abriendo una nueva PowerShell:
git --versionDebe mostrar algo como git version 2.45.0.windows.1.
Reemplaza con tus datos reales:
git config --global user.name "Tu Nombre"
git config --global user.email "tu.email@universidad.edu"Los proyectos del curso requieren Python 3.12 o superior (el Power recomienda 3.12+).
- Descarga desde https://www.python.org/downloads/windows/
- Elige la versión 3.12.x o 3.13.x (64-bit).
- Al ejecutar el instalador, MARCA la casilla "Add python.exe to PATH" antes de hacer clic en Install. Este es el error #1 de los alumnos de Windows.
- Elige Install Now.
Abre una nueva PowerShell (cerrar y abrir de nuevo es importante para que reconozca el PATH):
python --version
pip --versionSi python --version muestra Python 3.12.x o superior, vas bien.
⚠️ Sipythonabre la tienda de Microsoft, significa que NO marcaste "Add to PATH". Desinstala desde Configuración → Aplicaciones y reinstala marcando la casilla.
uv es la herramienta estrella del curso. Sustituye a pip, virtualenv y pip-tools. NUNCA uses pip install directo en los ejercicios del curso.
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"Cierra y abre una nueva PowerShell (obligatorio para que reconozca uv).
uv --versionDebe mostrar uv 0.x.x.
| Comando | Para qué sirve |
|---|---|
uv init nombre-proyecto |
Crear un proyecto nuevo con pyproject.toml |
uv add pandas numpy |
Agregar dependencias al proyecto |
uv add xgboost |
Agregar XGBoost (clasificación/regresión boosted) |
uv add tensorflow |
Agregar TensorFlow (deep learning) |
uv add torch torchvision |
Agregar PyTorch |
uv add gradio |
Agregar Gradio (UIs para ML) |
uv add "gradio[mcp]" |
Gradio con soporte de MCP Server |
uv add huggingface-hub kaggle |
CLIs para publicar a HF y Kaggle |
uv add fastmcp |
FastMCP (para MCP servers con las 3 primitivas) |
uv remove pandas |
Quitar una dependencia |
uv sync |
Instalar lo que pide pyproject.toml (útil al clonar un repo existente) |
uv lock |
Regenerar el uv.lock |
uv run python script.py |
Ejecutar un script dentro del entorno del proyecto |
uv run python -c "import gradio; print(gradio.__version__)" |
Ejecutar código corto (útil para verificar versiones) |
uv run python app.py |
Levantar una app Gradio del proyecto |
uv run python server.py |
Levantar un MCP server FastMCP |
uvx kaggle ... |
Ejecutar el CLI de Kaggle sin instalarlo global |
uvx huggingface-cli login |
Login al CLI de Hugging Face |
Regla de oro: cada proyecto tiene su propio entorno virtual gestionado por
uv. Nunca instales librerías "globales".
Varios MCP Servers del curso (Tavily, Kaggle MCP) se ejecutan con npx, que viene con Node.js.
- Descarga el instalador LTS desde https://nodejs.org/
- Ejecuta el instalador con opciones por defecto. La casilla "Automatically install the necessary tools..." puedes dejarla desmarcada (no la necesitas).
- Cierra y abre una nueva PowerShell.
node --version
npx --versionAmbos deben mostrar una versión. Si npx funciona, los MCPs remotos de Tavily y Kaggle funcionarán.
- Descarga desde https://kiro.dev
- Instala con opciones por defecto.
- Al abrir por primera vez, inicia sesión con tu cuenta (sigue las instrucciones de Kiro).
File → Open Folder → selecciona la carpeta donde harás tus ejercicios (por ejemplo C:\Users\TuUsuario\ml-curso).
Ctrl + ñ (o menú Terminal → New Terminal). Esta terminal es la que usarás para ejecutar uv run. Es una PowerShell dentro de Kiro.
Necesitas tres cuentas gratuitas y cuatro tokens distintos (Kaggle tiene dos).
- Ve a https://app.tavily.com
- Crea cuenta con tu correo.
- En el dashboard, copia tu API Key. Es algo como
tvly-xxxxxxxxxxxxxxxxxx. - Guárdala en un archivo de texto temporal. La usarás más adelante.
- Ve a https://www.kaggle.com y crea cuenta si no tienes.
- Entra a https://www.kaggle.com/settings
- Busca la sección API.
- Clic en "Generate New Token" (arriba, junto al avatar). Este es el token KGAT, empieza con
KGAT_. - Cópialo y guárdalo. Este token NO sirve para el CLI, solo para el MCP.
En la misma página de https://www.kaggle.com/settings:
- Sección API → clic en "Create New API Token" (el de abajo).
- Se descarga un archivo
kaggle.jsoncon formato{"username":"...","key":"..."}. - Guárdalo en tu carpeta Descargas por ahora. Lo moveremos en el paso 8.
Importante: son dos tokens distintos aunque se parecen en la UI. Necesitas ambos. El KGAT va en
mcp.json, elkaggle.jsonva en~/.kaggle/.
- Ve a https://huggingface.co y crea cuenta.
- Entra a https://huggingface.co/settings/tokens
- Clic en "New token".
- Nombre:
kiro-curso. Tipo: Read (lectura es suficiente para empezar; si vas a desplegar Spaces, elige Write). - Copia el token (empieza con
hf_). Guárdalo.
El CLI de Kaggle es lo que usa el Power para publicar datasets y modelos (el MCP solo lee/descarga).
PowerShell no entiende ~/.kaggle/ igual que Linux. En Windows la ruta es C:\Users\TuUsuario\.kaggle\.
Ejecuta en PowerShell:
mkdir $HOME\.kaggleSi te dice que ya existe, perfecto.
Move-Item -Path "$HOME\Downloads\kaggle.json" -Destination "$HOME\.kaggle\kaggle.json"Get-Content $HOME\.kaggle\kaggle.jsonDebe mostrar algo como {"username":"tu_user","key":"abc123..."}.
Desde Kiro (o desde una terminal con un proyecto uv cualquiera):
uvx kaggle datasets list -s "iris" --max-size 1Si ves una tabla con datasets, todo está bien. Si dice 401 Unauthorized, tu kaggle.json no está donde debe o tiene datos incorrectos.
En Windows no aplica
chmod 600. Windows maneja permisos distinto y el CLI no se queja.
Para desplegar a HF Spaces, conviene guardar tu token como variable de entorno del usuario.
uvx huggingface-hub loginPega tu token cuando lo pida. Con esto quedas autenticado para comandos CLI.
Configura HF_TOKEN como variable de entorno del usuario (sobrevive reinicios):
[System.Environment]::SetEnvironmentVariable("HF_TOKEN", "hf_xxxxxxxxxxxxxxxxxx", "User")Reemplaza hf_xxxxxxxxxxxxxxxxxx con tu token real. Cierra y abre una nueva PowerShell para que tome efecto.
echo $env:HF_TOKENDebe mostrar tu token.
Los Powers van en C:\Users\TuUsuario\.kiro\powers\. En PowerShell:
mkdir $HOME\.kiro\powers -ErrorAction SilentlyContinue
git clone https://github.com/gusdelact/kiropowerdatascienceassistant.git $HOME\.kiro\powers\data-science-assistantAbre con Kiro el archivo:
C:\Users\TuUsuario\.kiro\powers\data-science-assistant\mcp.json
Reemplaza los tres placeholders con tus tokens reales:
YOUR_TAVILY_API_KEY→ tutvly-...YOUR_KAGGLE_TOKEN→ tuKGAT_...(el token del paso 7.2, no el API Key)YOUR_HF_TOKEN→ tuhf_...
Guarda el archivo.
Abre Kiro → panel de Powers → busca Data Science Assistant → actívalo.
En el chat de Kiro, escribe:
"Lista los powers instalados"
Debe aparecer data-science-assistant con sus 4 MCP servers.
Ejecuta esta lista uno por uno en una PowerShell nueva. Si todos pasan, estás listo.
git --version
python --version
uv --version
node --version
npx --versionY desde cualquier carpeta con un pyproject.toml:
uvx kaggle --version
uvx huggingface-hub --versionEn Kiro, prueba el Power con este prompt:
"Activa el power data-science-assistant y lista los MCP servers disponibles"
Kiro debe responder mencionando tavily-mcp, kaggle, huggingface y gradio-docs.
Para una prueba real end-to-end, pide:
"Busca 3 datasets en Kaggle sobre predicción de churn"
Si Kiro devuelve resultados con títulos y URLs de Kaggle, el MCP de Kaggle funciona.
Esta es la lista exhaustiva de comandos que aparecen en los ejercicios y en los workflows del Power. Tenla a mano mientras trabajas.
| Comando | Uso |
|---|---|
git --version |
Verificar instalación |
git config --global user.name "Tu Nombre" |
Configurar nombre |
git config --global user.email "tu@correo.com" |
Configurar email |
git clone <url> <carpeta> |
Clonar un repositorio |
git status |
Ver cambios del repo |
git add . |
Agregar todos los cambios al commit |
git commit -m "mensaje" |
Crear commit |
git push |
Subir cambios al remoto |
Ver la tabla detallada en la sección 4.
Todos los comandos se ejecutan prefijados con uvx para no instalar Kaggle globalmente.
| Comando | Uso |
|---|---|
uvx kaggle --version |
Verificar instalación |
uvx kaggle datasets list -s "iris" |
Buscar datasets |
uvx kaggle datasets list -s "iris" --max-size 1 |
Buscar limitando tamaño (MB) |
uvx kaggle datasets download -d usuario/dataset |
Descargar dataset |
uvx kaggle datasets create -p carpeta/ --dir-mode zip |
Publicar dataset nuevo (el MCP no puede hacer esto) |
uvx kaggle datasets version -p carpeta/ -m "v2: cambios" |
Publicar nueva versión |
uvx kaggle datasets metadata -p carpeta/ |
Descargar/actualizar metadata |
uvx kaggle models create |
Crear modelo vacío |
uvx kaggle models instances create -p carpeta/ |
Subir archivos del modelo (el MCP no puede hacer esto) |
uvx kaggle kernels push |
Subir/ejecutar un notebook |
uvx kaggle kernels list |
Listar notebooks |
uvx kaggle competitions list |
Listar competencias |
uvx kaggle competitions download -c nombre |
Descargar datos de competencia |
Recuerda: el MCP de Kaggle sirve para buscar y descargar. Para publicar datasets/modelos nuevos o subir archivos a un modelo, necesitas el CLI.
| Comando | Uso |
|---|---|
uvx huggingface-cli login |
Login interactivo (pega tu token hf_...) |
uvx huggingface-cli whoami |
Ver usuario logueado |
uvx huggingface-cli logout |
Cerrar sesión |
El despliegue a Spaces del curso se hace con scripts de Python que usan
HfApi(versalary-predictor/deploy_to_hf.py), no con comandos CLI directos. Solo necesitas ellogino la variable de entornoHF_TOKENconfigurada.
No los invocas tú directamente; Kiro los lanza cuando carga el Power. Solo debes tenerlos instalados:
| Comando | Uso |
|---|---|
node --version |
Verificar Node |
npx --version |
Verificar npx |
npx -y mcp-remote <url> |
(Lo ejecuta Kiro internamente) |
| Comando | Uso |
|---|---|
uv run python app.py |
Levantar app Gradio local |
uv run python server.py |
Levantar MCP Server FastMCP |
uv run python -c "import gradio; print(gradio.__version__)" |
Verificar versión exacta de Gradio (crítico para HF Spaces) |
| Comando | Uso |
|---|---|
$env:HF_TOKEN = "hf_..." |
Definir variable solo para esta sesión |
[System.Environment]::SetEnvironmentVariable("HF_TOKEN","hf_...","User") |
Definir variable permanente de usuario |
echo $env:HF_TOKEN |
Ver valor actual |
$env:TAVILY_API_KEY = "tvly-..." |
Tavily en sesión actual |
$env:KAGGLE_API_TOKEN = "KGAT_..." |
Token KGAT para deploys (no para el CLI) |
| Comando | Uso |
|---|---|
cd C:\dev\mi-proyecto |
Cambiar de carpeta |
ls (alias de Get-ChildItem) |
Listar archivos |
mkdir carpeta |
Crear carpeta |
mkdir carpeta -Force |
Crear carpeta (sin error si ya existe) |
Remove-Item archivo |
Borrar archivo |
Remove-Item -Recurse -Force carpeta |
Borrar carpeta completa |
Copy-Item origen destino |
Copiar archivo |
Move-Item origen destino |
Mover/renombrar archivo |
Get-Content archivo.json |
Ver contenido de archivo (equivale a cat) |
Test-Path $HOME\.kaggle\kaggle.json |
Verificar si existe un archivo |
Set-Location $HOME |
Ir al home del usuario (equivale a cd ~) |
No marcaste "Add to PATH" al instalar Python. Desinstala desde Configuración → Aplicaciones, busca Python, desinstálalo y reinstala marcando la casilla.
Cerraste PowerShell antes de instalar o abriste una terminal vieja. Cierra todas las terminales de PowerShell (incluyendo las de Kiro) y abre una nueva.
La política de ejecución bloquea scripts. Ejecuta una PowerShell como administrador:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserSi tu usuario de Windows tiene espacios (ej: C:\Users\Juan Perez\), siempre encierra rutas entre comillas:
cd "C:\Users\Juan Perez\Documents\proyecto"Mejor aún: crea una carpeta sin espacios para todo el curso, como C:\dev\ml-curso.
Tu archivo kaggle.json no está en C:\Users\TuUsuario\.kaggle\. Verifica con:
Test-Path $HOME\.kaggle\kaggle.jsonSi devuelve False, vuelve al paso 8.
El nombre de licencia en tu dataset-metadata.json está mal. Debe ser "Apache 2.0" con espacio, NO "Apache-2.0" con guión. Esto es un detalle específico del CLI de Kaggle.
- Verifica que tu token empieza con
KGAT_. Si empieza con otra cosa, generaste el token equivocado (es el "Generate New Token", no el "Create New API Token"). - Revisa
mcp.jsondel Power: no debe quedarYOUR_KAGGLE_TOKENni comillas mal puestas. - Reinicia Kiro.
En Windows no necesitas brew install libomp (eso es solo para macOS). Simplemente uv add xgboost debe bastar. Si falla, asegúrate de usar Python 64-bit (no 32-bit).
Normal. npx descarga el paquete MCP en la primera llamada. Las siguientes son rápidas. Si tarda más de 5 minutos, revisa tu conexión o firewall.
- Verifica que clonaste el repo en la ruta exacta:
C:\Users\TuUsuario\.kiro\powers\data-science-assistant\. - Debe contener
POWER.mdymcp.json. - Reinicia Kiro (no solo recargar la ventana: ciérralo completo y ábrelo de nuevo).
Si tienes OneDrive sincronizando tu carpeta de usuario, a veces mueve o bloquea archivos. Solución: pausar OneDrive mientras trabajas en el curso o mover el workspace a C:\dev\ fuera del área sincronizada.
Windows tiene un límite histórico de 260 caracteres en rutas. Activa rutas largas:
- Abre Editor del Registro (
regedit). - Navega a
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem. - Cambia
LongPathsEnableda1. - Reinicia.
Alternativa simple: crea carpetas cortas (C:\dev\) para tus proyectos.
Si en clase el profesor o la documentación usan comandos de Linux/macOS, aquí la traducción:
| macOS / Linux | Windows PowerShell |
|---|---|
~ o $HOME |
$HOME |
export VAR=valor |
$env:VAR = "valor" (temporal) |
export VAR=valor (permanente) |
[System.Environment]::SetEnvironmentVariable("VAR","valor","User") |
ls -la |
Get-ChildItem -Force (o ls) |
cat archivo |
Get-Content archivo (o cat) |
cp src dst |
Copy-Item src dst (o cp) |
mv src dst |
Move-Item src dst (o mv) |
rm archivo |
Remove-Item archivo (o rm) |
rm -rf carpeta |
Remove-Item -Recurse -Force carpeta |
mkdir -p a/b/c |
mkdir a\b\c -Force |
chmod 600 archivo |
No aplica (ignora el comando) |
source .venv/bin/activate |
No lo necesitas: uv run activa automáticamente |
/ en rutas |
\ en rutas (aunque / casi siempre funciona también) |