跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

MCP 字段与连接诊断

设置传输、环境变量、超时、工具缓存和输出过滤,定位本地服务器连接问题。

用户持久配置放在 ~/.copilot/mcp-config.json;一次性配置用 --additional-mcp-config。先确定实际生效的来源,再调整字段,避免编辑了被覆盖的用户定义。

本地与远程字段

字段用途
typelocal / stdio 本地,http / streamable-http / sse 远程
command、args本地可执行文件与参数数组
url远程服务器地址
tools["*"] 或具体工具名称列表
env本地变量,支持 $VAR、${VAR}、${VAR:-default}
cwd本地服务器工作目录
headers远程 HTTP 请求头,支持变量展开
timeout工具发现和调用超时,默认 30000 毫秒
deferTools默认 auto;never 使工具始终可见
slowConnectionThresholdMs慢连接警告阈值,默认 10000 毫秒

type 在本地可省略,默认为 local;远程需要明确指定。streamable-http 归一化为 http。工具列表过多时可结合工具搜索,不要把 deferTools 当成关闭服务器。

超时与警告不同

slowConnectionThresholdMs 只决定何时显示“连接比预期慢”,不会延长允许连接或调用的时间。它必须是正整数且不超过 2147483647。

命令参考同时明确:实际连接预算由 timeout 决定,但至少 60000 毫秒;工具发现与调用字段默认仍是 30000 毫秒。不要把“10 秒发出慢连接警告”理解成已经超时,也不要据默认字段推断初始化必在 30 秒终止。

工具快照缓存

本地服务器的工具列表快照可在启动时立即提供工具,后台仍会进行实际发现并更新快照。单服务器 disableToolCache: true 可停用快照读取和保存;进程级用 COPILOT_MCP_TOOL_CACHE=false。

两种方式都保留已有缓存文件。禁用缓存不等于清理数据,也不等于停止服务器。

输出与名称

stdio 的 stdout 保留给逐行 JSON-RPC,日志写 stderr。CLI 会过滤普通文本、堆栈和空行;超过 1 MB 的行不进行结构检查,直接交给协议处理,避免损坏大型有效消息。服务器不应依赖过滤器代替正确输出。

服务器名允许可打印字符,但不允许控制字符和 }。传给模型的组合工具名会清理特殊字符,Unicode 使用 Punycode,最大 64 字符;截断冲突时追加数字区分。显示名称与模型工具名称不一定逐字相同。

filterMapping 控制工具结果过滤:默认 hidden_characters,移除隐藏或控制字符;也可选 markdown 或 none。

沙箱与内置服务器

实验性沙箱中的本地 MCP 显示 connected (sandboxed)。切换沙箱只重启本地 stdio 服务器,HTTP / SSE 保持连接且不在本地沙箱中运行。

命令参考列出内置 github-mcp-server、playwright、fetch 和 time。--disable-builtin-mcps 禁用全部内置服务器,--disable-mcp-server NAME 禁用指定服务器。内置或外部工具仍受其适用权限约束。