Plur-e
Servidores MCP

Dynamics 365 CRM (Dataverse)

Cómo se conecta el servidor MCP de Plur-e para Dynamics 365 CRM a Dataverse, sus herramientas genéricas, las campañas de Customer Insights - Journeys, roles MCP y límites.

Respuesta rápida

El servidor /crm se conecta a cualquier entorno de Dataverse — Sales, Customer Service o las tablas propias de un tenant — mediante el consentimiento único de un administrador, y expone herramientas genéricas (listar, describir, consultar, crear, actualizar…) guiadas por una skill por tabla. Donde Customer Insights - Journeys está instalado, un puñado de herramientas de alto nivel y una skill pensada para negocio dejan que tu asistente de IA redacte segmentos y journeys, y los publique tras confirmación. Cada llamada queda sujeta a los roles MCP del usuario (entidad más Read / New / Update / Delete) y con auditoría completa — deny-by-absence, sin cola de aprobación.

Conectar un entorno

Connect with Microsoft (recomendado): en el Admin Center, AI & MCP → Dynamics 365 CRM → Connect with Microsoft, un administrador del tenant inicia sesión una vez con su cuenta de administrador de Dynamics 365 y consiente; el callback lista los entornos del tenant de Microsoft Entra ID y el administrador elige cuál (o cuáles) conectar. Plur-e pide entonces, en segundo plano, un token para el entorno elegido con el inicio de sesión en caché y crea un usuario de aplicación en él — la identidad que usa el servidor a partir de ahí, independiente de la cuenta propia del administrador.

El alta manual sigue funcionando para administradores que la prefieran o cuya política de tenant bloquee la pantalla de consentimiento: se introduce la URL del entorno directamente en la misma página, luego se crea el usuario de aplicación en el Power Platform admin center con el application id que muestra el Admin Center, y se pulsa Verify connection.

Dos modos de identidad, por conexión:

  • AppOnly (por defecto) — cada llamada se ejecuta como el usuario de aplicación; se aplican los roles de seguridad de Dataverse que el administrador asignó a ese usuario.
  • AppOnlyImpersonate — el servidor añade el oid de Dataverse del usuario que llama como caller, de modo que se aplican sus propios roles de seguridad (propiedad del registro, seguridad a nivel de campo). Requiere que el usuario de aplicación tenga el privilegio Act on Behalf of Another User.

Si la petición silenciosa del token falla (el inicio de sesión en caché caducó, o la cuenta del administrador perdió acceso al entorno), el Admin Center muestra Grant access para esa conexión en concreto, para repetir el consentimiento sin rehacer el descubrimiento de las demás.

Herramientas genéricas

Cada tabla del entorno conectado — estándar o personalizada — se alcanza con el mismo conjunto pequeño de herramientas; una skill (se lee con crm_get_skill) documenta los campos, las relaciones y las particularidades de cada tabla.

HerramientaÁmbitoQué hace
crm_list_entitieslecturaTablas del entorno conectado
crm_describe_entitylecturaMetadatos en vivo de una tabla, con su skill como guía
crm_querylecturaConsulta OData — filtro, expand, orden, paginación
crm_fetchxmllecturaConsulta FetchXML para agregados o joins que OData no puede expresar
crm_get_recordlecturaUn registro por id
crm_searchlecturaBúsqueda de Dataverse entre tablas, con alternativa OData
crm_create_recordescrituraCrea un registro
crm_update_recordescrituraActualiza campos de un registro
crm_delete_recordescrituraElimina un registro
crm_set_stateescrituraCambia el estado y el motivo de estado
crm_assignescrituraReasigna un registro a un usuario o equipo
crm_associateescrituraEnlaza dos registros mediante una relación
crm_execute_actionescrituraEjecuta una acción o función de Dataverse de una lista blanca explícita
crm_whoamilecturaEl usuario de aplicación y los roles de seguridad en uso
crm_list_connections / crm_select_connectionlecturaLos entornos conectados del tenant, y cuál usar a continuación

Ver Flujos móviles de Business Central para el mismo patrón en el servidor /bc: skills como contexto autoritativo, llamadas con el estilo { method, parameters } y avisos de contabilización/publicación conservados tal cual.

Customer Insights - Journeys

Donde un entorno conectado tiene Customer Insights - Journeys instalado, el servidor añade guías bajo journeys/ (overview, segments, content-and-emails, triggers-and-events, forms-and-consent, analytics) y fichas de sus tablas (entities/msdynmkt_*: journeys, plantillas, segmentos, correos, formularios, disparadores, consentimiento…), sobre las herramientas genéricas de arriba. Un puñado de herramientas de alto nivel cubre las acciones del día a día sin escribir OData a mano:

HerramientaÁmbitoQué hace
crm_marketing_overviewlecturaSi Customer Insights - Journeys está instalado (journeysInstalled), si los eventos personalizados lo están (eventsInstalled) y si hay campañas clásicas disponibles (classicCampaignsAvailable), además de las listas journeys, segments, emails, forms, triggers y classicCampaigns, y un array warnings[]
crm_segment_memberslecturaMiembros de un segmento y por qué califica cada uno
crm_journey_create_from_templateescrituraRedacta un journey en tiempo real a partir de una plantilla — segmento, contenido, disparador — sin publicarlo
crm_journey_publishescrituraPublica un journey; necesita Update en msdynmkt_journey
crm_segment_publishescrituraPublica un segmento para que Customer Insights - Journeys empiece a evaluar miembros; necesita Update en msdynmkt_segment

tu asistente de IA llama siempre primero a crm_marketing_overview para comprobar si el entorno tiene Customer Insights - Journeys antes de ofrecer acciones específicas de journeys o segmentos; en entornos sin él, solo aplica el camino de campañas clásicas de abajo.

Campañas

La skill flows/campaign-management está escrita para un usuario de negocio, no para un desarrollador: guía a tu asistente de IA para convertir un brief en lenguaje natural ("envía un correo a nuestras cuentas de Texas sobre la nueva lista de precios") en una audiencia, un mensaje y, en entornos con Customer Insights - Journeys, un journey — o, en tenants sin él, una campaña clásica (tablas campaign, list, campaignactivity, campaignresponse de Dynamics 365 Sales).

Qué decirle a tu asistente de IA: para quién es la campaña (con tus propias palabras — una lista de cuentas, la definición de un segmento, una lista de criterios), qué enviar y por qué canal, y cuándo. La skill sigue un orden fijo para que nada salga sin que lo hayas visto: tu asistente de IA previsualiza la audiencia con crm_query sobre tus criterios y te muestra a quién incluye; cuando confirmas, llama a crm_segment_publish; después llama a crm_segment_members para verificar el tamaño real del segmento ya publicado antes de seguir; cuando vuelves a confirmar, redacta el journey con crm_journey_create_from_template y solo llama a crm_journey_publish tras una confirmación final. crm_segment_publish y crm_journey_publish son herramientas de escritura: solo se ejecutan si el rol MCP del usuario concede Update en msdynmkt_segment / msdynmkt_journey — deny-by-absence, no una cola de aprobación, así que confirma que el rol está concedido antes de hacer una demo de campaña. El Plur-e Plugin incluye un comando dedicado /plure-campaign <brief> que sigue esta skill de principio a fin.

Roles

Cada herramienta genérica comprueba los roles MCP del usuario que llama para la entidad que toca: crm_query / crm_get_record / crm_describe_entity / crm_fetchxml (incluida cada tabla unida mediante un link-entity) necesitan Read; crm_search solo ofrece las entidades que el usuario puede leer; crm_create_record necesita New; crm_update_record / crm_set_state / crm_assign / crm_associate necesitan Update en la entidad; crm_execute_action necesita Update en la entidad bound, o, para una acción unbound, al menos una entidad con Update en la conexión; crm_delete_record necesita Delete. Sin un rol que conceda la entidad y la acción, la llamada deniega de inmediato — ver Roles MCP para las entidades por defecto y los mensajes exactos de denegación, y Modelo de seguridad de MCP para la visión general del modelo.

Límites y qué no cubre

  • Las analíticas no se exponen como filas. Customer Insights - Journeys guarda las métricas de interacción (aperturas, clics, conversiones) en un almacén de analítica fuera de la Web API estándar de Dataverse; crm_marketing_overview y la guía journeys/analytics resumen lo que es alcanzable, pero no hay un equivalente a crm_query para analítica a nivel de evento.
  • Outbound marketing (la app clásica) está retirada por Microsoft; las skills y herramientas apuntan solo a Customer Insights - Journeys (journeys en tiempo real) y a las campañas clásicas de Sales.
  • crm_execute_action solo ejecuta acciones y funciones de una lista blanca explícita; una acción de un plugin personalizado que no esté en ella no es alcanzable hasta que Plur-e la añada.
  • El acceso Delegated (por conexión, en nombre del usuario) está en el roadmap; hoy toda llamada es AppOnly o AppOnlyImpersonate.

Relacionado: Conecta tu cliente de IA · Roles MCP · Memoria del tenant · Modelo de seguridad · Página de producto

Last updated on

Edit on GitHub
¿Te ha sido útil esta página?

On this page