Skip to content
FunCoding

Search

Search docs, Skills and MCP

项目 MCP 与优先级

共享仓库 MCP 定义,处理同名覆盖、目录信任及 VS Code 配置迁移。

This page has not been translated into English yet. The original Chinese version is shown below.

项目配置让协作者在同一仓库发现相同服务器。它可能启动仓库指定的进程,因此只在检查并信任目录后加载。

配置文件

CLI 从当前工作目录向 Git 根查找 .mcp.json 和 .github/mcp.json。后者适合随仓库共享,前者也常用于本地 checkout 设置。

{
  "mcpServers": {
    "playwright": {
      "type": "stdio",
      "command": "npx",
      "args": ["@playwright/mcp@latest"],
      "tools": ["*"]
    }
  }
}

这是官方示例的 stdio 形式。项目也接受服务器名直接位于 JSON 顶层的形式,不必一定有 mcpServers 包装。

同一目录内 .mcp.json 优先于 .github/mcp.json;不同目录的同名服务器,离当前工作目录近的优先。

跨来源优先级

从高到低:

  1. --additional-mcp-config 本次启动附加配置。
  2. 插件提供的服务器。
  3. 工作区 .mcp.json / .github/mcp.json。
  4. 用户 ~/.copilot/mcp-config.json。

这与 Agents / Skills 的 first-found 规则不同。插件之间同名 MCP 以后加载者为准,并显示冲突来源警告;需要本次明确覆盖时使用启动附加配置。

信任与非交互模式

交互和 SDK server 模式在目录可信时加载工作区配置。copilot -p 中,已信任目录自动加载;未信任目录默认跳过,因为无法展示信任弹窗。

确认配置可信且确需在未保存信任的非交互环境加载时,官方提供 GITHUB_COPILOT_PROMPT_MODE_WORKSPACE_MCP=true。这是加载工作区服务器的信任决定,不是工具自动批准。

从 VS Code 迁移

CLI 不读取 .vscode/mcp.json,其顶层 servers 不属于 CLI 支持格式。官方提供的 POSIX 转换:

jq '{mcpServers: .servers}' .vscode/mcp.json > .mcp.json

需要已安装 jq,命令会写入或覆盖 .mcp.json。先检查已有目标内容,再核对服务器命令、凭据变量与具体字段是否适合 CLI;仅转换顶层键不代表所有客户端能力都相同。

修改与错误处理

/mcp edit、/mcp delete 对工作区定义会指出应编辑的源文件,不会悄悄创建被工作区遮蔽的用户条目。终端 remove 也仅删除用户级服务器。

工作区文件中单个服务器无效时,CLI 警告并跳过该项,继续加载其他有效条目;JSON 或顶层结构整体无效时跳过整个文件。用 /mcp list 和 /mcp show NAME 确认实际来源与工具。