MCP协议是怎么工作的?

你有没有想过,AI 不光能聊天、写代码,还能自己读日志、连GitHub找Bug,甚至自动发Slack告诉你结果?现在听起来有点像“科幻片”,但实际上,MCP 协议就正在把这事一步步变成现实。

它不仅仅是一个聊天协议,而是一个“AI动手干活”的标准框架,让大模型(比如Claude、Cursor里的AI Agent)拥有像人一样“自己找资料、判断行动、执行任务”的能力。

我来带你看看,这个神奇的 MCP 是怎么工作的

MCP的整体工作机制

MCP的架构分成五个部分,我们可以简单理解成这样:

  1. Host:AI应用本体,像 Claude Desktop、Cursor 等,就是模型运行的地方
  2. Client:通道维护者,负责保持与 Server 的稳定通信连接
  3. Server:能力提供者,告诉 AI 它能做哪些事,比如“我会查GitHub”“我会发Slack消息”等
  4. 本地数据源:本地文件、数据库、API,Server可以调用它们
  5. 远程服务:像 GitHub、Slack 这样的互联网服务,同样被 Server 接入使用

ai_tutorial_mcp_advanced_how_work_1

最核心的,就是 MCP Server。它就像是模型和“现实世界”之间的中间桥梁,让AI知道这个世界上能做什么,并怎么做。

举个例子

你现在希望AI自动完成这么一件事:

“查一下本地日志里有没有错误,如果有,就去 GitHub 上看看是不是已知的问题,然后把结果发到 Slack。”

这事听起来步骤不少,但你不用写全流程代码。你只需要把它们“拆”成几个 MCP Server:

  • 一个 Local Log Server,用来查日志
  • 一个 GitHub Server,用来查 Issue
  • 一个 Slack Server,用来发通知

AI Agent 收到这句话后,会:

  1. 向 Local Log Server 发送请求
  2. 拿到结果后,判断是否要调用 GitHub Server 查Issue
  3. 如果发现没有现成的Issue,还能自动调用 GitHub API 发起新Issue
  4. 最后把结果打包发给 Slack Server

全程不需要人类复制粘贴、不需要你告诉它一步一步怎么做,它自己就能“做决策 + 调工具”。

那 MCP Server 到底是怎么设计的?

来看个实打实的例子,这个例子里我们做了一个 MCP Server,它可以帮 AI 实现三件事:

  • 搜 GitHub 仓库
  • 查 GitHub Issue
  • 发起新的 GitHub Issue

只需要写几段代码,就能“告诉”AI:

    
ts
server.setRequestHandler(ListToolsRequestSchema, async () => {
  return {
    tools: [
      {
        name: "search_repositories",
        description: "Search for GitHub repositories",
        inputSchema: zodToJsonSchema(repository.SearchRepositoriesSchema),
      },
      {
        name: "create_issue",
        description: "Create a new issue in a GitHub repository",
        inputSchema: zodToJsonSchema(issues.CreateIssueSchema),
      },
      {
        name: "search_issues",
        description: "Search for issues and pull requests across GitHub repositories",
        inputSchema: zodToJsonSchema(search.SearchIssuesSchema),
      }
    ],
  };
});

是不是很清楚?AI看到这些“工具清单”,就知道它可以干哪些事、每个“工具”要什么参数。

接下来是调用逻辑:

    
ts
server.setRequestHandler(CallToolRequestSchema, async (request) => {
  switch (request.params.name) {
    case "search_repositories":
      // 调GitHub API搜索仓库
    case "create_issue":
      // 发起一个新的Issue
    case "search_issues":
      // 查已有的Issue
  }
});

这些API其实背后还是调用 GitHub 的官方 API,但对AI来说,它只知道 MCP Server 给了它一套“能调用的工具”,并不用关心背后的实现细节。

那些参数和Schema是干嘛的?

MCP不只是告诉AI“我能干啥”,还得告诉它“怎么干”和“要输入啥”。

比如:

    
ts
export const SearchRepositoriesSchema = z.object({
  query: z.string().describe("Search query (see GitHub search syntax)"),
  page: z.number().optional().describe("Page number for pagination"),
  perPage: z.number().optional().describe("Number of results per page"),
});

这段代码就是让AI知道,调用 search_repositories 工具时,你得给我一个 query,要查啥。

它不仅有字段名,还有描述,AI可以基于这些自动构建正确的调用格式。

所以 MCP 是一个规范、一个共识

说白了,MCP Server 就是告诉AI:“我有这些工具,它们能做这些事,需要这些参数,用的时候叫我一声。”

和你平时做API开发没啥两样,但它最大不同在于:

  • 不用你告诉AI“先做什么再做什么”,它自己看完可用工具后就能规划
  • 参数结构清晰、标准,AI直接能懂、能生成调用请求
  • 多个Server之间可以组合串联,形成强大的任务链路

最后

以前我做AI集成开发的时候,最痛苦的不是模型答得不好,而是“模型明明知道答案,但不会动手干事”。

现在有了 MCP Server,一切都变得可编排、可扩展了。你不再是写死每个操作,而是通过 MCP 把服务变成“能力组件”,AI就像拥有了一整套“万能工具包”,说干就干,不求人。

未来我打算每搞一个AI项目,就从“把能力封装成 MCP Server”开始做,然后AI自己来调用。这样更通用、也更灵活,扩展起来几乎没有上限。

所以如果你想让AI不只是“说得对”,还“做得好”,那MCP真的是你值得认真研究的下一站。

阅读全文
RPA
八爪鱼RPA
支持一键抓取公众号/小红书/抖音/淘宝数据
立即查看
流程自动化
付费
AI爆文训练营
图文变现友好赛道,低门槛、高上限,教你从0到1做个赚钱的公众号!
立即查看
躺着赚钱
¥149/年
何老师陪你做副业
这里聚焦AI副业、个人IP、自媒体运营、写作、赚钱案例。不哔哔,只分享有价值的副业项目。
立即查看
AI赚钱案例
限免
DeepSeek进阶教程
带你全面掌握DeepSeek应用技巧。提升工作、学习效率
立即查看
100万人学过
付费
网盘拉新实战教程
每周花费一小时,手把手教你赚网盘平台佣金
立即查看
500人学过
限时优惠
AiPPT
结合最新AI技术,为用户提供一键生成高质量PPT的解决方案。
立即查看
一键生成 PPT
免费
豆包MarsCode
一款免费的AI编程助手,全新支持DeepSeek R1/V3、豆包大模型1.5自由切换,免部署、更准确、更强大!
立即查看
AI编程助手
免费
Monica AI
Monica AI满血复活DeepSeek【免费】,提升您的聊天、搜索、写作和编程体验。
立即查看
一站式 AI 助手
云服务
腾讯云
综合性的云计算服务平台,现已接入DeepSeek,提供多样化的云解决方案
立即查看
高效可靠
云服务
阿里云
全球领先的云计算与数据服务平台,提供云服务器、存储、数据库、安全等多种服务
立即查看
多样化
DeepSeek企业微信码
免费领取DeepSeek资料