Dynamics 365

Interaja com o Microsoft Dynamics 365 para gerenciamento de relacionamento com o cliente.

Documentação

Dynamics 365 MCP Server 🚀

Node.js TypeScript MCP License

Visão Geral

O Microsoft Dynamics 365 MCP Server é um servidor MCP que fornece ferramentas para interagir com o Microsoft Dynamics 365 usando o Model Context Protocol (MCP) da Anthorpic. Ele permite que os usuários realizem várias operações, como recuperar informações do usuário, contas, oportunidades associadas a uma conta, criar e atualizar contas a partir do Claude Desktop.

Este projeto usa a biblioteca @modelcontextprotocol/sdk para implementar o servidor e as ferramentas MCP, e integra-se com as APIs do Dynamics 365 para operações de dados.


Lista de Ferramentas 🛠️

Nome da FerramentaDescriçãoEntradaSaída
get-user-infoObtém informações sobre o usuário autenticado atualmente.NenhumDetalhes do usuário, incluindo nome, ID do usuário e ID da unidade de negócios.
fetch-accountsObtém todas as contas do Dynamics 365.NenhumLista de contas em formato JSON.
get-associated-opportunitiesObtém oportunidades associadas a uma determinada conta.accountId (string, obrigatório)Lista de oportunidades em formato JSON.
create-accountCria uma nova conta no Dynamics 365.accountData (objeto, obrigatório) contendo detalhes da conta.Detalhes da conta criada em formato JSON.
update-accountAtualiza uma conta existente no Dynamics 365.accountId (string, obrigatório), accountData (objeto, obrigatório) contendo detalhes atualizados.Detalhes da conta atualizada em formato JSON.

Pré-requisitos 📝

Antes de configurar o projeto, certifique-se de ter o seguinte instalado:

  • Node.js (v16 ou superior)
  • NPM (Gerenciador de Pacotes do Node)
  • Uma instância do Dynamics 365 com acesso à API
  • Aplicativo do Azure Active Directory (AAD) configurado para acesso à API do Dynamics 365

Etapas de Configuração ⚙️

Siga estas etapas para configurar e executar o projeto localmente:

1. Clone o Repositório

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

2. Instale as Dependências

npm install

3. Configure as Variáveis de Ambiente

Crie um arquivo .env na raiz do projeto e adicione as seguintes variáveis:

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

4. Compile os Arquivos TypeScript

npm run build

4. Execute o Servidor MCP

node build\index.js

Você deve ver a seguinte saída:

Dynamics365 MCP server running on stdio...

5. (Opcional) Registre seu Servidor MCP com o Claude Desktop

  • Instale o Claude Desktop
  • Navegue até Configurações > Desenvolvedor > Editar Configuração
  • Edite o 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"
            }
        }
    }
}
  • Reinicie o Claude Desktop

  • Agora você deve conseguir ver as ferramentas do servidor na janela de prompt  Claude Server Tools

  • Vamos testar um prompt invocando a ferramenta - get-user-info  Get User Tool Test

6. (Opcional) Teste as ferramentas usando o MCP Interceptor

  • Execute o seguinte comando no terminal
npx @modelcontextprotocol/inspector node build/index.js

 Interceptor commange

  • Vá para 🔍 http://localhost:5173 🚀  Interceptor

  • Agora você pode conectar-se ao servidor e testar todas as ferramentas!!

Depuração 🐛

Se você encontrar problemas, verifique o seguinte:

Se você encontrar problemas, verifique o seguinte:

  • O arquivo .env está configurado corretamente.
  • O aplicativo do Azure AD tem as permissões necessárias para as APIs do Dynamics 365.
  • A instância do Dynamics 365 está acessível a partir do seu ambiente.
  • Você também pode adicionar logs de depuração no código para rastrear problemas. Por exemplo:
console.error("Debugging: Loaded environment variables:", process.env);

Contribuição 🤝

Contribuições são bem-vindas! Sinta-se à vontade para enviar um pull request ou abrir uma issue para qualquer bug ou solicitação de recurso.

Para contribuir:

  • Faça um fork do repositório.
  • Crie um novo branch para sua funcionalidade ou correção de bug.
  • Faça commit das suas alterações e envie um pull request.
  • Agradecemos suas contribuições! 😊