mcpField
M
mcp-configure

mcp-configure

github.com/githubAgent 工作流40.5k7.0k 次安装今天更新
代码仓库

关于 mcp-configure

为 GitHub Copilot 配置 Dataverse MCP 服务的技能,使用组织环境 URL。它引导用户选择配置范围和端点、发现或手动输入环境,并在更新配置时保留其他条目。

主要功能

  1. 01全局或仅限项目的配置
  2. 02通过 Azure 发现环境
  3. 03手动输入环境 URL
  4. 04选择 GA 或 Preview 端点
  5. 05保留已有服务条目
  6. 06注册组织专属服务

适用场景

  1. 01将 Dataverse 添加到 GitHub Copilot
  2. 02配置项目级 MCP 访问
  3. 03注册 Preview 端点
  4. 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 服务:

  1. 全局(在所有项目中可用)
  2. 仅项目(仅在此项目中可用)

根据他们的选择,设置 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?

  1. 自动发现 — 从你的 Azure 账户列出可用环境(需要 Azure CLI)
  2. 手动输入 — 直接输入 URL

根据他们的选择:

  • 如果选择 自动发现:继续第 2a 步
  • 如果选择 手动输入:跳到第 2b 步
2a. 自动发现环境

检查先决条件:

  • 验证已安装 Azure CLI(az)(使用 which az 或在 Windows 上使用 where az 检查)
  • 如果未安装,告知用户并回退到第 2b 步

进行 API 调用:

  1. 检查用户是否已登录 Azure CLI:

    az account show
    

    如果失败,提示用户登录:

    az login
    
  2. 获取 Power Apps API 的访问令牌:

    az account get-access-token --resource https://service.powerapps.com/ --query accessToken --output tsv
    
  3. 调用 Power Apps API 列出环境:

    GET https://api.powerapps.com/providers/Microsoft.PowerApps/environments?api-version=2016-11-01
    Authorization: Bearer {token}
    Accept: application/json
    
  4. 解析 JSON 响应,并筛选出 properties?.linkedEnvironmentMetadata?.instanceUrl 不为 null 的环境。

  5. 对于每个匹配的环境,提取:

    • properties.displayName 作为 displayName
    • properties.linkedEnvironmentMetadata.instanceUrl(移除末尾斜杠)作为 instanceUrl
  6. 按以下格式创建环境列表:

    [
      { "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 环境。你想配置哪一个?

  1. My Org(默认)— https://orgfbb52bb7.crm.dynamics.com (已配置)
  2. Another Env — https://orgabc123.crm.dynamics.com

输入你所选选项的编号,或输入 "manual" 自行输入 URL。

如果用户选择了已配置的环境,请在继续之前确认他们想要重新注册它(例如,为了更改终结点类型)。

如果用户输入 "manual",则回退到第 2b 步。

4. 确认所选 URL

从所选环境中获取 instanceUrl(或手动输入的 URL),并去除末尾的斜杠。在本技能的后续步骤中,这就是 USER_URL。

5. 确认用户想要 "Preview" 还是 "Generally Available (GA)" 端点

询问用户:

你想使用哪个端点?

  1. Generally Available (GA) — /api/mcp(推荐)
  2. 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 生成唯一的服务名称:

  1. 从 URL 中提取子域(组织标识符)
    • 示例:https://orgbc9a965c.crm10.dynamics.com → orgbc9a965c
  2. 在前面加上 DataverseMcp 以创建服务名称
    • 示例:DataverseMcporgbc9a965c

这就是 SERVER_NAME。

更新配置文件:

  1. 如果 CONFIG_PATH 是项目作用域配置(.mcp/copilot/mcp.json),请先确保目录存在:

    mkdir -p .mcp/copilot
    
  2. 读取 CONFIG_PATH 处现有的配置文件,如果不存在则创建一个新的空配置:

    {}
    
  3. 确定使用哪个顶层键:

    • 如果配置中已有 "servers",则使用该键
    • 否则,使用 "mcpServers"
  4. 添加或更新服务条目:

    {
      "mcpServers": {
        "{SERVER_NAME}": {
          "type": "http",
          "url": "{MCP_URL}"
        }
      }
    }
    
  5. 将更新后的配置写回 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/ 目录的权限

评论

支持 Markdown