Dynamics 365 MCP Server
by srikanth-paladugula
Verified
# Dynamics 365 MCP Server 🚀




## Overview
The **Microsoft Dynamics 365 MCP Server** is a MCP server that provides tools to interact with Microsoft Dynamics 365 using the **Model Context Protocol(MCP)** by Anthorpic. It allows users to perform various operations such as retrieving user information, accounts, opportunities associated with an account, create and update accounts from **Claude Desktop**.
This project uses the `@modelcontextprotocol/sdk` library to implement the MCP server and tools, and it integrates with Dynamics 365 APIs for data operations.
---
## List of Tools 🛠️
| **Tool Name** | **Description** | **Input** | **Output** |
| ------------------------------ | ----------------------------------------------------------- | -------------------------------------------------------------------------------------------- | ----------------------------------------------------------- |
| `get-user-info` | Fetches information about the currently authenticated user. | None | User details including name, user ID, and business unit ID. |
| `fetch-accounts` | Fetches all accounts from Dynamics 365. | None | List of accounts in JSON format. |
| `get-associated-opportunities` | Fetches opportunities associated with a given account. | `accountId` (string, required) | List of opportunities in JSON format. |
| `create-account` | Creates a new account in Dynamics 365. | `accountData` (object, required) containing account details. | Details of the created account in JSON format. |
| `update-account` | Updates an existing account in Dynamics 365. | `accountId` (string, required), `accountData` (object, required) containing updated details. | Details of the updated account in JSON format. |
---
## Prerequisites 📝
Before setting up the project, ensure you have the following installed:
- **Node.js** (v16 or higher)
- **NPM** (Node Package Manager)
- A Dynamics 365 instance with API access
- Azure Active Directory (AAD) application configured for Dynamics 365 API access
---
## Configuration Steps ⚙️
Follow these steps to set up and run the project locally:
### 1. Clone the Repository
```sh
git clone https://github.com/your-repo/dynamics365-mcp-server.git
cd dynamics365-mcp-server
```
### 2. Install Dependencies
```sh
npm install
```
### 3. Configure Environment Variables
Create a .env file in the root of the project and add the following variables:
```sh
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 TypeScript Files
```sh
npm run build
```
### 4. Run MCP Server
```sh
node build\index.js
```
You should see the following output:
```plaintext
Dynamics365 MCP server running on stdio...
```
### 5. (Optional) Register your MCP Server with Claude Desktop
- Install [Claude Desktop](https://claude.ai/download)
- Navigate to Settings > Developer > Edit Config
- Edit claude_desktop_config.json
```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"
}
}
}
}
```
- Restart Claude Desktop
- Now you should be able to see the server tools in the prompt window

- Let's test a prompt by invoking tool - get-user-info

## Debugging 🐛
## If you encounter issues, ensure the following:
If you encounter issues, ensure the following:
- The .env file is properly configured.
- The Azure AD application has the necessary permissions for Dynamics 365 APIs.
- The Dynamics 365 instance is accessible from - your environment.
- You can also add debug logs in the code to trace issues. For example:
```sh
console.error("Debugging: Loaded environment variables:", process.env);
```
## Contributing 🤝
Contributions are welcome! Feel free to submit a pull request or open an issue for any bugs or feature requests.
To contribute:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Commit your changes and submit a pull request.
- We appreciate your contributions! 😊
ID: duod0pskh9