Sáltate la instalación. Funcionando en menos de 2 minutos.
Inicia una prueba gratuita en cloud.anythingmcp.com, añade Microsoft Dynamics 365 Sales (Dataverse) con un clic y apunta tu cliente de IA (Claude, ChatGPT, Copilot o Cursor) al endpoint MCP generado. Sin Docker, sin git clone, sin experiencia de desarrollo.
Resumen
Deja que tu IA trabaje en Dynamics 365 Sales: busca y actualiza cuentas, contactos, clientes potenciales y oportunidades, registra tareas, llamadas y notas, califica clientes potenciales, cierra negocios y consulta cualquier tabla de Dataverse con OData o FetchXML. Con el inicio de sesión de tu cuenta de Microsoft a través de la Dataverse Web API.
Prueba a pedir
Prompts de ejemplo para Microsoft Dynamics 365 Sales (Dataverse)
Haz clic en un prompt para copiarlo. Pégalo en Claude, ChatGPT, Cursor, Gemini, Copilot u OpenClaw para ejecutarlo contra este conector.
Claude es IA y puede equivocarse. Verifica siempre las respuestas.
💡 ¿Sin instalación? Usa cloud.anythingmcp.com directamente. Inicia sesión, pulsa Connectors → Microsoft Dynamics 365 Sales (Dataverse), pega tus credenciales, genera una MCP API key y listo. Sin Docker, sin
git clone, sin servidor local.
Dynamics 365 Sales
Deja que tu IA trabaje en Dynamics 365 Sales: busca y actualiza cuentas, contactos, clientes potenciales y oportunidades, registra tareas, llamadas y notas, califica clientes potenciales, cierra negocios y consulta cualquier tabla de Dataverse con OData o FetchXML. Con el inicio de sesión de tu cuenta de Microsoft a través de la Dataverse Web API.
Configuración
- Busca la dirección de tu entorno: en Dynamics abre Settings (el engranaje) → Advanced settings, o en el centro de administración de Power Platform abre Environments → tu entorno → Environment URL. Tiene un aspecto como
contoso.crm4.dynamics.com. Introduce el nombre de host, sinhttps://y sin ruta, enDYNAMICS_ORG_HOST. - Abre el centro de administración de Microsoft Entra en
https://entra.microsoft.com→ Applications → App registrations → New registration, o reutiliza la app que creaste para el conector de Outlook, OneDrive o SharePoint. Lo habitual es elegir Accounts in this organizational directory only. - Añade un URI de redirección con la plataforma Web:
https://cloud.anythingmcp.com/api/mcp-oauth/callback(si alojas AnythingMCP tú mismo:<your AnythingMCP URL>/api/mcp-oauth/callback). Tiene que coincidir exactamente; si no, Microsoft respondeAADSTS50011. - En API permissions → Add a permission → Dynamics CRM → Delegated permissions, marca
user_impersonation. Haz clic en Grant admin consent si tu organización no permite que los usuarios den el consentimiento por sí mismos. - En Certificates & secrets → New client secret, copia el Value del secreto. Solo se muestra una vez.
- Rellena
MICROSOFT_CLIENT_ID,MICROSOFT_CLIENT_SECRET,MICROSOFT_TENANT_ID(tu Directory (tenant) ID o tu dominio, uorganizationspara una app multiinquilino) yDYNAMICS_ORG_HOST, e instala el conector. - Haz clic en Authorize with Provider e inicia sesión con un usuario de ese entorno; después ejecuta
d365_who_am_icomo comprobación rápida.
La región está en el nombre de host: el número después de crm es la región del centro de datos, por ejemplo crm para Norteamérica, crm4 para Europa, Oriente Medio y África, crm11 para el Reino Unido o crm16 para Alemania. Cópialo de la URL del entorno en lugar de adivinarlo. Si más adelante cambias DYNAMICS_ORG_HOST, tendrás que volver a iniciar sesión, porque la autorización pertenece a un solo entorno.
Los mismos permisos que el usuario: el usuario que inicia sesión necesita una licencia de Dynamics 365 o Power Apps en ese entorno y un rol de seguridad como Salesperson o Sales Manager. La IA ve y cambia exactamente lo que ese rol permite.
Qué hace: busca, crea y actualiza cuentas, contactos, clientes potenciales y oportunidades, registra tareas, llamadas telefónicas y notas en su escala de tiempo, califica o descalifica clientes potenciales y cierra oportunidades como ganadas o perdidas. Para todo lo demás, como ofertas, pedidos, productos o tus propias tablas personalizadas, d365_query ejecuta consultas OData y d365_fetchxml_query se encarga de joins y totales. d365_list_tables y d365_describe_table muestran qué tablas y columnas existen.
Primero confirma: la IA confirma contigo cada creación y cada actualización. Calificar un cliente potencial o cerrar una oportunidad como ganada o perdida cambia tu pipeline y solo se puede deshacer a mano en Dynamics, así que pregunta antes de cada una de estas acciones.
Desactivadas al instalar: las herramientas de eliminación d365_delete_account, d365_delete_contact, d365_delete_lead, d365_delete_opportunity y d365_delete_record. Una eliminación también puede borrar filas relacionadas, así que actívalas de una en una solo si las necesitas.
Límites: Dataverse permite 6.000 solicitudes por usuario en 5 minutos; por encima de eso, pide al conector que espere.
Errores frecuentes: 401 significa que la autorización se revocó, que el client secret caducó o que DYNAMICS_ORG_HOST cambió desde que iniciaste sesión, así que vuelve a autorizar. 403 con "principal user is missing privilege": al rol de seguridad del usuario le falta ese permiso. 401 o 403 en cada llamada justo después de iniciar sesión: el usuario no es miembro de este entorno o no tiene licencia en él. 412: la fila cambió desde que se leyó, así que la IA vuelve a leerla.
El conector también funciona con otros entornos de Dataverse, como Customer Service o Power Apps con tus propias tablas.
Requisitos previos: MICROSOFT_CLIENT_ID, MICROSOFT_CLIENT_SECRET, MICROSOFT_TENANT_ID, DYNAMICS_ORG_HOST
Instalar el conector localmente
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Abre http://localhost:3000/connectors/store, elige Microsoft Dynamics 365 Sales (Dataverse) e introduce las variables listadas en los Requisitos previos.
Herramientas disponibles
| Tool | What it does |
|---|---|
d365_who_am_i | Return the signed-in user's id (UserId), business unit and organization id |
d365_list_accounts | List or search accounts (companies): name, number, phone, email, website, city, country, primary contact, owner, status |
d365_get_account | Read one account with every column (or the selected ones), with labels for choice and lookup columns and its @odata.etag |
d365_create_account | Create an account |
d365_update_account | Change columns of one account; columns left out keep their values |
d365_delete_account | Delete one account |
d365_list_contacts | List or search contacts (people): full name, job title, email, phones, company (parentcustomerid), city, owner, status |
d365_get_contact | Read one contact with every column (or the selected ones), with labels for choice and lookup columns and its @odata.etag |
d365_create_contact | Create a contact, optionally linked to its account |
d365_update_contact | Change columns of one contact; columns left out keep their values |
d365_delete_contact | Delete one contact |
d365_list_leads | List or search leads: topic, name, company, email, phone, source, rating, estimated value, owner, status (open, qualified, disqualified) |
d365_get_lead | Read one lead with every column (or the selected ones), with labels for choice and lookup columns and its @odata.etag |
d365_create_lead | Create a lead |
d365_update_lead | Change columns of one open lead; columns left out keep their values |
d365_qualify_lead | Qualify an open lead: Dynamics closes it as qualified and creates the chosen records (account, contact, opportunity) from it, linked to the… |
d365_disqualify_lead | Close an open lead as disqualified with a reason: 4 Lost, 5 Cannot Contact, 6 No Longer Interested (default), 7 Canceled |
d365_delete_lead | Delete one lead |
d365_list_opportunities | List or search opportunities: topic, customer (account or contact), estimated value and close date, probability, pipeline phase, owner… |
d365_get_opportunity | Read one opportunity with every column (or the selected ones), with labels for choice and lookup columns and its @odata.etag |
d365_create_opportunity | Create an opportunity for an account or a contact |
d365_update_opportunity | Change columns of one open opportunity (value, close date, probability, description); columns left out keep their values |
d365_win_opportunity | Close an open opportunity as won, with the actual revenue and close date |
d365_lose_opportunity | Close an open opportunity as lost (canceled or out-sold), with an optional comment |
d365_delete_opportunity | Delete one opportunity |
d365_list_activities | List activities of every type (tasks, phone calls, emails, appointments) with subject, type, dates, status and the row they are about |
d365_get_email | Read one email activity: subject, body (HTML in description), sender, recipients, direction, sent date, status and the row it is about |
d365_create_task | Create a task for the signed-in user, about an account, contact, lead or opportunity |
d365_create_phone_call | Log a phone call activity about an account, contact, lead or opportunity, with notes |
d365_create_note | Add a note to the timeline of an account, contact, lead or opportunity |
d365_complete_task | Mark an open task as completed |
d365_query | Query any table by its entity set name with OData: quotes, salesorders, invoices, products, pricelevels, campaigns, competitors… |
d365_next_page | Read the next page of any list, query or FetchXML answer that carried @odata.nextLink |
d365_fetchxml_query | Run a FetchXML query: joins across tables (link-entity), aggregates (count, sum, avg with groupby) and filters the OData syntax cannot… |
d365_get_record | Read one row of any table by entity set and id, with labels for choice and lookup columns and its @odata.etag |
d365_create_record | Create a row in any table that has no dedicated tool (a quote, a product, a custom table) |
d365_update_record | Change columns of one row in any table; columns left out keep their values |
d365_delete_record | Delete one row of any table |
d365_list_tables | List tables with their logical name, entity set name (what the query tools take) and primary name column |
d365_describe_table | Describe one table: entity set name, primary id and name columns, and every column with its type, whether it is required and whether it can… |
d365_list_lookups | List the lookup columns of a table with the table each points to and the navigation property name a write needs ("<navigation… |
d365_get_choice_options | List the values and labels of a choice column (option set), e.g. industrycode of account or statuscode of opportunity, so filters and… |
Ejemplos de prompts
- "Muéstrame mis oportunidades abiertas que cierran este trimestre, ordenadas por valor estimado."
- "Busca a Anna Meyer en Contoso y registra una llamada: quiere una oferta antes del viernes."
- "¿Qué clientes potenciales de los últimos 30 días siguen abiertos y aún no tienen ninguna actividad?"
- "Cierra la renovación de Fabrikam como ganada por 48.000 y crea una tarea de seguimiento para el próximo lunes."
Siguientes pasos
¿Te ha sido útil esta guía?