> For the complete documentation index, see [llms.txt](https://kiwi-8.gitbook.io/kiwi-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kiwi-8.gitbook.io/kiwi-docs/skills-y-mcp.md).

# Skills y MCP

Dos formas de ampliar lo que sabe hacer Kiwi: las **skills** le dan instrucciones para una tarea concreta, y los **servidores MCP** le dan herramientas nuevas.

## Skills

Una skill es un fichero Markdown con instrucciones para un tipo de tarea: cómo revisar un cambio, cómo escribir un commit, cómo investigar en la web. El agente la carga con `load_skill` cuando la tarea encaja con su descripción, así que no ocupa contexto hasta que hace falta.

### Las que trae Kiwi

| Skill             | Qué hace                                                                                                                                                         |
| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `code-review`     | revisa los cambios buscando fallos, reutilización y simplificaciones; da `fichero:línea` y un caso que falla, pero no aplica arreglos                            |
| `security-review` | revisa los cambios buscando problemas de seguridad explotables: inyección, secretos, autenticación, SSRF, path traversal…                                        |
| `commit`          | escribe el mensaje de commit a partir de lo que está en stage, y separa en varios commits lo que no tiene que ver                                                |
| `test`            | compila y ejecuta los tests, lee los fallos y los arregla; aprende los comandos reales del repo una vez                                                          |
| `plan`            | escribe un plan de implementación en un `PLAN-*.md`, con decisiones razonadas y anclado a `fichero:línea`                                                        |
| `init`            | escribe o actualiza `KIWI.md` / `AGENTS.md` leyendo antes el proyecto                                                                                            |
| `reach`           | investiga fuera del repositorio: búsqueda, webs con JavaScript, YouTube, GitHub, RSS, Reddit y X (ver [Herramientas](/kiwi-docs/herramientas.md#la-skill-reach)) |

Todas son invocables: aparecen como comandos con su nombre (`/code-review`, `/commit`, `/test`…), además de cargarse solas cuando el agente las necesita.

### Dónde viven

En `~/.config/kiwi/skills/`, un fichero `.md` por skill, **fuera de cualquier repositorio**. Kiwi copia ahí las suyas al arrancar.

Puedes editarlas: **un fichero que hayas tocado nunca se sobrescribe**. Al actualizar Kiwi, una skill de serie solo se refresca si en disco sigue exactamente la versión que Kiwi escribió; en cuanto la cambias, pasa a ser tuya.

### Escribir una

```markdown
---
name: release-notes
description: Redacta las notas de la release a partir de los commits desde el último tag.
user-invocable: true
---
# Notas de la release

1. `git describe --tags --abbrev=0` para el último tag.
2. ...
```

| Campo            | Para qué                                                            |
| ---------------- | ------------------------------------------------------------------- |
| `name`           | el nombre de la skill y de su comando                               |
| `description`    | lo que lee el agente para decidir si la carga: di **cuándo** usarla |
| `user-invocable` | si aparece como `/comando` en la interfaz                           |

Un fichero sin cabecera válida se ignora, sin tumbar las demás. `/skill` las lista y las gestiona desde la interfaz.

## Servidores MCP

Un servidor [MCP](https://modelcontextprotocol.io) aporta herramientas nuevas: una base de datos, un issue tracker, un navegador. Sus herramientas pasan por el mismo [modo de permiso](/kiwi-docs/modos-de-permiso.md) que las nativas: en `work` se ejecutan solas, en `ask` preguntan.

La forma fácil es `/mcp`, que los añade, lista y quita desde la interfaz. Por debajo se guardan en `~/.config/kiwi/mcp.json`, fuera del repositorio:

```json
{
  "github": {
    "command": "npx",
    "args": ["-y", "@modelcontextprotocol/server-github"],
    "env": { "GITHUB_TOKEN": "..." }
  },
  "docs": {
    "url": "https://example.com/mcp",
    "type": "http",
    "headers": { "Authorization": "Bearer ..." }
  }
}
```

Cada servidor es **local** o **remoto**, nunca las dos cosas:

| Tipo          | Campos                                                                |
| ------------- | --------------------------------------------------------------------- |
| local (stdio) | `command`, y opcionalmente `args` y `env`                             |
| remoto        | `url`, `type` (`http` por defecto, o `sse`) y opcionalmente `headers` |

Si un servidor no arranca, el resto sigue funcionando y el error dice cuál falló. `kiwi doctor` lista los que tienes configurados.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://kiwi-8.gitbook.io/kiwi-docs/skills-y-mcp.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
