原始内容
Dynamics 365 AI Agent - D365 MCP Server (.NET) (d365-agent-mcpserver-dotnet)
This repository contains the source code for the .NET Core implementation of the Dynamics 365 Model Context Protocol (MCP) Server. This server is a key component of the D365 AI Agent system, responsible for exposing Dynamics 365 business logic and data operations as standardized MCP tools.
Overview
The d365-agent-mcpserver-dotnet acts as a dedicated gateway to Dynamics 365. It receives MCP tool execution requests from clients (primarily the d365-agent-orchestrator via the d365-agent-mcpclient-ts library) and translates them into operations against the D365 OData API.
Key Features & Responsibilities
- MCP Tool Implementation: Defines and implements a suite of MCP tools that encapsulate specific Dynamics 365 operations (e.g.,
getCustomerDetails,createSalesOrder,simulateInvoicePostToD365,getPurchaseOrderStatus). - D365 OData Interaction: Utilizes a generated, type-safe C# OData client (from the
d365-agent-odataclient-dotnetrepository) to perform all communications with the Dynamics 365 OData endpoints. - D365 Authentication: Manages secure authentication (typically Client Credentials flow) with Dynamics 365, retrieving necessary credentials from Azure Key Vault.
- Multi-Instance Support: Designed to handle requests targeting multiple Dynamics 365 instances or legal entities, based on parameters passed in the MCP tool calls.
- Standardized Interface: Exposes D365 capabilities via the Model Context Protocol, allowing any MCP-compliant client to discover and use its tools.
- Error Handling: Implements robust error handling for D365 operations and communicates errors back via standard MCP error responses.
- Containerization: Packaged as a Docker container for deployment to Azure services like Azure Container Apps (ACA) or Azure Kubernetes Service (AKS).
Technology Stack
- .NET Core / ASP.NET Core (for hosting the MCP server endpoint)
- C#
- D365 Agent C# MCP SDK (from
submodules/csharp-sdkor a corresponding NuGet package) - Generated D365 OData Client (from
d365-agent-odataclient-dotnet) - MSAL.NET (for Azure AD authentication)
Interaction Flow
- The
d365-agent-orchestrator(specifically a LangGraph agent or a CopilotKit action usingd365-agent-mcpclient-ts) sends an MCPCallToolrequest to this server. - The
d365-agent-mcpserver-dotnetreceives the request. - It identifies the requested MCP tool and validates parameters.
- The tool implementation logic uses the generated D365 OData client (
d365-agent-odataclient-dotnet) to perform the required operations against the Dynamics 365 OData API (e.g., querying data, creating/updating entities). - The result or any error from D365 is packaged into an
McpResponse. - The
McpResponseis sent back to thed365-agent-orchestrator.
Getting Started
(Details to be added - typically involves cloning, .NET SDK setup, configuration for D365 environment and Azure Key Vault, and running the server).
Refer to the implementation.md in this repository for a detailed development plan.
Contribution
(Details on contribution guidelines if applicable)