之前每接一个外部工具,就要写一套适配代码:参数怎么传、结果怎么解析、错误怎么处理, 每个工具都不一样。换成 MCP 之后,这些差异收敛到协议层,业务代码只关心「调用哪个工具、传什么参数」。

为什么换成 MCP

主要的收益是统一。工具的描述、参数结构、返回格式都按同一套约定暴露出来, 不同的模型客户端可以复用同一批工具,不必为每个客户端重新封装一遍。

服务端配置

每个 MCP 服务一般以子进程或本地 HTTP 服务的形式启动,配置文件里写清楚启动命令、 需要的环境变量和工作目录。环境变量里不要硬编码密钥,放在本地的凭据存储里。

权限边界

接入之前先想清楚这个工具能做什么、不能做什么。文件读写、命令执行这类能力要给到最小的范围, 需要人工确认的操作就明确要求确认。把所有工具都开成完全权限,出了问题很难收场。

常见的连接失败

  • 启动命令的路径不对,或者依赖没有装在这个环境里。
  • 环境变量缺失,服务启动后立刻退出。
  • 端口被占用,尤其是本地 HTTP 形式启动的服务。
  • 版本不匹配,客户端和服务端支持的协议版本不一致。

排查时先单独把服务跑起来,确认它能正常响应,再接到客户端上,能省不少时间。