连接器指南阅读约 7 分钟42 个 MCP 工具7 种语言

Dynamics 365 Sales MCP 接入 Microsoft Copilot

让你的 AI 在 Dynamics 365 Sales 中工作:查找和更新客户、联系人、潜在客户和商机,记录任务、电话和备注,确认潜在客户并完成成交,还能用 OData 或 FetchXML 查询任意 Dataverse 表。通过 Dataverse Web API,使用你的 Microsoft 账户登录。

HC作者:HelpCode 团队更新于 7 分钟阅读 在 GitHub 开源

无需信用卡 · 7 天试用 · 提供自托管方案

Microsoft Dynamics 365 Sales (Dataverse)

Microsoft Dynamics 365 Sales (Dataverse)

Let your AI work in Dynamics 365 Sales: find and update accounts, contacts, leads and opportunities, log tasks, calls and notes, qualify leads and close deals, and query any Dataverse table with OData or FetchXML. Signed in with your Microsoft account through the Dataverse Web API.

个工具

42

区域

INTL

类别

CRM

身份验证

OAuth 2.0

所需环境变量

MICROSOFT_CLIENT_IDMICROSOFT_CLIENT_SECRETMICROSOFT_TENANT_IDDYNAMICS_ORG_HOST
在 Cloud 上一键安装

7 天免费试用 · 无需信用卡

  • 7 天免费试用
    无需信用卡
  • 符合 GDPR,SOC 2 就绪
    数据驻留欧盟,审计日志
  • 在 GitHub 开源
    开源 · AGPL-3.0
  • 支持 ChatGPT、Claude、Gemini
    任何兼容 MCP 的客户端

摘要

让你的 AI 在 Dynamics 365 Sales 中工作:查找和更新客户、联系人、潜在客户和商机,记录任务、电话和备注,确认潜在客户并完成成交,还能用 OData 或 FetchXML 查询任意 Dataverse 表。通过 Dataverse Web API,使用你的 Microsoft 账户登录。

引导式设置

2 分钟将 Microsoft Dynamics 365 Sales 连接到 Microsoft Copilot

开始 AnythingMCP Cloud 免费试用,在引导式设置中连接 Microsoft Dynamics 365 Sales,再把你的 MCP URL 添加到 Microsoft Copilot。无需代码,也无需自行运行服务器。

无需信用卡 · 7 天试用 · 提供自托管方案

试试这样问

Microsoft Dynamics 365 Sales (Dataverse) 的示例提示

点击任意提示即可复制,然后粘贴到 Claude、ChatGPT、Cursor、Gemini、Copilot 或 OpenClaw 中,在该连接器上运行。

Microsoft Dynamics 365 Sales (Dataverse) · 通过 MCP 实时
分享
Opus 4.7

Claude 是 AI,可能会出错。请核对回答。

💡 无需安装? 直接使用 cloud.anythingmcp.com。 登录、点击 Connectors → Microsoft Dynamics 365 Sales (Dataverse)、粘贴凭证、生成 MCP API key,即可完成。无 Docker、无 git clone、无本地服务器。

Dynamics 365 Sales + Microsoft Copilot

让你的 AI 在 Dynamics 365 Sales 中工作:查找和更新客户、联系人、潜在客户和商机,记录任务、电话和备注,确认潜在客户并完成成交,还能用 OData 或 FetchXML 查询任意 Dataverse 表。通过 Dataverse Web API,使用你的 Microsoft 账户登录。

前提条件

完整的设置说明已内置在连接器中 (在 store 中选择连接器时可见)。所需环境变量:

MICROSOFT_CLIENT_ID, MICROSOFT_CLIENT_SECRET, MICROSOFT_TENANT_ID, DYNAMICS_ORG_HOST

步骤 1 — 获取凭证

  1. 找到你的环境地址:在 Dynamics 中打开 Settings(齿轮图标)→ Advanced settings,或在 Power Platform 管理中心打开 Environments → 你的环境 → Environment URL。它的格式类似 contoso.crm4.dynamics.com。将主机名填入 DYNAMICS_ORG_HOST,不带 https://,也不带路径。
  2. 打开 Microsoft Entra 管理中心 https://entra.microsoft.com → Applications → App registrations → New registration,或复用你为 Outlook、OneDrive 或 SharePoint 连接器创建的应用。通常选择 Accounts in this organizational directory only。
  3. 添加一个平台为 Web 的重定向 URI:https://cloud.anythingmcp.com/api/mcp-oauth/callback(如果你自行托管 AnythingMCP:<your AnythingMCP URL>/api/mcp-oauth/callback)。它必须完全一致,否则 Microsoft 会返回 AADSTS50011。
  4. 在 API permissions → Add a permission → Dynamics CRM → Delegated permissions 下勾选 user_impersonation。如果你的组织不允许用户自行同意,请点击 Grant admin consent。
  5. 在 Certificates & secrets → New client secret 下复制密钥的 Value。它只显示一次。
  6. 填写 MICROSOFT_CLIENT_ID、MICROSOFT_CLIENT_SECRET、MICROSOFT_TENANT_ID(你的 Directory (tenant) ID 或域名,多租户应用则填 organizations)和 DYNAMICS_ORG_HOST,然后安装连接器。
  7. 点击 Authorize with Provider,用该环境中的用户登录,然后运行 d365_who_am_i 快速检查一下。

区域就写在主机名里:crm 后面的数字代表数据中心区域,例如 crm 代表北美,crm4 代表欧洲、中东和非洲,crm11 代表英国,crm16 代表德国。请从环境 URL 中复制,不要猜测。之后更改 DYNAMICS_ORG_HOST 需要重新登录,因为授权只对应一个环境。

与用户相同的权限:登录的用户需要在该环境中拥有 Dynamics 365 或 Power Apps 许可证,以及 Salesperson 或 Sales Manager 等安全角色。AI 能查看和更改的内容,与该角色允许的范围完全一致。

功能:查找、创建和更新客户、联系人、潜在客户和商机,在它们的时间线上记录任务、电话和备注,将潜在客户标记为合格或不合格,并将商机关闭为赢单或丢单。对于其他内容,例如报价单、订单、产品或你自己的自定义表,d365_query 运行 OData 查询,d365_fetchxml_query 处理联接和汇总。d365_list_tables 和 d365_describe_table 显示有哪些表和列。

先确认:每次创建和更新,AI 都会先与你确认。将潜在客户标记为合格,或将商机关闭为赢单或丢单,会改变你的销售管道,而且只能在 Dynamics 中手动撤销,所以每次操作前它都会先问你。

安装时默认关闭:删除工具 d365_delete_account、d365_delete_contact、d365_delete_lead、d365_delete_opportunity 和 d365_delete_record。删除操作也可能移除相关的行,所以只在需要时逐个打开这些工具。

限制:Dataverse 允许每个用户在 5 分钟内发出 6,000 个请求;超出后会要求连接器等待。

常见错误:401 表示授权已被撤销、客户端密钥已过期,或者你登录后 DYNAMICS_ORG_HOST 已被更改,请重新授权。403 并提示 "principal user is missing privilege":用户的安全角色缺少该权限。刚登录后每次调用都返回 401 或 403:该用户不是此环境的成员,或在该环境中没有许可证。412:该行在读取后已被更改,因此 AI 会重新读取。

该连接器也适用于其他 Dataverse 环境,例如 Customer Service,或带有你自己的表的 Power Apps。

步骤 2 — 安装 adapter

curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d

步骤 3 — 在 Microsoft Copilot 中添加连接器

你的服务器 URL: 在 AnythingMCP 中打开 MCP Servers → 此连接器所在的服务器,复制它的 URL(https://cloud.anythingmcp.com/mcp/…)。本指南中出现 YOUR_SERVER_ID 的地方都用它替换。

Microsoft Copilot 通过在 Copilot Studio 中构建的智能体使用 MCP 服务器:把 AnythingMCP 作为工具添加到智能体,然后把智能体发布到 Microsoft 365 Copilot 和 Teams。Copilot Studio 从 Microsoft 的云端通过 Streamable HTTP 连接,AnythingMCP 支持这种方式。

  1. 在 Copilot Studio 中打开你的智能体(或新建一个),进入 Tools,选择 Add a tool → New tool → Model Context Protocol。
  2. 填写 Server name(例如 AnythingMCP)、说明连接器用途的 Server description,以及 Server URL https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID。Copilot Studio 根据描述决定何时调用该服务器。
  3. 身份验证选择 API key,把 Type 设为 Header,请求头名称填 X-API-Key,然后选择 Create。
  4. 在 Add tool 中选择 Create a new connection,粘贴 AnythingMCP 的 MCP API 密钥(MCP Servers → 你的服务器 → API keys),然后选择 Add to agent。
  5. 在智能体的 Test 窗格中试一试:提出需要用到 Dynamics 365 Sales 的工具的请求。
  6. 选择 Publish,然后进入 Channels → Microsoft 365 and Microsoft Teams,保持勾选 Make agent available in Microsoft Copilot,再选择 Add channel。See agent in Teams 会为你安装该智能体;在 Microsoft 365 Copilot 中输入 @ 并选择该智能体。

希望每个用户各自登录?请选择 OAuth 2.0 → Dynamic discovery 代替 API 密钥:每个用户会在智能体首次调用时登录 AnythingMCP。

自托管?请用你实例的公网 HTTPS 地址替换 https://cloud.anythingmcp.com。Copilot Studio 从 Microsoft 的云端连接,因此 localhost 无法使用。

可用工具

ToolWhat it does
d365_who_am_iReturn the signed-in user's id (UserId), business unit and organization id
d365_list_accountsList or search accounts (companies): name, number, phone, email, website, city, country, primary contact, owner, status
d365_get_accountRead one account with every column (or the selected ones), with labels for choice and lookup columns and its @odata.etag
d365_create_accountCreate an account
d365_update_accountChange columns of one account; columns left out keep their values
d365_delete_accountDelete one account
d365_list_contactsList or search contacts (people): full name, job title, email, phones, company (parentcustomerid), city, owner, status
d365_get_contactRead one contact with every column (or the selected ones), with labels for choice and lookup columns and its @odata.etag
d365_create_contactCreate a contact, optionally linked to its account
d365_update_contactChange columns of one contact; columns left out keep their values
d365_delete_contactDelete one contact
d365_list_leadsList or search leads: topic, name, company, email, phone, source, rating, estimated value, owner, status (open, qualified, disqualified)
d365_get_leadRead one lead with every column (or the selected ones), with labels for choice and lookup columns and its @odata.etag
d365_create_leadCreate a lead
d365_update_leadChange columns of one open lead; columns left out keep their values
d365_qualify_leadQualify an open lead: Dynamics closes it as qualified and creates the chosen records (account, contact, opportunity) from it, linked to the…
d365_disqualify_leadClose an open lead as disqualified with a reason: 4 Lost, 5 Cannot Contact, 6 No Longer Interested (default), 7 Canceled
d365_delete_leadDelete one lead
d365_list_opportunitiesList or search opportunities: topic, customer (account or contact), estimated value and close date, probability, pipeline phase, owner…
d365_get_opportunityRead one opportunity with every column (or the selected ones), with labels for choice and lookup columns and its @odata.etag
d365_create_opportunityCreate an opportunity for an account or a contact
d365_update_opportunityChange columns of one open opportunity (value, close date, probability, description); columns left out keep their values
d365_win_opportunityClose an open opportunity as won, with the actual revenue and close date
d365_lose_opportunityClose an open opportunity as lost (canceled or out-sold), with an optional comment
d365_delete_opportunityDelete one opportunity
d365_list_activitiesList activities of every type (tasks, phone calls, emails, appointments) with subject, type, dates, status and the row they are about
d365_get_emailRead one email activity: subject, body (HTML in description), sender, recipients, direction, sent date, status and the row it is about
d365_create_taskCreate a task for the signed-in user, about an account, contact, lead or opportunity
d365_create_phone_callLog a phone call activity about an account, contact, lead or opportunity, with notes
d365_create_noteAdd a note to the timeline of an account, contact, lead or opportunity
d365_complete_taskMark an open task as completed
d365_queryQuery any table by its entity set name with OData: quotes, salesorders, invoices, products, pricelevels, campaigns, competitors…
d365_next_pageRead the next page of any list, query or FetchXML answer that carried @odata.nextLink
d365_fetchxml_queryRun a FetchXML query: joins across tables (link-entity), aggregates (count, sum, avg with groupby) and filters the OData syntax cannot…
d365_get_recordRead one row of any table by entity set and id, with labels for choice and lookup columns and its @odata.etag
d365_create_recordCreate a row in any table that has no dedicated tool (a quote, a product, a custom table)
d365_update_recordChange columns of one row in any table; columns left out keep their values
d365_delete_recordDelete one row of any table
d365_list_tablesList tables with their logical name, entity set name (what the query tools take) and primary name column
d365_describe_tableDescribe one table: entity set name, primary id and name columns, and every column with its type, whether it is required and whether it can…
d365_list_lookupsList the lookup columns of a table with the table each points to and the navigation property name a write needs ("<navigation…
d365_get_choice_optionsList the values and labels of a choice column (option set), e.g. industrycode of account or statuscode of opportunity, so filters and…

示例提示

  • “显示我预计本季度成交的未结商机,按预估金额排序。”
  • “在 Contoso 找到 Anna Meyer,并记录一次通话:她希望周五前拿到报价。”
  • “过去 30 天的潜在客户中,哪些仍未关闭且还没有任何活动?”
  • “将 Fabrikam 续约商机以 48,000 关闭为赢单,并创建一个下周一的跟进任务。”

FAQ

这适用于哪个 Copilot? 适用于工作中的 Microsoft 365 Copilot,通过 Copilot Studio 的智能体实现。面向个人账户的 Microsoft Copilot 应用无法添加自己的 MCP 服务器。

我需要什么? 一个可以使用 Copilot Studio 的工作账户(许可证或试用版),用于构建智能体。在 Microsoft 365 Copilot 或 Teams 中使用它的人需要拥有该智能体的访问权限:把它共享给他们,或请管理员为整个组织发布。如果你的组织对 Power Platform 连接器设置了数据策略,这些策略同样适用于 MCP 服务器。

智能体不调用工具。 检查请求头名称是否正好是 X-API-Key,密钥是否属于与 URL 相同的 MCP 服务器,并把 Server description 写得具体:Copilot Studio 根据它决定何时调用服务器。每次修改后重新发布智能体;在已打开的对话中输入 "start over" 即可使用新版本。

下一步

这份指南对你有帮助吗?

2 分钟将 Microsoft Dynamics 365 Sales 连接到 Microsoft Copilot

开始 AnythingMCP Cloud 免费试用,在引导式设置中连接 Microsoft Dynamics 365 Sales,再把你的 MCP URL 添加到 Microsoft Copilot。无需代码,也无需自行运行服务器。

相关指南

连接器

Dynamics 365 Sales MCP 接入 ChatGPT

让你的 AI 在 Dynamics 365 Sales 中工作:查找和更新客户、联系人、潜在客户和商机,记录任务、电话和备注,确认潜在客户并完成成交,还能用 OData 或 FetchXML 查询任意 Dataverse 表。通过 Dataverse Web API,使用你的 Microsoft 账户登录。

连接器

Dynamics 365 Sales MCP 接入 Claude

让你的 AI 在 Dynamics 365 Sales 中工作:查找和更新客户、联系人、潜在客户和商机,记录任务、电话和备注,确认潜在客户并完成成交,还能用 OData 或 FetchXML 查询任意 Dataverse 表。通过 Dataverse Web API,使用你的 Microsoft 账户登录。

连接器

Dynamics 365 Sales MCP 接入 Cursor

让你的 AI 在 Dynamics 365 Sales 中工作:查找和更新客户、联系人、潜在客户和商机,记录任务、电话和备注,确认潜在客户并完成成交,还能用 OData 或 FetchXML 查询任意 Dataverse 表。通过 Dataverse Web API,使用你的 Microsoft 账户登录。

连接器

Dynamics 365 Sales MCP 接入 Gemini CLI

让你的 AI 在 Dynamics 365 Sales 中工作:查找和更新客户、联系人、潜在客户和商机,记录任务、电话和备注,确认潜在客户并完成成交,还能用 OData 或 FetchXML 查询任意 Dataverse 表。通过 Dataverse Web API,使用你的 Microsoft 账户登录。

连接器

Dynamics 365 Sales MCP 接入 Meta Muse

让你的 AI 在 Dynamics 365 Sales 中工作:查找和更新客户、联系人、潜在客户和商机,记录任务、电话和备注,确认潜在客户并完成成交,还能用 OData 或 FetchXML 查询任意 Dataverse 表。通过 Dataverse Web API,使用你的 Microsoft 账户登录。

连接器

Dynamics 365 Sales MCP 服务器:Claude 与 ChatGPT

让你的 AI 在 Dynamics 365 Sales 中工作:查找和更新客户、联系人、潜在客户和商机,记录任务、电话和备注,确认潜在客户并完成成交,还能用 OData 或 FetchXML 查询任意 Dataverse 表。通过 Dataverse Web API,使用你的 Microsoft 账户登录。