支持私有云部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


MCP的配置文件解析。不过讲真,配置文件仍然是MCP最失败的设计之一!

发布日期:2025-04-01 15:55:20 浏览次数: 1576 作者:字节笔记本
推荐语

MCP配置文件解析,揭露其设计的不足之处!

核心内容:
1. MCP配置文件使用的Json格式及其局限性
2. 配置路径和前置配置的不合理性
3. 明文配置带来的安全风险及改进建议
4. MCP功能介绍及客户端-服务器架构解析

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

54a166b9-b43f-4ec0-a6c3-9b092e9a584c.png

MCP(Model Context Protocol,模型上下文协议)是Anthropic于2024年11月开源的通信协议。

简单说,它就是AI模型除了返回文件还能读文件看数据库操作电脑。

一个案例:这才叫Agent! Claude3.7  MCP Blender 3D 建模

本文将会MCP的配置文件做一下解析,不过在这之前,我个人还是感觉配置文件任是MCP最失败的设计之一。原因有以下几个:

MCP默认是使用的Json格式,Json格式本身的局限性,作为配置格式有明显缺点:

  • 无法添加配置说明,降低了可维护性
  • 格式严格,一个逗号错误就会导致整个配置失效
  • 结构固定:缺乏灵活性,不如YAML等更适合复杂配置,也没有Scheme,很难得去调试。

配置路径很恶心,以官方Claude Desktop为例,配置文件的路径过于隐蔽,反正我现在都没有记住,另外:

  • 不同系统路径不一致, 这一点尤其是Windows用户,得手动加上很多的转义符号。
  • 缺乏明确的配置界面或引导,官方给一个按钮哪怕是可以直接打开配置都可以。

前置配置违背直觉,MCP这种从平台应用的配置模式采用"先配置,后使用"的方式,违背了普通用户的直觉:

  • 正常流程:用户先进入应用,在需要时才提供配置
  • MCP方式:要求用户预先在配置文件中设置好所有参数

这就像比登录一个网站平台,你不是记事本上写好用户名密码,再去网站登录,而不是打开网页后再填写登录信息。更合理的做法应该是统一入口协议后再按需配置,将配置参数化。然后又是因为明文配置同样变相导致了后面的问题。

安全风险:敏感信息明文存储,配置文件中的敏感信息以明文方式存储,带来严重安全隐患:

  • API密钥、访问令牌等完全暴露
  • 没有加密或混淆机制,导致在分享屏幕或截图时容易泄露

我就记得Windsurf官方有一次演示MCP教程时,主持人在视频里填写了Gmail token后还特意要求后期剪辑打码,实在是尴尬至极!

我个人觉得更好的设计方案:

  • 将配置项后移到Server,客户端仅提供默认配置,通过统一的协议来要求用户填写相关的参数,
  • 采用按需授权模式,而非预先配置。同时约定大于配置在很多的配置进行默认化处理,统
  • 一的配置入口和发现机制
  • 使用更友好的配置格式(如YAML,JOSN5
  • 提供凭证管理机制,安全存储敏感信息

MCP的简单介绍

MCP不只是一个简单的文件读取工具,它能做的远不止于此:

  • 读取本地资源:AI可以查看你电脑上的文件、数据库记录等
  • 使用本地工具:可以操作浏览器、执行SQL查询、管理Git等
  • 实时更新:资源变化时,主动推送最新信息
  • 保护隐私:所有操作在本地完成,敏感数据不会上传第三方


MCP采用客户端-服务器架构:

  • MCP客户端:通常是AI应用,比如Claude Desktop或cline插件
  • MCP服务器:轻量级程序,负责执行具体操作
  • 通信方式:基于JSON-RPC 2.0标准,保证通信稳定可靠

当AI需要读取文件时,它会发送一个JSON-RPC请求,MCP服务器处理后将文件内容返回给AI。整个过程对用户来说是完全无缝的!

当你让Claude"帮我查看sales.xlsx中的销售数据并生成报表"时,Claude会通过MCP客户端向你本地运行的MCP服务器发送请求,服务器读取文件内容返回给Claude,然后Claude为你分析数据。整个过程快速、安全,且无需手动上传文件。

Playwright MCP服务器的配置

以下是在VSCode中使用cline插件配置Playwright MCP服务器的步骤:

  • 安装cline插件(VSCode扩展市场搜索即可)
  • 在cline MCP扩展中搜索并安装playwright插件
  • 配置启动项:
{
"mcpServers": {"playwright": {"command": "npx","args": ["-y", "@executeautomation/playwright-mcp-server"]}
}}

配置详解

这个看似简单的配置项包含了丰富的信息:

首先,整个配套是一个嵌套关系,也就是一个配置文件,里面包含了多个server,而每个server又是如下的选项:

  • mcpServers:根级别键,定义所有MCP服务器配置
  • playwright:服务器实例名称,你可以配置多个不同的服务器
  • command:启动命令,这里用npx执行Node.js包
  • args:命令参数
    • -y:用于自动确认所有提示
    • @executeautomation/playwright-mcp-server:要执行的npm包名

NPX的执行机制:先拉后执行

上面配置中使用的NPX是什么?它的工作原理是什么?简单说,NPX是Node.js提供的包执行工具,采用"先拉后执行"的模式:

  • 拉取阶段:当你通过配置触发Playwright MCP服务器时,NPX会先检查本地或全局是否已安装该包。如果没有,它会从npm仓库临时下载@executeautomation/playwright-mcp-server包到临时目录。
  • 执行阶段:下载完成后,NPX会立即执行该包中的主程序,启动Playwright MCP服务器。
  • 清理阶段:任务完成后,NPX会自动清理临时下载的文件,不会污染你的系统环境。

这种机制带来几个重要好处:

  • 零配置:用户无需预先安装任何东西
  • 总是最新:每次执行都会获取最新版本
  • 环境隔离:避免版本冲突
  • 用完即走:不留下额外垃圾文件

配置完成后,你可以尝试让AI完成这样的任务:

"帮我打开百度,搜索'MCP协议',然后截图保存到桌面"


AI会调用Playwright服务器,打开浏览器,完成所有操作,无需你编写一行代码。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询