# Plan, peticiones de ampliación y llamadas por MCP

La herramienta org_plan: consultar el plan y la bolsa de IA, pedir que se amplíe el plan y reservar una videollamada de 15 minutos con UTILIA, con sus scopes y confirmaciones.

La herramienta `org_plan` deja que un asistente consulte el plan de tu organización, pida que se amplíe y reserve una videollamada de 15 minutos con una persona de UTILIA. Está en todos los servidores con el mismo contrato y no depende de ningún aplicativo contratado: el plan se puede consultar y ampliar precisamente cuando falta algo.

Son las mismas acciones que en la aplicación explican [Pedir que se amplíe el plan](https://os.utilia.ai/docs/guides/plan/request-upgrade) y [Reservar 15 minutos con UTILIA](https://os.utilia.ai/docs/guides/plan/book-a-call).

## Consultar el plan

| Operación | Qué devuelve | Permiso | Scope |
| - | - | - | - |
| `get` | El plan contratado y los aplicativos y capacidades del área del servidor, con su estado. | `SETTINGS_ORGANIZATION_VIEW` (Ver organización) | `org:plan:view` |
| `ai_usage` | El consumo de la bolsa de IA, en porcentaje, y el saldo adicional comprado, en céntimos de euro. | `SETTINGS_ORGANIZATION_VIEW` (Ver organización) | `org:plan:view` |

`get` devuelve también `pricing`, con la cuota que se cobra cada periodo. Si la organización tiene el precio de la lista de espera, `pricing.waitlistPrice` lo dice, con lo que cuesta al mes con él y sin él (`effectiveMonthlyCents` y `listMonthlyCents`, en céntimos de euro), y su campo `losesOnCancel` vale `true` cuando darse de baja haría perderlo porque la suscripción ya se ha cobrado; sin ese precio, `waitlistPrice` llega a `null`.

## Pedir que se amplíe el plan

| Operación | Qué hace | Permiso | Scope | `confirm` |
| - | - | - | - | - |
| `request_upgrade` | Pide a quien administra la cuenta que amplíe el plan para una capacidad, un aplicativo o un plan. | Ninguno | `org:plan:request` | no |
| `list_my_requests` | Lista tus peticiones. | Ninguno | `org:plan:request` | no |
| `withdraw_upgrade_request` | Retira una petición tuya. | Ninguno | `org:plan:request` | no |
| `list_requests` | Lista las peticiones del equipo. | `SETTINGS_ORGANIZATION_VIEW` (Ver organización) | `org:plan:view` | no |
| `dismiss_request` | Cierra una petición del equipo, con un motivo para quien la hizo. | `SETTINGS_ORGANIZATION_EDIT` (Editar organización) | `org:plan:manage_requests` | no |

Las tres operaciones de quien pide no exigen permiso: cualquiera puede pedir una ampliación, y solo puede ver y retirar las suyas. `list_my_requests` es una lectura, pero va bajo `org:plan:request`, el mismo scope que pedir, para que un token de solo lectura no se entere de lo que ha pedido su dueño.

`request_upgrade` y `dismiss_request` reciben siempre la pareja `targetKind` (`CAPABILITY`, `MODULE` o `PLAN`) y `targetKey`, la clave que devuelve `get`. `request_upgrade` devuelve en una sola respuesta el estado de la petición, si ha llegado a alguien que pueda ampliar el plan, si ya tenías una igual, cuántos compañeros lo han pedido y el enlace al escaparate: no hace falta llamar antes a `get`. Con `note` (hasta 500 caracteres) puedes explicar para qué lo necesitas.

## Reservar una videollamada con UTILIA

| Operación | Qué hace | Permiso | Scope | `confirm` |
| - | - | - | - | - |
| `list_sales_call_slots` | Horas libres para reservar. | Ninguno | `org:plan:view` u `org:plan:request` | no |
| `get_my_sales_call` | Tu cita, si tienes una. | Ninguno | `org:plan:view` u `org:plan:request` | no |
| `book_sales_call` | Reserva una hora o pide que te llamen. | Ninguno | `org:plan:request` | sí |
| `cancel_sales_call` | Cancela tu cita. | Ninguno | `org:plan:request` | sí |
| `reschedule_sales_call` | Cambia la hora de tu cita. | Ninguno | `org:plan:request` | sí |

Las tres escrituras ocupan o liberan la hora de una persona del equipo de UTILIA, por eso exigen `confirm: true`. Ninguna exige permiso, igual que en la aplicación.

**Reservar una videollamada por MCP**

1. **Consulta las horas libres** (list_sales_call_slots): Cada hora llega en ISO 8601 con desfase horario: usa una de ellas como start.
2. **Reserva con confirm: true** (book_sales_call): El servidor vuelve a comprobar la hora contra la agenda al reservar. Si no: llega SALES_CALL_UNAVAILABLE; repite con mode CALLBACK y tu teléfono.
3. **Recibes la cita** (Respuesta): Con el enlace para cambiarla o cancelarla.
4. **Te llega el enlace de entrada** (Correo): Cuando la sala está lista, no en la respuesta de la reserva.

El modo `CALLBACK`, con el teléfono en `phone`, solo existe al reservar, no al cambiar la hora, y no puedes tener dos citas vivas a la vez.

## Cómo se conceden los scopes

| Scope | Lo incluyen | No lo incluyen |
| - | - | - |
| `org:plan:view` | Los conjuntos `:read` y `:full` de todas las áreas | — |
| `org:plan:request` | Los conjuntos `:write` y `:full` | Los `:read`, porque pedir es escribir |
| `org:plan:manage_requests` | Solo los conjuntos `:full` | Los demás, porque cerrar la petición de un compañero es actuar sobre otra persona |

Estos tres scopes viajan con el token de cualquier servidor y, a diferencia de los de avisos, bastan por sí solos para entrar en él: un token que solo lleve `org:plan:view` puede consultar el plan desde cualquier servidor, aunque no vea ninguna otra herramienta.

## Lo que no está por MCP ni en los SDK

Estas acciones son de una persona con sesión iniciada: no están en la API externa con clave ni en los SDK, porque una clave de API no tiene a quién pedirle una ampliación ni puede asistir a una videollamada.

Las peticiones de plan generan avisos de la categoría `planRequests` («Peticiones de plan»), que puede ver cualquier persona y que se consultan y ajustan con la herramienta [`notifications`](https://os.utilia.ai/docs/developers/mcp/search-and-notifications).

## Siguiente paso

Si `get` muestra con candado lo que necesitas, pide la ampliación con `request_upgrade` y, si quieres resolver dudas antes de decidir, reserva la llamada con `book_sales_call`. Quien administra la cuenta ve las peticiones en «Peticiones de tu equipo», en Ajustes › [Mi plan](https://os.utilia.ai/dashboard/settings/my-plan). El catálogo completo de scopes está en [Scopes y recursos de OAuth](https://os.utilia.ai/docs/developers/oauth/scopes-and-resources).
