大宾的私人知识杂志

AI 应用工程入门(十四):MCP 为什么是连接层?

用普通人能听懂的方式解释 MCP 如何标准化连接工具、数据、Prompt 和外部系统。

2026-06-154 min

AI 从聊天进入真实工作流后,必须连接文件、数据库、浏览器、设计稿、部署平台和内部业务系统。MCP 解决的就是这些外部能力如何标准化接入的问题。

题目 1:MCP 是什么?

标准答案:MCP 全称 Model Context Protocol,是让 AI 应用连接外部系统的开放协议。可以理解成 AI 应用连接工具、数据和工作流的标准接口。

工程要点:MCP 不是模型,也不是 Agent。它是模型和外部世界之间的连接协议。它的价值在于让工具、上下文和工作流入口标准化。

题目 2:MCP 解决什么问题?

标准答案:它解决 AI 应用接入外部能力太分散的问题。没有 MCP 时,不同客户端各有一套插件和工具格式;有 MCP 后,一个 Server 可以被多个支持 MCP 的客户端接入。

工程要点:如果一个能力需要被多个 AI 工作流复用,就适合考虑 MCP 化。比如文件系统、数据库、Git、浏览器、部署平台和内部业务系统。

题目 3:MCP 里最重要的能力是什么?

标准答案:Resources、Tools 和 Prompts。Resources 是给模型看的上下文数据;Tools 是模型可以请求调用的函数;Prompts 是可复用的提示模板或工作流入口。

工程要点:可以记成:Resources 是看什么,Tools 是做什么,Prompts 是怎么开始做。

一个 MCP Server 的简化示意可以这样理解:

TypeScript代码示例
server.resource("docs://handbook", async () => {
  return {
    contents: [
      {
        uri: "docs://handbook",
        text: await readHandbook(),
      },
    ],
  };
});

server.tool("search_docs", {
  query: z.string(),
}, async ({ query }) => {
  return searchDocuments(query);
});

server.prompt("answer_with_sources", () => ({
  messages: [
    {
      role: "user",
      content: "请基于检索资料回答,并列出来源。",
    },
  ],
}));

这三个入口对应三件事:给模型资料、让模型请求动作、提供可复用任务模板。MCP 的意义不是多一个名词,而是把这些连接方式统一起来。

题目 4:MCP Client、Server、Host 分别是什么?

标准答案:Host 是用户使用的 AI 应用,Client 是 Host 内部负责连接 MCP Server 的组件,Server 是暴露工具、资源和 Prompt 的服务。

工程要点:学习 MCP 时,先会用现成 Server,再理解 Tools、Resources、Prompts,然后写简单只读工具,最后再接入有权限风险的业务工具。

题目 5:MCP 最大安全风险是什么?

标准答案:MCP 让 AI 能接触真实文件、数据库和外部 API,所以风险包括越权读取、误调用危险工具、Prompt Injection 诱导工具调用、token 泄露和跨租户数据泄漏。

工程要点:原则是最小权限、用户确认、敏感工具分级、参数校验、日志审计。模型可以建议调用工具,但后端必须决定能不能执行。

完整示例:MCP 把工具、资源和 Prompt 标准化

MCP 这节不能只讲概念。它的价值在于把外部能力标准化:文件、数据库、浏览器、设计稿、部署平台、内部系统,都可以通过 MCP Server 暴露给支持 MCP 的客户端。这样能力不用为每个客户端重复接一套。

MCP 里最重要的是三类入口:Resources、Tools、Prompts。Resources 是给模型看的资料,Tools 是模型可以请求调用的动作,Prompts 是可复用的任务入口。

示例代码示例
Resources:看什么,例如 docs://handbook、db://schema/users。
Tools:做什么,例如 search_docs、query_database、create_ticket。
Prompts:怎么开始做,例如 answer_with_sources、review_pr。

一个简化的 MCP Server 可以这样理解:

TypeScript代码示例
server.resource("docs://handbook", async () => ({
  contents: [
    {
      uri: "docs://handbook",
      text: await readHandbook(),
    },
  ],
}));

server.tool("search_docs", { query: z.string() }, async ({ query }) => {
  return searchDocuments(query);
});

server.prompt("answer_with_sources", () => ({
  messages: [
    { role: "user", content: "请基于资料回答,并列出来源。" },
  ],
}));

学习 MCP 的顺序应该是:先会用现成 Server,再理解 Tools、Resources、Prompts,然后写只读工具,最后再接有权限风险的业务工具。不要一上来就给模型写数据库写入工具。

MCP 的安全原则和 Tool Calling 一样:最小权限、用户确认、参数校验、日志审计。模型可以请求工具,但工具能不能执行,要由 Host、Client 或 Server 的安全规则决定。

这一课的完整答案是:MCP 不是模型,也不是 Agent,而是 AI 工程的连接层。它让工具、数据和任务入口能被标准化复用。

这一篇最该带走的结论是:MCP 是 AI 工程里的连接层。它把模型、工具、数据和工作流标准化接起来。