# Herramientas · Cursos

> Herramientas MCP para cursos: listar y ver cursos con módulos y lecciones, montar un curso entero con el producto que lo vende, editar y eliminar el curso, añadir, editar, mover y eliminar módulos y lecciones, y el lado del alumno: matrícula y progreso.

Montar y mantener cursos: un curso entero en una sola llamada (espacio, módulos, lecciones y el producto de venta), la portada y el estado, y después los módulos y las lecciones: añadir, renombrar, cambiar el orden, llevar una lección a otro módulo y eliminar. Quien es alumno se matricula y marca su progreso desde la conversación. El contenido de cada lección (texto, vídeo) todavía se añade desde el panel.

Cada herramienta lleva un sello: <span class="tool-kind tool-kind-read">Solo consulta</span> no cambia nada, <span class="tool-kind tool-kind-write">Modifica</span> crea o cambia algo al momento, y <span class="tool-kind tool-kind-confirm">Pide confirmación</span> solo actúa después de tu sí a un resumen. Consulta [Dinero y confirmación](/mcp/dinheiro-e-confirmacao).

## En resumen

| Herramienta | Qué hace | Rol mínimo | Tipo |
|---|---|---|---|
| [`list_courses`](#list-courses) | Cursos de la comunidad | Cualquiera | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`get_course`](#get-course) | Un curso con módulos y lecciones | Cualquiera | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`create_course`](#create-course) | Espacio, curso, módulos, lecciones y el producto, de una vez | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`update_course`](#update-course) | Edita un curso, la portada y el estado | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`create_course_module`](#create-course-module) | Añade un módulo a un curso | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`create_lesson`](#create-lesson) | Añade una lección a un módulo | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`update_course_module`](#update-course-module) | Renombra un módulo o cambia su posición | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`update_lesson`](#update-lesson) | Cambia una lección, o la lleva a otro módulo | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`delete_course_module`](#delete-course-module) | Elimina un módulo con sus lecciones | Administrador | <span class="tool-kind tool-kind-confirm">Pide confirmación</span> |
| [`delete_lesson`](#delete-lesson) | Elimina una lección | Administrador | <span class="tool-kind tool-kind-confirm">Pide confirmación</span> |
| [`delete_course`](#delete-course) | Elimina un curso | Administrador | <span class="tool-kind tool-kind-confirm">Pide confirmación</span> |
| [`enroll_in_course`](#enroll-in-course) | Te matricula en un curso publicado | Miembro (no Finanzas) | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`complete_lesson`](#complete-lesson) | Registra tu progreso en una lección | Miembro (no Finanzas) | <span class="tool-kind tool-kind-write">Modifica</span> |

## `list_courses`

<span class="tool-kind tool-kind-read">Solo consulta</span>

**Listar cursos.** Los cursos de la comunidad. *Rol mínimo: cualquiera.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `space_id` | id | No | Solo los cursos de un espacio de cursos |

**Devuelve:** los cursos, con id, slug, título, nivel y estado.

**Pídelo así:** *"¿Qué cursos existen ya?"*

## `get_course`

<span class="tool-kind tool-kind-read">Solo consulta</span>

**Ver curso con módulos y lecciones.** Un curso con la estructura completa. *Rol mínimo: cualquiera.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `course` | texto | Sí | El id o el slug del curso |

**Devuelve:** el curso, los módulos (con el id que pide `create_lesson`) y las lecciones de cada módulo.

**Pídelo así:** *"Muéstrame la estructura del curso Excel desde Cero."*

## `create_course`

<span class="tool-kind tool-kind-write">Modifica</span>

**Crear curso completo.** Espacio de Cursos → curso → módulos → lecciones → (opcional) el producto que da acceso al espacio. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `title` | texto, hasta 255 | Sí | El título del curso |
| `description` | texto simple | No | Sin formato: las marcas de Markdown se eliminan |
| `level` | `beginner`, `intermediate`, `advanced` | No | Por defecto: `beginner` |
| `space_id` | id | No | Un espacio de Cursos que ya existe |
| `section_id` | id | No | Dónde crear el espacio, si no se indica `space_id` |
| `space_title` | texto | No | Por defecto: el título del curso |
| `icon` | uno de los iconos de la lista | No | El icono del espacio creado. Consulta [Iconos](/mcp/ferramentas-comunidade#iconos) |
| `image_url` | enlace | No | La portada del curso. Consulta [Imágenes](/mcp/ferramentas#imagenes) |
| `modules` | lista, hasta 30 | No | Cada uno con `title` (obligatorio) y `lessons` |
| `sale` | objeto | No | El producto que vende el curso (ver más abajo) |
| `idempotency_key` | texto, hasta 100 | No | |

Cada **módulo** tiene `title` y `lessons`, una lista de hasta 50, y cada **lección** tiene `title` (obligatorio), `type` (`text`, `video`, `link`, `image`; por defecto `text`) y `duration` (p. ej.: *12 min*).

La **venta** (y la **entrada**, en `create_event`):

| Campo | Tipo | Descripción |
|---|---|---|
| `price` | número, en reales | Obligatorio |
| `title` | texto, de 3 a 255 | Por defecto: el título del curso (o *Ingresso — título del evento*) |
| `type` | `ONE_TIME`, `INSTALLMENT`, `SUBSCRIPTION` | Por defecto: `ONE_TIME` (suelto) |
| `interval` | `MONTHLY`, `YEARLY` | Solo en `SUBSCRIPTION` |
| `max_installments` | 1 a 12 | Hasta cuántas cuotas con tarjeta |
| `stock` | número | Cantidad a la venta |
| `direct_link` | sí o no | Vendible por enlace directo |
| `publish` | sí o no | Ponerlo a la venta ya. Por defecto: borrador |

**Devuelve:** el espacio (y si se creó ahora), el curso (id, título, slug, estado), los módulos con las lecciones, y el producto (id, título, precio, estado), si lo hay.

**Pídelo así:** *"Monta el curso Excel desde Cero en el espacio de cursos, con los módulos Fundamentos, Fórmulas y Tablas dinámicas, 3 lecciones de vídeo en cada uno, y un producto de R$ 297 en hasta 10 cuotas, en borrador."*

**Notas:** las lecciones guardan título, tipo y duración; el contenido se añade desde el panel. El producto da acceso al espacio del curso a quien lo compra.

## `update_course`

<span class="tool-kind tool-kind-write">Modifica</span>

**Editar curso.** Cambia el título, la descripción, el nivel, el estado (`draft`, `published`, `archived`) y la portada. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `course` | id, slug o enlace | Sí | |
| `title`, `description` | texto | No | |
| `level` | `beginner`, `intermediate`, `advanced` | No | |
| `status` | `draft`, `published`, `archived` | No | |
| `image_url` o `image_base64` | enlace o archivo | No | La portada nueva |

**Pídelo así:** *"Publica el curso Excel desde Cero y cambia la portada por esta."*

**Notas:** los módulos y las lecciones se cambian con [`update_course_module`](#update-course-module), [`update_lesson`](#update-lesson) y las herramientas de eliminación.

## `create_course_module`

<span class="tool-kind tool-kind-write">Modifica</span>

**Añadir módulo a un curso.** Añade un módulo al final de un curso que ya existe. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `course_id` | id | Sí | De `list_courses` o `create_course` |
| `title` | texto | Sí | |

**Devuelve:** el módulo creado, con el id que pide `create_lesson`.

**Pídelo así:** *"Añade el módulo Gráficos al curso Excel desde Cero."*

**Notas:** para renombrarlo o cambiar su posición después, [`update_course_module`](#update-course-module).

## `create_lesson`

<span class="tool-kind tool-kind-write">Modifica</span>

**Añadir lección a un módulo.** Añade una lección al final de un módulo. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `module_id` | id | Sí | De `get_course` |
| `title` | texto | Sí | |
| `type` | `text`, `video`, `link`, `image` | No | Por defecto: `text` |
| `duration` | texto | No | P. ej.: *12 min* |

**Devuelve:** la lección creada.

**Pídelo así:** *"En el módulo Gráficos, crea las lecciones Gráfico de líneas (8 min) y Gráfico circular (6 min), las dos de vídeo."*

**Notas:** la lección guarda título, tipo y duración. El contenido (el texto, el vídeo) todavía no lo guarda el MCP: se añade desde el panel.

## `update_course_module`

<span class="tool-kind tool-kind-write">Modifica</span>

**Editar módulo del curso.** Renombra un módulo o cambia su posición. Solo cambia lo que se envía. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `module_id` | id | Sí | De `get_course` |
| `title` | texto, hasta 255 | No | |
| `order` | número, desde 0 | No | La posición en el curso |

**Pídelo así:** *"Cambia el nombre del módulo Fórmulas a Fórmulas esenciales y ponlo en segundo lugar."*

## `update_lesson`

<span class="tool-kind tool-kind-write">Modifica</span>

**Editar clase.** Cambia el título, el tipo, la duración o la posición de una lección, o la lleva a otro módulo del mismo curso. Solo cambia lo que se envía. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `lesson_id` | id | Sí | De `get_course` |
| `title` | texto, hasta 255 | No | |
| `type` | `text`, `video`, `link`, `image` | No | |
| `duration` | texto | No | P. ej.: *12 min* |
| `order` | número, desde 0 | No | La posición en el módulo |
| `module_id` | id | No | Lleva la lección a este módulo (del mismo curso). Sin `order`, va al final |

**Pídelo así:** *"Pasa la lección Gráfico circular al módulo Fundamentos, como última lección."*

**Notas:** el contenido de la lección sigue añadiéndose desde el panel.

## `delete_course_module`

<span class="tool-kind tool-kind-confirm">Pide confirmación</span>

**Eliminar módulo del curso.** Elimina un módulo y todas sus lecciones. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `module_id` | id | Sí | De `get_course` |
| `course` | id, slug o enlace | No | El curso, para que el resumen muestre el nombre del módulo y de las lecciones |

**Notas:** el progreso de quien ya las vio se conserva.

## `delete_lesson`

<span class="tool-kind tool-kind-confirm">Pide confirmación</span>

**Eliminar clase.** *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `lesson_id` | id | Sí | De `get_course` |
| `course` | id, slug o enlace | No | El curso, para que el resumen muestre el nombre de la lección |

**Notas:** el progreso de quien ya la vio se conserva.

## `delete_course`

<span class="tool-kind tool-kind-confirm">Pide confirmación</span>

**Eliminar curso.** El curso se archiva y sale del feed. *Rol mínimo: administrador.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `course` | id, slug o enlace | Sí | |

**Devuelve:** en la primera llamada, el título, cuántos módulos y cuántas matrículas tiene el curso, y el código de confirmación.

## `enroll_in_course`

<span class="tool-kind tool-kind-write">Modifica</span>

**Inscribirse en el curso.** Te matricula en un curso publicado. *Rol: propietario, administrador, moderador o miembro.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `course` | id, slug o enlace | Sí | |

**Pídelo así:** *"Matricúlame en el curso Excel desde Cero."*

## `complete_lesson`

<span class="tool-kind tool-kind-write">Modifica</span>

**Registrar progreso en la clase.** Marca una lección como completada, o registra un porcentaje, en un curso en el que estás matriculado. *Rol: propietario, administrador, moderador o miembro.*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `course` | id, slug o enlace | Sí | |
| `lesson_id` | id | Sí | De `get_course` |
| `completed` | sí o no | No | Por defecto, sí |
| `progress_percent` | de 0 a 100 | No | |

**Pídelo así:** *"Marca como vista la lección Fórmulas básicas."*

## Relacionados

- [Herramientas](/mcp/ferramentas)
- [Recetas](/mcp/receitas)
- [Dinero y confirmación](/mcp/dinheiro-e-confirmacao)
