作者: 闫 文智

  • MCP概念和原理

    这里推荐一个学习MCP网站:

    中文:https://mcp-docs.cn/introduction

    英文:https://modelcontextprotocol.io/introduction

    本文内容还参考了《一文看懂什么是MCP》https://www.aibook.ren/archives/mcp-course


    一、架构图

    互联网

    你的计算机

    MCP 协议

    MCP 协议

    MCP 协议

    Web APIs

    带 MCP 客户端的主机
    (Claude、IDE、工具)

    MCP 服务器 A

    MCP 服务器 B

    MCP 服务器 C

    本地数据源 A

    本地数据源 B

    远程服务 C

    • MCP 主机: 如 Claude Desktop、IDE 或 AI 工具,希望通过 MCP 访问数据的程序
    • MCP 客户端: 维护与服务器一对一连接的协议客户端
    • MCP 服务器: 轻量级程序,通过标准的 Model Context Protocol 提供特定能力
    • 本地数据源: MCP 服务器可安全访问的计算机文件、数据库和服务
    • 远程服务: MCP 服务器可连接的互联网上的外部系统(如通过 APIs)

    其中,“带 MCP 客户端的主机(Claude、IDE、工具)”通常就是我们使用的电脑,这台电脑上安装了MCP客户端。主机就是通过MCP客户端与MCP服务器进行连接。

    二、MCP 客户端

    充当 LLM 和 MCP 服务器 之间的桥梁,MCP 客户端 的工作流程如下:

    • MCP 客户端首先从 MCP 服务器获取可用的工具列表。
    • 将用户的查询连同工具描述通过 function calling 一起发送给 LLM。
    • LLM 决定是否需要使用工具以及使用哪些工具。
    • 如果需要使用工具,MCP 客户端会通过 MCP 服务器执行相应的工具调用。
    • 工具调用的结果会被发送回 LLM。
    • LLM 基于所有信息生成自然语言响应。
    • 最后将响应展示给用户。

    三、MCP 服务端

    是 MCP 架构中的关键组件,它可以提供 3 种主要类型的功能:

    • 资源(Resources):类似文件的数据,可以被客户端读取,如 API 响应或文件内容。
    • 工具(Tools):可以被 LLM 调用的函数(需要用户批准)。
    • 提示(Prompts):预先编写的模板,帮助用户完成特定任务。

    这些功能使 MCP server 能够为 AI 应用提供丰富的上下文信息和操作能力,从而增强 LLM 的实用性和灵活性。

    四、MCP 协议

    支持两种主要的通信机制:基于标准输入输出的本地通信和基于SSE(Server-Sent Events)的远程通信。

    这两种机制都使用 JSON-RPC 2.0 格式进行消息传输,确保了通信的标准化和可扩展性。

    • 本地通信通过 STDIO 传输数据,适用于在同一台机器上运行的客户端和服务器之间的通信。
    • 远程通信利用 SSE 与 HTTP 结合,实现跨网络的实时数据传输,适用于需要访问远程资源或分布式部署的场景。

    五、其他

    需要注意的是,通过 MCP 扩展的能力列表,保存在MCP服务器中,MCP 客户端仅仅是一个数据代理,实现与MCP服务器通讯的功能。

    MCP 服务器可以运行在远程服务器上(通过SSE协议通讯),也可以是运行在 MCP 主机上的一个服务(通过STDIO或SSE通讯)。

  • 关于本站点的LOGO

    关于本站点的LOGO

    我高中给自己起的英文名字:“Jackal”,并不是因为看了《豺狼的日子》这个电影,而仅仅是因为 “Jack” 过于大众,而 “Jackal” 左右相对对称。且作为内蒙古人,对狼有一定的好感。但是我并不狡猾,相反是一个很实在的人。

    于是乎我便用豆包AI生成了一个狼的LOGO。经过不断的对提示词进行修改,只有这个图片让我感到很满意。

    这是一幅黑白狼头图案。线条简洁流畅,勾勒出狼的轮廓与神态。狼耳竖起,眼神锐利,张嘴露齿,尽显凶悍与警觉,鬃毛线条增添了野性气息。整体风格简约且富有张力,具有较强的视觉冲击力,可用于体现力量、野性等主题的设计中。

    遗憾的是只生成了头部,但这并不影响我使用它。