MCP的远程模式和本地模式
在 MCP (Model Context Protocol) 的配置文件中,这两种写法代表了两种截然不同的传输协议(Transport)和运行模式。
mcpserver可以配置url和包 这两个有什么区别 ?
{
"mcpServers": {
"guan": {
"url": "https://guan-open.alibaba-inc.com/session/4347ef0c79ab595e9284f79cf3777558/sse"
},
"Figma": {
"url": "https://mcp.figma.com/mcp"
},
"weavefox": {
"command": "weavefox",
"args": [
"server"
],
"disabled": false,
"autoApprove": []
},
"ftraffic-code": {
"url": "https://mcp.alibaba-inc.com/ftraffic-code/mcp",
"headers": {}
},
"browsermcp": {
"command": "npx",
"args": [
"@browsermcp/mcp@latest"
]
}
}
}
简单来说:url 是远程模式(SSE),command 是本地模式(Stdio)。
以下是详细的区别对比:
1. url 模式 (SSE Transport) 🔗︎
这种配置用于连接一个已经在运行的 Web 服务器。
- 工作原理: 客户端(如 Claude Desktop 或浏览器插件)作为 HTTP 客户端,通过 SSE (Server-Sent Events) 协议连接到该 URL。
- 示例中的
guan或Figma:- 它们是已经部署在云端或公司内网的 HTTP 服务。
- 服务端代码已经跑在某台服务器上了。
- 优点:
- 无需本地环境: 你的电脑不需要安装 Node.js、Python 或任何依赖包。
- 跨平台: 只要能连上网,不管是 Windows、Mac 还是浏览器里都能用。
- 集中管理: 公司可以统一维护一个 Server,所有员工配置同一个 URL 即可。
- 缺点: 无法直接操作你本地的文件系统(除非该 Server 运行在你的 localhost)。
2. command / args 模式 (Stdio Transport) 🔗︎
这种配置用于启动一个 本地进程。
- 工作原理: 客户端会直接在你的电脑上创建一个子进程(Subprocess),通过标准输入输出 (stdio/stdin/stdout) 进行数据交换。
- 示例中的
browsermcp或weavefox:command: "npx":意味着客户端会自动运行npx @browsermcp/mcp@latest。- 这会在你本地临时下载并启动这个工具。
- 优点:
- 本地权限: 该进程拥有你的本地权限,可以读写你的文件、操作你的浏览器、访问本地数据库。
- 按需启动: 只有当你打开 AI 客户端时,这个进程才会被启动;关闭客户端时,进程自动销毁。
- 缺点:
- 依赖环境: 你的电脑必须装有对应的运行环境(如 Node.js 或 Python)。
- 消耗本地资源: 每个 Server 都是一个独立的本地进程。
3. 核心区别对照表 🔗︎
| 特性 | url (SSE) | command (Stdio) |
|---|---|---|
| 连接对象 | 远程 Web 服务 / 已运行的服务 | 本地可执行文件 / 脚本 |
| 启动方式 | 客户端仅连接,不负责启动服务 | 客户端负责启动和杀死该进程 |
| 通信协议 | HTTP / SSE | Stdin / Stdout (管道) |
| 本地依赖 | 无 (只需网络) | 需要安装对应的 Runtime (Node/Py) |
| 典型用途 | SaaS 服务 (Figma)、公司内部 API | 文件操作、本地脚本、数据库管理 |
| 安全性 | 数据通过网络传输 (需 HTTPS) | 数据在本地进程间传输 |
AI / Agent、全栈工程与一人公司的新文章
我写 AI 与 Agent、全栈工程,以及一个人做公司的实践。文章发布后会发到你的邮箱。没有垃圾邮件,随时可以退订。