Dynamics 365

Interactúa con Microsoft Dynamics 365 para la gestión de relaciones con clientes.

Documentación

Servidor MCP de Dynamics 365 🚀

Node.js TypeScript MCP License

Resumen

El Servidor MCP de Microsoft Dynamics 365 es un servidor MCP que proporciona herramientas para interactuar con Microsoft Dynamics 365 utilizando el Protocolo de Contexto de Modelo (MCP) de Anthropic. Permite a los usuarios realizar diversas operaciones como recuperar información de usuarios, cuentas, oportunidades asociadas con una cuenta, crear y actualizar cuentas desde Claude Desktop.

Este proyecto utiliza la librería @modelcontextprotocol/sdk para implementar el servidor MCP y las herramientas, y se integra con las APIs de Dynamics 365 para operaciones de datos.


Lista de Herramientas 🛠️

Nombre de la HerramientaDescripciónEntradaSalida
get-user-infoObtiene información sobre el usuario autenticado actualmente.NingunaDetalles del usuario incluyendo nombre, ID de usuario e ID de unidad de negocio.
fetch-accountsObtiene todas las cuentas de Dynamics 365.NingunaLista de cuentas en formato JSON.
get-associated-opportunitiesObtiene oportunidades asociadas con una cuenta determinada.accountId (cadena, obligatorio)Lista de oportunidades en formato JSON.
create-accountCrea una nueva cuenta en Dynamics 365.accountData (objeto, obligatorio) que contiene los detalles de la cuenta.Detalles de la cuenta creada en formato JSON.
update-accountActualiza una cuenta existente en Dynamics 365.accountId (cadena, obligatorio), accountData (objeto, obligatorio) que contiene los detalles actualizados.Detalles de la cuenta actualizada en formato JSON.

Requisitos Previos 📝

Antes de configurar el proyecto, asegúrate de tener instalado lo siguiente:

  • Node.js (v16 o superior)
  • NPM (Administrador de Paquetes de Node)
  • Una instancia de Dynamics 365 con acceso a la API
  • Una aplicación de Azure Active Directory (AAD) configurada para el acceso a la API de Dynamics 365

Pasos de Configuración ⚙️

Sigue estos pasos para configurar y ejecutar el proyecto localmente:

1. Clonar el Repositorio

git clone https://github.com/your-repo/dynamics365-mcp-server.git
cd dynamics365-mcp-server

2. Instalar Dependencias

npm install

3. Configurar Variables de Entorno

Crea un archivo .env en la raíz del proyecto y agrega las siguientes variables:

CLIENT_ID=your-client-id
CLIENT_SECRET=your-client-secret
TENANT_ID=your-tenant-id
D365_URL=https://your-org.crm.dynamics.com

4. Compilar Archivos TypeScript

npm run build

4. Ejecutar el Servidor MCP

node build\index.js

Deberías ver la siguiente salida:

Dynamics365 MCP server running on stdio...

5. (Opcional) Registrar tu Servidor MCP con Claude Desktop

  • Instala Claude Desktop
  • Navega a Configuración > Desarrollador > Editar Configuración
  • Edita claude_desktop_config.json
{
    "mcpServers": {
        "Dynamics365": {
            "command": "node",
            "args": [
                "<Path to your MCP server build file ex: rootfolder/build/index.js>"
            ],
            "env": {
                "CLIENT_ID": "<D365 Client Id>",
                "CLIENT_SECRET": "<D365 Client Secret>",
                "TENANT_ID": "<D365 Tenant ID>",
                "D365_URL": "Dynamics 365 url"
            }
        }
    }
}
  • Reinicia Claude Desktop

  • Ahora deberías poder ver las herramientas del servidor en la ventana de mensajes  Claude Server Tools

  • Probemos un mensaje invocando la herramienta - get-user-info  Get User Tool Test

6. (Opcional) Probar herramientas usando MCP Interceptor

  • Ejecuta el siguiente comando en la terminal
npx @modelcontextprotocol/inspector node build/index.js

 Interceptor commange

  • Ve a 🔍 http://localhost:5173 🚀  Interceptor

  • ¡Ahora puedes conectarte al servidor y probar todas las herramientas!

Depuración 🐛

Si encuentras problemas, asegúrate de lo siguiente:

Si encuentras problemas, asegúrate de lo siguiente:

  • El archivo .env está configurado correctamente.
  • La aplicación de Azure AD tiene los permisos necesarios para las APIs de Dynamics 365.
  • La instancia de Dynamics 365 es accesible desde tu entorno.
  • También puedes agregar registros de depuración en el código para rastrear problemas. Por ejemplo:
console.error("Debugging: Loaded environment variables:", process.env);

Contribuciones 🤝

¡Las contribuciones son bienvenidas! No dudes en enviar una solicitud de extracción o abrir un problema para cualquier error o solicitud de funcionalidad.

Para contribuir:

  • Haz un fork del repositorio.
  • Crea una nueva rama para tu funcionalidad o corrección de errores.
  • Realiza tus cambios y envía una solicitud de extracción.
  • ¡Apreciamos tus contribuciones! 😊