关于 mcp-configure
为 GitHub Copilot 配置 Dataverse MCP 服务的技能,使用组织环境 URL。它引导用户选择配置范围和端点、发现或手动输入环境,并在更新配置时保留其他条目。
主要功能
- 01全局或仅限项目的配置
- 02通过 Azure 发现环境
- 03手动输入环境 URL
- 04选择 GA 或 Preview 端点
- 05保留已有服务条目
- 06注册组织专属服务
适用场景
- 01将 Dataverse 添加到 GitHub Copilot
- 02配置项目级 MCP 访问
- 03注册 Preview 端点
- 04更新已有服务 URL
MCP 相关
配置 GitHub Copilot 通过 HTTP 连接 Dataverse MCP 服务,并将所选环境端点写入全局或项目级配置。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ github/ awesome-copilot --skill mcp-configure安装后在 Claude Code 中输入/mcp-configure确认已加载。
详细介绍
为 GitHub Copilot 配置 Dataverse MCP
此技能会使用你的组织环境 URL 为 GitHub Copilot 配置 Dataverse MCP 服务。每个组织都会根据组织标识符注册一个唯一的服务名称(例如 DataverseMcporgbc9a965c)。如果用户提供了 URL,则为:$ARGUMENTS。
说明
0. 询问 MCP 范围
询问用户是要全局配置 MCP 服务,还是仅为此项目配置:
你想如何配置 Dataverse MCP 服务:
- 全局(在所有项目中可用)
- 仅项目(仅在此项目中可用)
根据他们的选择,设置 CONFIG_PATH 变量:
- 全局:
~/.copilot/mcp-config.json(使用用户的主目录) - 项目:
.mcp/copilot/mcp.json(相对于当前工作目录)
保存此路径,以便在第 1 步和第 6 步中使用。
1. 检查已配置的 MCP 服务
读取位于 CONFIG_PATH(在第 0 步中确定)的 MCP 配置文件,以检查已配置的服务。
该配置文件是一个 JSON 文件,结构如下:
{
"mcpServers": {
"ServerName1": {
"type": "http",
"url": "https://example.com/api/mcp"
}
}
}
或者它可能使用 "servers" 而不是 "mcpServers" 作为顶层键。
从已配置的服务中提取所有 url 值,并将其保存为 CONFIGURED_URLS。例如:
["https://orgfbb52bb7.crm.dynamics.com/api/mcp"]
如果文件不存在或为空,则将 CONFIGURED_URLS 视为空([])。此步骤绝不能阻塞该技能。
2. 询问如何获取环境 URL
询问用户:
你想如何提供你的 Dataverse 环境 URL?
- 自动发现 — 从你的 Azure 账户列出可用环境(需要 Azure CLI)
- 手动输入 — 直接输入 URL
根据他们的选择:
- 如果选择 自动发现:继续第 2a 步
- 如果选择 手动输入:跳到第 2b 步
2a. 自动发现环境
检查先决条件:
- 验证已安装 Azure CLI(
az)(使用which az或在 Windows 上使用where az检查) - 如果未安装,告知用户并回退到第 2b 步
进行 API 调用:
-
检查用户是否已登录 Azure CLI:
az account show如果失败,提示用户登录:
az login -
获取 Power Apps API 的访问令牌:
az account get-access-token --resource https://service.powerapps.com/ --query accessToken --output tsv -
调用 Power Apps API 列出环境:
GET https://api.powerapps.com/providers/Microsoft.PowerApps/environments?api-version=2016-11-01 Authorization: Bearer {token} Accept: application/json -
解析 JSON 响应,并筛选出
properties?.linkedEnvironmentMetadata?.instanceUrl不为 null 的环境。 -
对于每个匹配的环境,提取:
properties.displayName作为displayNameproperties.linkedEnvironmentMetadata.instanceUrl(移除末尾斜杠)作为instanceUrl
-
按以下格式创建环境列表:
[ { "displayName": "My Org (default)", "instanceUrl": "https://orgfbb52bb7.crm.dynamics.com" }, { "displayName": "Another Env", "instanceUrl": "https://orgabc123.crm.dynamics.com" } ]
如果 API 调用成功,继续第 3 步。
如果 API 调用失败(用户未登录、网络错误、未找到环境或任何其他错误),告知用户出了什么问题,并回退到第 2b 步。
2b. 手动输入 — 询问 URL
要求用户直接提供其环境 URL:
请输入你的 Dataverse 环境 URL。
示例:
https://myorg.crm10.dynamics.com你可以在 Power Platform 管理中心的“环境”下找到它。
然后跳到第 4 步。
3. 要求用户选择环境
以编号列表形式呈现环境。对于每个环境,检查 CONFIGURED_URLS 中是否有任何 URL 以该环境的 instanceUrl 开头 — 如果有,则在该行追加 (已配置)。
我在你的账户中找到了以下 Dataverse 环境。你想配置哪一个?
- My Org(默认)—
https://orgfbb52bb7.crm.dynamics.com(已配置)- Another Env —
https://orgabc123.crm.dynamics.com输入你所选选项的编号,或输入 "manual" 自行输入 URL。
如果用户选择了已配置的环境,请在继续之前确认他们想要重新注册它(例如,为了更改终结点类型)。
如果用户输入 "manual",则回退到第 2b 步。
4. 确认所选 URL
从所选环境中获取 instanceUrl(或手动输入的 URL),并去除末尾的斜杠。在本技能的后续步骤中,这就是 USER_URL。
5. 确认用户想要 "Preview" 还是 "Generally Available (GA)" 端点
询问用户:
你想使用哪个端点?
- Generally Available (GA) —
/api/mcp(推荐)- Preview —
/api/mcp_preview(最新功能,可能不稳定)
根据他们的选择:
- 如果选择 GA:将
MCP_URL设置为{USER_URL}/api/mcp - 如果选择 Preview:将
MCP_URL设置为{USER_URL}/api/mcp_preview
6. 注册 MCP 服务
更新位于 CONFIG_PATH(在第 0 步中确定)的 MCP 配置文件,以添加新服务。
根据 USER_URL 生成唯一的服务名称:
- 从 URL 中提取子域(组织标识符)
- 示例:
https://orgbc9a965c.crm10.dynamics.com→orgbc9a965c
- 示例:
- 在前面加上
DataverseMcp以创建服务名称- 示例:
DataverseMcporgbc9a965c
- 示例:
这就是 SERVER_NAME。
更新配置文件:
-
如果
CONFIG_PATH是项目作用域配置(.mcp/copilot/mcp.json),请先确保目录存在:mkdir -p .mcp/copilot -
读取
CONFIG_PATH处现有的配置文件,如果不存在则创建一个新的空配置:{} -
确定使用哪个顶层键:
- 如果配置中已有
"servers",则使用该键 - 否则,使用
"mcpServers"
- 如果配置中已有
-
添加或更新服务条目:
{ "mcpServers": { "{SERVER_NAME}": { "type": "http", "url": "{MCP_URL}" } } } -
将更新后的配置写回
CONFIG_PATH,并使用正确的 JSON 格式(2 空格缩进)。
重要说明:
- 不要覆盖配置文件中的其他条目
- 保留现有的结构和格式
- 如果
SERVER_NAME已存在,则用新的MCP_URL更新它
继续执行第 7 步。
7. 确认成功并指示重启
告诉用户:
✅ 已为 GitHub Copilot 配置 Dataverse MCP 服务,地址为
{MCP_URL}。配置已保存至:
{CONFIG_PATH}重要:你必须重启编辑器,更改才能生效。
重启编辑器或重新加载窗口,之后你将能够:
- 列出 Dataverse 环境中的所有表
- 查询任意表中的记录
- 创建、更新或删除记录
- 浏览你的架构和关系
8. 故障排除
如果出现问题,帮助用户检查:
- URL 格式是否正确(
https://<org>.<region>.dynamics.com) - 他们是否有权访问 Dataverse 环境
- 环境 URL 是否与 Power Platform Admin Center 中显示的 URL 匹配
- 他们的环境管理员是否已在 Allowed Clients 列表中启用 "Dataverse CLI MCP"
- 他们的环境是否已启用 Dataverse MCP,以及如果他们尝试使用预览端点,该端点是否已启用
- 对于项目作用域配置,确保
.mcp/copilot/mcp.json文件已成功创建 - 对于全局配置,检查
~/.copilot/目录的权限