MCP服务器是什么(以及幕后实际发生了什么)
发布: (2026年5月4日 GMT+8 23:00)
4 分钟阅读
原文: Dev.to
Source: Dev.to
概览
到目前为止我们已经介绍了:
- MCP 为什么存在
- MCP 是什么
- 工具是什么
现在来回答一个关键问题:当模型决定使用工具时…到底是谁在实际运行它?
MCP 服务器是什么
- 暴露工具并执行工具 的组件。
- 不仅仅是你的后端——它位于 你的后端之上,专为 LLM 交互而设计。
MCP 服务器的职责
-
向模型描述可用工具
- 有哪些工具
- 它们的功能是什么
- 需要哪些输入
这些信息是模型“看到”的内容。
-
在执行前验证请求
- 必填字段是否存在?
- 类型是否正确?
验证可以防止错误或不安全的执行。
-
执行真实工作
- 数据库查询
- API 调用
- 业务逻辑
简单流程示例
用户请求
Show my last 3 orders
模型输出(结构化)
{
"tool": "get_user_orders",
"arguments": {
"user_id": "123",
"limit": 3
}
}
MCP 服务器处理
- 检查
user_id是否存在且limit是数字。 - 执行类似下面的语句:
SELECT * FROM orders WHERE user_id = 123 LIMIT 3;
- 将结构化数据返回给模型。
模型最终响应
Here are your last 3 orders…
模型永远不会做的事
- 直接触碰你的数据库
- 直接调用 API
- 运行任何代码
这些都由 MCP 服务器处理。
这种分离的好处
- 更好的安全性——模型永远不会直接访问资源。
- 更清晰的架构——决策层与执行层明确分离。
- 受控执行——验证和沙箱机制都在服务器中完成。
- 可复用系统——工具可以在不同模型之间共享。
类比:餐厅
- 模型 → 决定点什么菜。
- MCP 服务器 → 厨房,负责烹饪。
- 工具 → 菜单上的项目。
模型不做饭,只是选择。
对 LLM 友好的工具设计
LLM 需要:
- 清晰、描述性的名称
- 结构化的输入(例如 JSON)
- 简单的操作
设计不佳的工具会导致崩溃、错误操作或安全问题。
模型不做的事
- 决定使用哪个工具(模型负责选择,但服务器负责执行)。
- 超出工具选择之外理解用户意图。
- 生成最终响应(模型在收到工具结果后完成此步骤)。
MCP 的基础
- 模型决定 使用哪个工具。
- 服务器执行 该工具。
现在我们已经了解了执行层,谁把模型和服务器连接起来?
那就是 MCP 客户端 —— 负责让所有部件协同工作的组件。