# Herramientas · Empresas

> Herramientas MCP de las empresas (con el bloque opcional de coworking, las ofertas y los datos de facturación): listar, registrar, editar y cerrar empresas, tu empresa con las suscripciones y los créditos, el equipo, invitar por correo, marcar al admin de la empresa y quitar.

Las [Empresas](/membros/empresas) con el asistente: registrar la empresa (y, en un coworking, su tipo, los planes y productos que puede contratar, los datos de facturación y las fechas), editar, cerrar, ver tu empresa, el equipo, invitar por correo, seguir, aceptar y rechazar invitaciones, marcar al admin de la empresa y quitar. Son **14 herramientas**.

> [!NOTE]
> Hasta el 2026-10-18 estas herramientas se llamaban `*_resident_company*` (por ejemplo `get_my_resident_company`). Los nombres antiguos ya no existen: el asistente que todavía los llama recibe "herramienta desconocida" y debe usar los nombres de esta página.

Cada herramienta lleva una etiqueta: <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. Ver [Dinero y confirmación](/mcp/dinheiro-e-confirmacao).

## En resumen

| Herramienta | Qué hace | Rol mínimo | Tipo |
|---|---|---|---|
| [`list_companies`](#list-companies) | Las empresas, con tipo, estado y tamaño del equipo | Moderador o financiero | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`get_company`](#get-company) | Una empresa | Moderador o financiero | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`get_my_company`](#get-my-company) | La empresa en la que estás, con el equipo y lo que tienes por ella | Cualquiera | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`create_company`](#create-company) | Registra una empresa, con el bloque de coworking opcional | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`update_company`](#update-company) | Edita el nombre y el bloque de coworking | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`close_company`](#close-company) | Cierra la empresa, con o sin el equipo | Administrador | <span class="tool-kind tool-kind-confirm">Pide confirmación</span> |
| [`list_company_members`](#list-company-members) | El equipo de una empresa | Cualquiera (la API comprueba el vínculo) | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`invite_company_member`](#invite-company-member) | Suma a alguien al equipo por correo | Cualquiera (la API comprueba el vínculo) | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`update_company_member`](#update-company-member) | Marca o quita al admin de la empresa | Administrador | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`remove_company_member`](#remove-company-member) | Quita a alguien del equipo | Cualquiera (la API comprueba el vínculo) | <span class="tool-kind tool-kind-confirm">Pide confirmación</span> |
| [`list_company_invitations`](#list-company-invitations) | Las invitaciones pendientes que envió el admin de la empresa | Cualquiera (la API comprueba el vínculo) | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`list_my_company_invitations`](#list-my-company-invitations) | Tus invitaciones de empresa | Cualquiera | <span class="tool-kind tool-kind-read">Solo consulta</span> |
| [`accept_company_invitation`](#accept-company-invitation) | Acepta tu invitación y entra en el equipo | Cualquiera (su invitación) | <span class="tool-kind tool-kind-write">Modifica</span> |
| [`decline_company_invitation`](#decline-company-invitation) | Rechaza tu invitación, de forma definitiva | Cualquiera (su invitación) | <span class="tool-kind tool-kind-confirm">Pide confirmación</span> |

Los roles son los de las rutas: el asistente nunca hace más de lo que la persona conectada haría en pantalla. El propietario y el administrador ven las 14; el moderador y el financiero, 10 (las dos de lectura del equipo de la comunidad y las ocho abiertas a cualquier rol); el miembro, 8 (`get_my_company`, `list_company_members`, `invite_company_member`, `remove_company_member`, `list_company_invitations`, `list_my_company_invitations`, `accept_company_invitation` y `decline_company_invitation`).

**Ocho herramientas aparecen para cualquier rol** porque el admin de una empresa suele ser un miembro común, y cualquiera puede recibir una invitación. La API decide por el vínculo: el equipo solo lo lee el equipo de la comunidad o la gente de la propia empresa, y solo invitan y quitan el propietario, el administrador o el admin de esa empresa (mientras está activa). Los demás reciben "sin permiso".

**La invitación del admin de la empresa depende de la aceptación.** Nunca vincula al momento, ni siquiera a quien ya es de la comunidad: la persona recibe la invitación por correo y solo entra en el equipo cuando la acepta (`accept_company_invitation`). El propietario y el administrador de la comunidad siguen vinculando directamente.

**El bloque de coworking queda con la gestión.** El tipo de residencia, las fechas, las ofertas (`offers`), los datos de facturación (`billing`) y el enlace de compra (`purchaseLink`) llegan al propietario, al administrador y al financiero; el moderador solo sabe si la empresa tiene coworking (`coworking`). `get_my_company` trae las ofertas y el enlace a todo el equipo, y la facturación solo al admin de la empresa.

**La empresa se suscribe y paga, pero no por el asistente.** Registrar las ofertas y los datos de facturación no cobra nada. La compra es del admin de la empresa, en la app, por el `purchaseLink` (el asistente nunca recibe tarjeta): el asistente entrega el enlace. Después, el admin de la empresa se ocupa del cobro con las herramientas de [Suscripciones](/mcp/ferramentas-assinaturas) (`list_my_subscriptions` y `list_my_purchases` con `company_id`, `pay_my_subscription_now`, `quote_my_add_on` y `add_my_add_on`, `quote_plan_change` y `change_my_plan`, `manage_my_subscription`), con PIX o boleto, y lee la cartera de créditos en [Créditos](/mcp/ferramentas-creditos) (`get_company_credit_balance`, `list_company_credit_entries`).

**Salir del equipo suspende el cobro.** Al quitar a alguien o cerrar la empresa con su equipo, el resumen avisa de que el cobro a la persona eliminada se suspende; la suscripción sigue registrada hasta que se cancele, lo que se hace en [Suscripciones](/mcp/ferramentas-assinaturas).

## `list_companies`

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

**Las empresas**, por nombre, con `coworking` (si el bloque de coworking está encendido), el estado (`active`, o `ended` cuando está cerrada o con la salida prevista en el pasado) y cuántas personas hay en el equipo. Las empresas no son miembros y nunca aparecen en las listas de miembros. El propietario, el administrador y el financiero reciben también el bloque (tipo de residencia, inicio y salida), la fecha de cierre, las ofertas, los datos de facturación y el `purchaseLink`, todo vacío con el coworking apagado; el moderador recibe solo `coworking`. *Rol mínimo: moderador (o financiero).*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `status` | `active` o `ended` | No | Filtra por estado |
| `search` | texto | No | Parte del nombre |

**Pídelo así:** *"¿Qué empresas están activas hoy?"*

## `get_company`

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

**Una empresa.** Con el bloque de coworking, las ofertas, los datos de facturación y el `purchaseLink` para el propietario, el administrador y el financiero, que reciben también las suscripciones de la empresa (`subscriptions`) y el saldo de la cartera de créditos (`credit_balance`); las compras de la empresa están en `list_purchases` (`buyer.companyId`). El moderador recibe solo `coworking`. Empresa de otra comunidad: "no encontrada". El admin de una empresa usa `get_my_company`. *Rol mínimo: moderador (o financiero).*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `company_id` | id | Sí | La empresa (de `list_companies`) |

**Pídelo así:** *"¿Acme está al día con el plan? ¿Cuántos créditos tiene?"*

## `get_my_company`

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

**Tu empresa.** La empresa en la que está la persona conectada si es admin de la empresa, el equipo y `canManageTeam`, verdadero para el admin de una empresa activa (falso una vez cerrada), además de las ofertas, `canPurchase` y `purchaseLink`. Para **cualquier persona del equipo** de una empresa activa trae `benefits`: lo que tiene por la empresa, sin precios. En `items`, los planes y productos activos de la empresa (suscripción o compra activa: `title`, `isPlan`, `kind`, `source`, `plan`) con los `spaces` y `contents` que habilita cada uno; en `credits`, el saldo de la cartera (`balance`) y el próximo vencimiento (`expiringSoon`). Con la empresa cerrada, `benefits` viene `null`. Para el admin de la empresa trae también los datos de facturación (`billing`), las suscripciones (`subscriptions`, con la renovación pendiente), las compras (`purchases`) y el saldo de créditos (`credit_balance`); con una suscripción atrasada, el siguiente paso sugerido es `pay_my_subscription_now`. Sin empresa, devuelve `company: null`; las invitaciones pendientes están en `list_my_company_invitations`. *Rol mínimo: cualquiera.*

Sin parámetros.

**Pídelo así:** *"¿Qué tengo por mi empresa?"* · *"¿Quién está en mi empresa?"* · *"¿La suscripción de mi empresa está al día?"*

## `create_company`

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

**Registrar una empresa.** Solo el nombre es obligatorio: sin los campos de coworking, la empresa es solo nombre y equipo. En el bloque de coworking, `offer_product_ids` lista los planes y productos que la empresa puede contratar (solo productos digitales) y `billing`, los datos de facturación. Aquí no se cobra nada y no pide confirmación: la respuesta trae el `purchaseLink`, la página en la que contrata el admin de la empresa, y el asistente entrega el enlace. Producto de otra comunidad: "no encontrado"; producto que no es digital: rechazado. La empresa no tiene acceso propio; las personas entran con `invite_company_member`. `parcel_notice_admins_only` hace que solo los admins de la empresa reciban el aviso de [paquete](/espacos/encomendas#paquetes-para-una-empresa) (por defecto: todos los empleados con acceso al espacio). *Rol mínimo: administrador (propietario o administrador).*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `name` | texto | Sí | El nombre, hasta 120 caracteres |
| `coworking` | verdadero/falso | No | Enciende o apaga el bloque de coworking. Omitido, se enciende cuando algún campo del bloque viene relleno |
| `residence_type` | `PRIVATE_OFFICE`, `FIXED_DESK` o `VIRTUAL_OFFICE` | No | Oficina privada, puesto fijo u oficina virtual |
| `offer_product_ids` | lista de ids, hasta 20 | No | Los planes y productos digitales que la empresa puede contratar (de `list_plans` o `list_products`) |
| `billing` | `legal_name`, `tax_id` (CNPJ), `email` | No | Los datos de facturación; cada campo es opcional y `null` lo borra |
| `starts_at` | AAAA-MM-DD | No | El inicio en el coworking |
| `ends_at` | AAAA-MM-DD | No | La salida prevista, no antes del inicio |
| `parcel_notice_admins_only` | verdadero/falso | No | Solo los admins de la empresa reciben el aviso de paquete (por defecto: falso) |

**Pídelo así:** *"Registra Acme Tecnologia en el coworking, oficina privada, desde el 1/11, con opción de contratar el plan Oficina privada mensual. Razón social Acme Tecnologia Ltda, e-mail de facturación financeiro@memberfy.net."* · *"Registra la empresa Gestoría Silva."*

## `update_company`

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

**Editar.** Solo lo que envíes: nombre, `coworking`, tipo, ofertas, datos de facturación, inicio o salida. La lista `offer_product_ids` enviada sustituye a la anterior (`[]` o `null` la vacía). `null` borra un campo del bloque; rellenar uno enciende el coworking; `coworking: false` lo apaga y borra el bloque entero. Para cerrar ahora, usa `close_company`. *Rol mínimo: administrador (propietario o administrador).*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `company_id` | id | Sí | La empresa |
| `name`, `coworking`, `residence_type`, `offer_product_ids`, `billing`, `starts_at`, `ends_at`, `parcel_notice_admins_only` | varios | No | Solo lo que cambie |

**Pídelo así:** *"Acme sale el 31/12. Actualiza la salida prevista."* · *"En Acme, avisa solo a los admins cuando llegue un paquete."*

## `close_company`

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

**Cerrar la empresa ahora.** La empresa deja de aceptar invitaciones, de dar acceso al equipo y de cobrarse; el registro y el bloque de coworking se conservan. No hay reapertura. Con `remove_members` (por defecto: verdadero), todos salen del equipo, y quien entró en la comunidad por la empresa y sigue siendo miembro sale también de la comunidad. El resumen lista quién sale y avisa de que su cobro se suspende y la suscripción sigue registrada hasta que se cancele. Empresa ya cerrada: rechazado. La primera llamada devuelve el resumen y el código de confirmación. *Rol mínimo: administrador (propietario o administrador).*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `company_id` | id | Sí | La empresa |
| `remove_members` | verdadero/falso | No | Por defecto: verdadero. Falso mantiene el equipo vinculado a la empresa cerrada |

**Pídelo así:** *"Cierra Acme y quita a su equipo."*

## `list_company_members`

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

**El equipo de una empresa**, con los admins primero: nombre, cargo, si es admin de la empresa, si entró por la empresa y, para el equipo de la comunidad y el admin de la empresa, el correo. Lo lee el equipo de la comunidad o la gente de la propia empresa. *Rol mínimo: cualquiera (la API comprueba el vínculo).*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `company_id` | id | Sí | La empresa (de `list_companies` o `get_my_company`) |

**Pídelo así:** *"Muéstrame el equipo de Acme."*

## `invite_company_member`

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

**Sumar al equipo por correo.** Por el **propietario o administrador**, vincula al momento: quien ya está en la comunidad solo recibe el vínculo, sin correo (`linked`); quien no está entra en la comunidad como miembro y **recibe la invitación por correo** (`invited`): el asistente lo avisa antes. Por el **admin de la empresa**, nunca vincula: la respuesta es siempre `invited` con `pending: true` y el `invitation_id`, sea quien sea la persona, y el asistente dice *"Invitación enviada. La persona entra en el equipo cuando la acepte."*, sin afirmar si ya era de la comunidad. Se rechaza si la comunidad no está aceptando nuevos miembros, si la persona pidió no participar, si ya está en este equipo o si la empresa está cerrada; para el propietario y el administrador, también si ya está en otra empresa. Invitan el propietario, el administrador y el admin de esa empresa (mientras está activa); `is_admin` solo el propietario y el administrador. El admin de la empresa envía hasta 30 invitaciones por hora (por encima, 429 con `Retry-After`); el propietario y el administrador no tienen ese límite. *Rol mínimo: cualquiera (la API comprueba el vínculo).*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `company_id` | id | Sí | La empresa |
| `email` | texto | Sí | El correo de la persona |
| `name` | texto | No | El nombre, si la cuenta se crea ahora |
| `is_admin` | verdadero/falso | No | Entra ya como admin de la empresa (propietario o administrador) |

**Pídelo así:** *"Invita a joao@memberfy.net al equipo de mi empresa."*

## `update_company_member`

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

**Marcar o quitar al admin de la empresa.** El admin de la empresa invita y quita a su propio equipo. *Rol mínimo: administrador (propietario o administrador).*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `company_id` | id | Sí | La empresa |
| `member_id` | id | Sí | La persona (de `list_company_members`) |
| `is_admin` | verdadero/falso | Sí | Verdadero marca; falso quita |

**Pídelo así:** *"Deja a María como admin de Acme."*

## `remove_company_member`

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

**Quitar a alguien del equipo.** Si la persona entró en la comunidad por la empresa y sigue siendo miembro, sale también de la comunidad y pierde el acceso; si ya estaba en la comunidad, solo pierde el vínculo. El resumen dice cuál de los dos y avisa de que el cobro a la persona eliminada se suspende y la suscripción sigue registrada hasta que se cancele. Quitan el propietario, el administrador y el admin de esa empresa (mientras está activa). La primera llamada devuelve el resumen y el código de confirmación. *Rol mínimo: cualquiera (la API comprueba el vínculo).*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `company_id` | id | Sí | La empresa |
| `member_id` | id | Sí | La persona (de `list_company_members`) |

**Pídelo así:** *"Quita a João del equipo de Acme; dejó la empresa."*

## `list_company_invitations`

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

**Las invitaciones pendientes de la empresa**: las que el admin de la empresa envió y nadie respondió, de la más nueva a la más antigua, con el correo escrito y la fecha. Nunca dice quién es la persona ni si ya era de la comunidad. Las invitaciones del propietario y del administrador vinculan al momento y no aparecen aquí. La leen el equipo de la comunidad y el admin de esa empresa mientras está activa. *Rol mínimo: cualquiera (la API comprueba el vínculo).*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `company_id` | id | Sí | La empresa |

**Pídelo así:** *"¿A quién invité a mi empresa que todavía no aceptó?"*

## `list_my_company_invitations`

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

**Tus invitaciones.** Las invitaciones pendientes de la persona conectada para entrar en un equipo (*"te invitaron a la empresa X"*), de la más nueva a la más antigua, con la empresa, quién invitó y la fecha. Solo empresas activas de esta comunidad; sin invitaciones, lista vacía. *Rol mínimo: cualquiera.*

Sin parámetros.

**Pídelo así:** *"¿Tengo alguna invitación de empresa?"*

## `accept_company_invitation`

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

**Aceptar tu invitación.** La persona entra en el equipo (sin ser admin de la empresa). No pide confirmación. Invitación de otra persona, ya respondida o de otra comunidad: "no encontrada". Empresa cerrada después de la invitación, o persona ya en el equipo de otra empresa: rechazado, con el mensaje de la API. *Rol mínimo: cualquiera (su invitación).*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `invitation_id` | id | Sí | La invitación (de `list_my_company_invitations`) |

**Pídelo así:** *"Acepta la invitación de Acme."*

## `decline_company_invitation`

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

**Rechazar tu invitación.** No se crea ningún vínculo y la invitación desaparece para siempre: para entrar después, hace falta una invitación nueva. La primera llamada devuelve el resumen y el código de confirmación. *Rol mínimo: cualquiera (su invitación).*

| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `invitation_id` | id | Sí | La invitación (de `list_my_company_invitations`) |

**Pídelo así:** *"Rechaza la invitación de Acme."*

## Recetas sugeridas

- **Registrar una empresa:** registrar la empresa con las ofertas (`create_company`), entregar el `purchaseLink`, invitar a quien la va a gestionar (`invite_company_member`) y marcarla como admin de la empresa (`update_company_member`, o `is_admin` ya en la invitación).
- **El admin invita y la persona acepta:** el admin de la empresa invita al colega (`invite_company_member`) y lo sigue en `list_company_invitations`; el colega ve la invitación (`list_my_company_invitations`) y la acepta (`accept_company_invitation`).
- **Lo que tengo por la empresa:** cualquier persona del equipo pregunta, y el asistente responde con el `benefits` de `get_my_company` (planes, contenidos y créditos de la empresa, sin precios).

## Relacionados

- [Empresas](/membros/empresas)
- [Herramientas](/mcp/ferramentas)
- [Herramientas · Miembros](/mcp/ferramentas-membros)
- [Herramientas · Suscripciones](/mcp/ferramentas-assinaturas)
- [Herramientas · Créditos](/mcp/ferramentas-creditos)
- [Dinero y confirmación](/mcp/dinheiro-e-confirmacao)
- [Recetas](/mcp/receitas)
