Skills, Hooks y MCP en Claude Code: las tres capas para extenderlo
Claude Code de fábrica ya lee tu código, edita archivos y corre comandos. Las skills, los hooks y el MCP son las tres capas que lo convierten en una herramienta a tu medida: las skills le enseñan procedimientos repetibles, los hooks le imponen reglas que no puede saltarse, y el MCP lo conecta a tus herramientas externas. Esta guía explica qué hace cada una y cuándo usarla.
Son tres piezas distintas que se confunden seguido. La regla rápida: skills = capacidades, hooks = garantías, MCP = conexiones.
¿Qué es una skill en Claude Code?
Una skill es una carpeta dentro de .claude/skills/ (local al proyecto) o ~/.claude/skills/ (global) con, como mínimo, un archivo SKILL.md que define un nombre, una descripción y un prompt de sistema. La descripción es la pieza clave: el modelo la lee al iniciar la sesión y decide solo, ante cada tarea, si esa skill aplica.
El ejemplo típico: creas una skill "PR Formatter" cuya descripción dice "usar al generar pull requests". Cuando le pides "armame el PR", Claude Code la activa sin que tengas que nombrarla. También puedes invocarla explícitamente con /nombre-skill, igual que un slash command.
Lo que distingue a las skills es el Progressive Disclosure (revelación progresiva). Una skill puede crecer a un paquete con archivos de referencia, ejemplos y plantillas:
.claude/skills/
└── pr-formatter/
├── SKILL.md # único que se carga al inicio
├── examples.md # se carga bajo demanda
└── reference/
└── estilo.md
Solo SKILL.md se carga al arrancar. El resto se trae cuando el modelo decide que lo necesita para la tarea concreta. Tu contexto se mantiene limpio: si el proyecto es TypeScript, la skill no carga la referencia de Python.
Cuándo usar una skill: tareas plantilla con outputs estandarizados que produces en serie (formatear PRs, generar release notes, adaptar un mensaje a varias redes). Si quieres que el resultado sea consistente y que el modelo decida solo cuándo aplicarlo, es una skill.
¿Qué es un hook en Claude Code?
Hay reglas que escribes en tu CLAUDE.md y el modelo cumple el 90% del tiempo. El problema es el otro 10%: una sesión larga, el modelo distraído, y de pronto edita el archivo que dijiste que no, o corre el comando peligroso. Un fallo en cincuenta basta para hacer un destrozo.
Un hook sube esa regla del plano del prompt al plano del runtime. Donde una instrucción en CLAUDE.md es un recordatorio amable, un hook es un guardia obligatorio. Claude Code emite eventos en su ciclo de vida (va a usar una herramienta, termina una respuesta, recibe un prompt) y, si declaraste un hook para ese evento en settings.json, lo ejecuta y respeta su decisión. No depende del criterio del modelo.
Los cuatro eventos más usados:
PreToolUse: antes de que el modelo invoque una herramienta. Tu hook puede aprobar, modificar o bloquear la acción.PostToolUse: después de que la herramienta terminó. Útil para encadenar (formatear el código después de cada edición, por ejemplo).Stop: cuando el modelo decide terminar el turno.UserPromptSubmit: cuando escribes un prompt, antes de que el modelo lo lea.
La regla técnica que conviene recordar: en un hook de comando, exit code 2 bloquea la acción (y su stderr vuelve al modelo como error); exit code 0 deja pasar el flujo normal. Es control determinístico: la regla se cumple siempre, no "casi siempre".
Cuándo usar un hook: cuando una regla es crítica y no admite el 10% de fallo (proteger archivos, vetar comandos peligrosos), o cuando quieres automatizar un paso repetitivo sin depender de la memoria del modelo.
¿Qué es el MCP en Claude Code?
De fábrica, Claude Code vive en un perímetro acotado: tu proyecto, tu shell, la web. Fuera de ahí queda tu stack real: la base de datos, los dashboards, el CRM, el issue tracker. El MCP (Model Context Protocol) rompe ese perímetro. Es un estándar abierto que define cómo un agente se conecta a herramientas externas con un protocolo común.
Cuando conectas un servidor MCP, Claude Code descubre las tools que expone y las usa como si fueran nativas. A partir de ahí puedes pedirle cosas como "abre un issue en GitHub con este resumen" o "corre esta query en la base de staging", sin copiar y pegar ni perder contexto. Los servidores se gestionan con /mcp.
La arquitectura tiene tres capas: el servicio externo (tu base de datos, tu CRM), el servidor MCP que traduce su API al protocolo, y Claude Code como cliente. Hay servidores oficiales mantenidos por las empresas, otros de la comunidad y los que escribes tú.
Cuándo usar MCP: cuando un workflow real necesita datos o acciones de un sistema externo de forma recurrente. Un consejo del propio libro: los MCP son opcionales, conéctalos solo cuando un flujo concreto los pida, no "por si acaso". Cada conexión extra es más superficie y más ruido.
¿Cuándo usar skill, hook o MCP?
| Necesitas... | Usa |
|---|---|
| Estandarizar un output que produces en serie | Skill |
| Garantizar que una regla se cumpla siempre | Hook |
| Conectar Claude Code a un sistema externo | MCP |
No son excluyentes: un workflow maduro suele combinar las tres. Una skill genera el PR, un hook corre el formatter después de cada edición, y un MCP abre el issue en tu tracker. Y para las tareas pesadas de exploración, se suman los subagentes, que cubrimos aparte.
La sintaxis exacta de cada pieza (frontmatter de skills, claves de settings.json para hooks, transporte y scope de MCP) está en la documentación oficial de Claude Code, que conviene tener cerca al configurarlas.
Preguntas frecuentes
¿Cuál es la diferencia entre skills, hooks y MCP en Claude Code?
Son tres capas distintas. Las skills enseñan al modelo procedimientos repetibles que activa por su cuenta. Los hooks suben una regla del prompt al runtime: se cumplen siempre, no dependen del criterio del modelo. El MCP conecta Claude Code a herramientas externas. Regla rápida: skills = capacidades, hooks = garantías, MCP = conexiones.
¿Qué es una skill en Claude Code?
Una skill es una carpeta en .claude/skills/ con al menos un archivo SKILL.md que define nombre, descripción y prompt de sistema. El modelo lee la descripción al iniciar la sesión y activa la skill cuando la tarea encaja. También se puede invocar explícitamente como slash command usando el nombre de la skill.
¿Qué hace un hook y en qué se diferencia de CLAUDE.md?
Un hook ejecuta código externo en eventos del ciclo de vida de Claude Code: PreToolUse, PostToolUse, Stop y UserPromptSubmit. A diferencia de una instrucción en CLAUDE.md, que el modelo puede ignorar bajo presión, un hook es determinístico: exit code 2 bloquea la acción siempre; exit code 0 la deja pasar.
¿Qué es el MCP (Model Context Protocol)?
MCP es un estándar abierto que define cómo Claude Code se conecta a herramientas externas. Cuando se conecta un servidor MCP, Claude Code descubre las herramientas que expone y las usa como si fueran nativas: bases de datos, CRMs, issue trackers. Los servidores se gestionan con /mcp. Hay servidores oficiales, de comunidad y personalizados.
¿Cuándo usar cada capa: skill, hook o MCP?
Skill cuando se necesita estandarizar un output que se produce en serie y el modelo debe decidir solo cuándo aplicarlo. Hook cuando una regla es crítica y no admite excepciones (proteger archivos, vetar comandos). MCP cuando un flujo real necesita datos o acciones de un sistema externo de forma recurrente.
Recursos relacionados
- Vuelve a la guía completa para dominar Claude Code.
- Para tareas pesadas que saturan tu contexto, mira los subagentes en Claude Code.
- El criterio detrás de todo esto es la ingeniería de contexto.
Lleva los comandos contigo
Los comandos de skills, hooks y MCP (/mcp, /plugin, find-skills, los eventos de ciclo de vida) y decenas más están en la Cheat Sheet de Claude Code: una hoja imprimible, en español, con lo que más se consulta bajo presión.
Descargar la Cheat Sheet gratis
Es el resumen de Ship with Claude Code, la guía de Takren (14 módulos, 190 capítulos, actualizaciones gratuitas).