跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

项目 MCP 与优先级

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

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

配置文件

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 确认实际来源与工具。