MCP简单入门

MCP简单入门

​ 本文章是最近成为话题的 MCP 入门文章

​ 关于 MCP (Model Context Protocol) 本文将以以下三步来介绍

  1. 逐渐理解
  2. 小试牛刀
  3. 深层理解

​ 即便是关于 MCP 什么都不懂的新人,只要按照顺序读这个文章的话,就以【能逐渐理解 MCP,并且能够简单的进行实际使用】作为目标吧!


逐渐理解

​ MCP 的话,简单来说就是为了将 LLM 应用 和 外部服务 进行连接而制造出来的接口(协议)

1

​ LLM 应用是诸如 ChatGPT、Claude、Cursor 等使用大语言模型 (LLM) 的应用程序

  • :warning:注意:这里说的并不是类似于 GPT-4o 或者是 DeepSeek R1 那种独立的大语言模型

​ 早期的 LLM 应用不管怎么发展都只是一个十分聪明的聊天工具,只会回应文本

​ 为了这个,人们需要对LLM应用所给出的回复做出相应的判断

2

​ 最初解决这个问题的是 OpenAI的Function Calling

​ 通过使用 Function Calling,让 LLM 判断执行什么动作,同时利用指定的 JSON 响应,使LLM应用能直接执行动作。

3

​ 但是 LLM 应用那边需要对应无数的外部服务,一个一个实装连接的话总会有个头。这时候,就需要出现一个新的服务来解决这个问题。

4

​ 就这样,为了统一 LLM 应用 和 外部服务 进行连接的接口(协议)MCP 就此登场。 ​ 通过外部服务提供商(或者是第三方服务)构建 MCP Server(后文将详细说明)的机制,各 LLM 应用无需进行额外开发,即可通过标准化接口调用外部服务资源。

5


小试牛刀

​ 中文里有句古话,叫做**实践出真知!**不试试怎么知道会不会呢?那么我们来实际使用 MCP 试一试吧!

​ 这里,我们和 官方文档 一样,来试试 Filesystem MCP Server

  • 下面的内容将会出现像【MCP Server】那样可能是第一次看到的词语,稍后将会详细介绍。这里暂时将就着看就可以了!

​ 这里需要安装 Claude 的桌面端软件,没有的就安装一下

配置 MCP Server

​ 首先,在 Claude 上配置 Filesystem MCP Server

  1. 在软件的菜单栏 FileSettingsDeveloper
  2. 然后选择 Get Started 跟着里面的内容来配置先提环境

6

​ 在下面的路径新建一个设定文件

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • macOS: ~/Library/Application\ Support/Claude/claude_desktop_config.json
  1. 在上述文件添加上以下内容,{username} 还请换成自己电脑上的用户名

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    
    {
      "mcpServers": {
        "filesystem": {
          "command": "npx",
          "args": [
            "-y",
            "@modelcontextprotocol/server-filesystem",
            "/Users/{username}/Downloads" // TODO: 请把 username 替换为你的用户名。
          ]
        }
      }
    }
    
  2. 这样准备工作就做完了!可以重启 Claude 了。不出意外的话,首页上就会出现🔨图标,并且也会显示可用的功能组

    7

  3. 来试试能不能用吧!向 Claude 提问 “Show recently downloaded files”,之后会出现 “Allow tool from “filesystem” (local)?"(允许工具访问本地文件吗?) 的选项,选择 “Allow for this chat”(在这个对话中允许) 即可

    8

​ 然后 Claude 就很正常的把你电脑里下载的文件说出来了

9


深层理解

​ 在刚刚的实际操作中体验并建立基本认知后,让我们进一步深度解析 MCP 的技术架构与实现原理。

组件

​ 在 MCP 中,主要有 5 个组件。

术语 说明
LLM 应用 指提供使用 LLM(大型语言模型)接口的应用程序,例如 ChatGPT、Claude、Cursor 等。请注意与 LLM 本身区分开来。在官方文档中也称为 LLM Host。
LLM LLM 应用所使用的 LLM 模型。多数情况下是通过 API 远程调用的模型。
MCP Client 遵循 MCP 协议并与 MCP Server 通信的客户端。每个 LLM 应用中 MCP Client 与 MCP Server 通常是一对一的关系,也可以存在多个 MCP Client。
MCP Server 在 MCP Client 与 外部服务 之间起桥梁作用的轻量级服务器。可以被看作是为 LLM 应用准备的 BFF (Backend For Frontend)。虽然叫 “Server”,但与 LLM 应用一样,它也可以在本地机器上运行,请注意区分。只要每个服务遵循 MCP 协议,就可以通过 MCP Server 实现与 LLM 应用的连接。
外部服务 指 PC 上的文件系统、Google 日历事件、Github、餐饮日志、Slack 等各种外部服务。这些服务可能存在于本地(如文件系统),也可能通过 API 远程访问(如 Github 和 Slack)。

10

​ 准确的来说 MCP 应该是决定 MCP Client 和 MCP Server 之间通信方式的协议。

MCP 运作方式

​ 上面所说的这些组件,到底是怎么样连接并运行起来的,我们以刚刚的 Filesystem MCP Server 为例整理一下

  1. LLM 应用启动的时候,Filesystem 专用的 MCP Client 和 Filesystem 专用的 MCP Server 的连接开始初始化。这个时候的 MCP Server 将给 MCP Client 回答 协议的版本 以及 功能。
  2. LLM 应用将给 LLM 发送 提示词(Prompt)。这个时候,MCP Server 的信息也将被一同送给可以使用 Filesystem 的 MCP 里。
  3. LLM 判断【这里应该获取文件一览】,回答 使用许可(Function Calling)。
  4. LLM 应用在内部使用 MCP Client 请求 MCP Server 来的执行操作(也就是刚刚的使用许可)。
  5. MCP Server 会向 Filesystem 发送请求,以检索文件列表。
  6. Filesystem 返回结果。
  7. MCP Server 将结果返回给 MCP Client。
  8. LLM 应用会将从 LLM Client 里拿到的结果,再投给 LLM。
  9. LLM 对执行结果进行智能优化处理后回传至 LLM 应用(或在此环节进一步生成工具调用指令)

​ 外部服务如果是远程服务的话,虽然大概步骤都差不多,但是在这种时候 MCP Server 是在本地运行的!

​ 如果是远程的话,那么第 4 步在执行的时候就会使用 API 了


总结

​ 未来,借助 MCP,LLM 应用很可能会从聊天工具进化为“万能超级应用”。接下来,不妨试着用 MCP 将你的服务或 API 连接起来吧!

​ 如果你想了解更多内容,也可以参考本次引用的官方文档

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计
备案图标 辽公网安备21010602001101 辽ICP备2024027190号-1