返回顶部
热门问答 更多热门问答
技术文章 更多技术文章

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

[复制链接]
链载Ai 显示全部楼层 发表于 半小时前 |阅读模式 打印 上一主题 下一主题

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服务器,打开浏览器,完成所有操作,无需你编写一行代码。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

链载AI是专业的生成式人工智能教程平台。提供Stable Diffusion、Midjourney AI绘画教程,Suno AI音乐生成指南,以及Runway、Pika等AI视频制作与动画生成实战案例。从提示词编写到参数调整,手把手助您从入门到精通。
  • 官方手机版

  • 微信公众号

  • 商务合作

  • Powered by Discuz! X3.5 | Copyright © 2025-2025. | 链载Ai
  • 桂ICP备2024021734号 | 营业执照 | |广西笔趣文化传媒有限公司|| QQ