Dynamics 365 CRM MCP服务器
MCP(模型上下文协议)服务器,通过OData API连接到Microsoft Dynamics 365 CRM(MSX)。专为与GitHub Copilot CLI和其他MCP兼容的AI助手一起使用而设计。
特性
账户管理
my_accounts--列出通过分配给您的所有帐户msp_accountteamsaccount_details--完整的帐户详细信息,包括父/子层次结构account_contacts--获取帐户的联系人account_team--帐户团队成员(如果子团队没有团队,则自动遍历到父团队)account_opportunities--账户机会(包括子账户)
机会和渠道
my_opportunities--您在交易团队中的机会opportunities_not_on_team--在您的账户中打开您没有的机会opportunity_detail--与交易团队一起提供完整的机会细节opportunity_team--为团队成员提供机会search_opportunities--使用过滤器搜索(查询、阶段、值、结束日期)pipeline_summary--按账户和阶段汇总管道
里程碑
my_milestones--交易团队机会中的所有里程碑opportunity_milestones--特定机会的里程碑
联系人和帐户查找
find_contact_by_email--通过父帐户解析的电子邮件地址查找联系人find_account_by_domain--按网站/电子邮件域查找帐户(例如“contoso.com”)
注释和注释
create_note--在任何记录(里程碑、机会等)上创建注释/评论search_annotations--搜索记录上的现有笔记(时间线历史、重复检查)
发现与探索
discover_entities--在Dynamics元数据中搜索实体名称discover_fields--获取任何实体的字段/属性run_odata_query--运行自定义OData查询以进行即席探索
写入操作
create_record--在任何实体上创建新记录(通用)update_record--更新任何记录上的字段assign_to_me--为自己分配一个记录(里程碑、任务等)
先决条件
- Python 3.10+
- 访问Dynamics 365 CRM实例
- Azure AD应用程序注册
user_impersonationDynamics实例的权限
设置
1.克隆并安装依赖项
git clone
cd dynamics-mcp
pip install -r requirements.txt2.创建一个 .env 文件
复制 .env.example 并填写您的值:
cp .env.example .env| 变量 | 描述 | 必填 |
|---|---|---|
DYNAMICS_BASE_URL | 您的Dynamics 365实例URL | 否(默认为 https://microsoftsales.crm.dynamics.com) |
DYNAMICS_CLIENT_ID | Azure AD应用程序注册客户端ID | 是 |
DYNAMICS_TENANT_ID | Azure AD租户ID | 是 |
DYNAMICS_USER_ID | 你的 systemuserid 来自Dynamics 365的GUID | 是 |
3.查找您的用户名
找到你的 systemuserid,在浏览器中运行此OData查询(经过身份验证时):
https://.crm.dynamics.com/api/data/v9.2/systemusers?$filter=internalemailaddress eq 'your.email@company.com'&$select=systemuserid,fullname4.配置GitHub Copilot CLI
添加到您的 ~/.copilot/mcp-config.json:
{
"mcpServers": {
"dynamics-crm": {
"command": "python",
"args": ["/dynamics-mcp/server.py"],
"env": {
"DYNAMICS_CLIENT_ID": "your-client-id",
"DYNAMICS_TENANT_ID": "your-tenant-id",
"DYNAMICS_USER_ID": "your-user-id"
},
"tools": ["*"]
}
}
}提示: 您还可以在shell配置文件中设置env变量,或者 .env 文件而不是配置中的内联。5.首轮
首次启动时,服务器将打开浏览器进行交互式Azure AD登录。身份验证后,令牌将在本地缓存在 .token_cache.json.
认证
使用Microsoft身份验证库 公共客户端 流量:
- 令牌缓存在
.token_cache.json(自动刷新) - 首次登录需要交互式浏览器身份验证
- 后续运行会静默使用缓存/刷新令牌
建筑
┌─────────────────┐ stdio ┌──────────────────┐ OData v9.2 ┌───────────────┐
│ Copilot CLI / │◄──────────────►│ FastMCP Server │◄──────────────────►│ Dynamics 365 │
│ MCP Client │ │ (server.py) │ MSAL auth │ CRM (MSX) │
└─────────────────┘ └──────────────────┘ └───────────────┘实体参考
| 实体 | 实体集 | 用于 |
|---|---|---|
msp_dealteam | msp_dealteams | 机会交易团队成员 |
msp_engagementmilestone | msp_engagementmilestones | 机会里程碑 |
msp_accountteam | msp_accountteams | 客户团队分配 |
opportunity | opportunities | 销售机会 |
account | accounts | 客户账户 |
contact | contacts | 账户联系人 |
annotation | annotations | 记录注释/评论(时间线条目) |
许可证
仅供内部使用。
