当前位置: 首页 > news >正文

MCP(1)

1. 概述

MCP(Model Context Protocol,模型上下文协议) 是由 Anthropic 推出的一种开放标准,旨在统一大型语言模型(LLM)与外部数据源和工具之间的通信协议。MCP 的主要目的在于解决当前 AI 模型因数据孤岛限制而无法充分发挥潜力的难题,MCP 使得 AI 应用能够安全地访问和操作本地及远程数据,为 AI 应用提供了连接万物的接口。

官网:Model Context Protocol,Introduction - Model Context Protocol

SPEC:Specification (Latest) – Model Context Protocol Specification

SDK支持:目前支持的版本有:

  • Python:modelcontextprotocol/python-sdk: The official Python SDK for Model Context Protocol servers and clients
  • TypeScript:modelcontextprotocol/typescript-sdk: The official Typescript SDK for Model Context Protocol servers and clients
  • Java:modelcontextprotocol/java-sdk: The official Java SDK for Model Context Protocol servers and clients. Maintained in collaboration with Spring AI
  • Kotlin:modelcontextprotocol/kotlin-sdk: The official Kotlin SDK for Model Context Protocol servers and clients. Maintained in collaboration with JetBrains

2. 整体架构

2.1 MCP协议架构

MCP 遵循客户端-服务器架构(client-server),支持多种数据形式的交换,并具有良好的可扩展性。内置了安全机制以确保资源分配的安全控制,并且目前支持本地运行。官方计划未来增加对企业级身份验证的支持,以允许远程服务器的操作。Anthropic公司希望通过推动MCP成为行业开放标准,类似于HTTP对于网络浏览器和服务器间信息交换的作用。这样的标准化努力已经得到了一些合作伙伴的认可和支持,包括金融支付公司Block和数据管理解决方案供应商Apollo。此外,Anthropic还获得了亚马逊40亿美元的投资,用于加强其企业市场的服务,特别是针对企业客户的AI模型训练和部署。市场上也有声音质疑MCP能否真正成为广泛接受的标准,担心这可能会导致AI生态系统的进一步碎片化。然而,Anthropics的努力显示了他们致力于将MCP构建为开源生态系统,邀请更多的AI工具开发者和企业加入,共同促进AI技术的发展和应用。

基础协议

All messages between MCP clients and servers MUST follow the JSON-RPC 2.0 specification. The protocol defines three fundamental types of messages:

通信机制

MCP(Model Context Protocol)的连接机制遵循客户端-服务器架构。在这种架构中,MCP Clients与MCP Servers之间建立一对一的连接。

这种设计允许MCP Hosts(如AI应用程序)通过MCP Clients与一个或多个MCP Servers进行通信,以获取数据和执行任务。

MCP支持两种类型的通信机制:

  • 标准输入输出(Stdio):适用于本地进程间通信,其中Client启动Server程序作为子进程,消息通讯通过stdin/stdout进行,消息格式为JSON-RPC 2.0。
  • 服务器发送事件(SSE):用于基于HTTP的通信,允许服务器向客户端推送消息,而客户端到服务器的消息传递则使用HTTP POST,同样采用JSON-RPC 2.0格式进行消息交换。

所有传输都使用JSON-RPC 2.0进行消息交换,这为MCP Clients和MCP Servers之间的通信提供了统一的消息格式。至于连接类型,MCP没有明确指出是长连接还是短连接,但考虑到其基于JSON-RPC 2.0的特性,它更可能支持长连接,以便保持客户端和服务器之间的持久交互状态。MCP的通信协议可以是TCP或UDP,这取决于具体的实现和部署需求。

2.2 核心概念

  • MCP 主机(MCP Hosts):发起请求的 LLM 应用程序(例如 Claude Desktop、IDE 或 AI 工具)。
  • MCP 客户端(MCP Clients):在主机程序内部,与 MCP server 保持 1:1 的连接。
  • MCP 服务器(MCP Servers):为 MCP client 提供上下文、工具和 prompt 信息。
  • 本地资源(Local Resources):本地计算机中可供 MCP server 安全访问的资源(例如文件、数据库)。
  • 远程资源(Remote Resources):MCP server 可以连接到的远程资源(例如通过 API)。

2.3 MCP Server

MCP Server 是 MCP 架构中的关键组件,Servers provide the fundamental building blocks for adding context to language models via MCP. These primitives enable rich interactions between clients, servers, and language models:

  • Prompts: Pre-defined templates or instructions that guide language model interactions
  • Resources: Structured data or content that provides additional context to the model
  • Tools: Executable functions that allow models to perform actions or retrieve information

资源(Resources),工具(Tools)和 提示(Prompts),这些功能使 MCP server 能够为 AI 应用提供丰富的上下文信息和操作能力,从而增强 LLM 的实用性和灵活性。

可以在 MCP Servers Repository(modelcontextprotocol/servers: Model Context Protocol Servers)和 Awesome MCP Servers(punkpeye/awesome-mcp-servers: A collection of MCP servers.)中找到许多由社区实现的 MCP server。使用 TypeScript 编写的 MCP server 可以通过 npx 命令来运行,使用 Python 编写的 MCP server 可以通过 uvx 命令来运行。

2.4 MCP Client

MCP client 充当 LLM 和 MCP server 之间的桥梁,MCP client 的工作流程如下:

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

在 Example Clients(Example Clients - Model Context Protocol) 找到当前支持 MCP 协议的客户端程序。

以下是部分支持的应用:

下一阶段将介绍MCP的具体开发应用。

相关文章:

  • 深入解析 Redis 原理:架构、数据结构与高效存储
  • 动态规划(6.不同路径II)
  • Binder机制源码分析
  • 蓝桥杯关于字符串的算法题目(leetcode回文串的判断问题)
  • 【队列】循环顺序队列和链式队列
  • 传感器研习社:臭味传感器(Odorant Sensor)
  • 【论文阅读】Contrastive Clustering Learning for Multi-Behavior Recommendation
  • Java的表达式自动类型提升
  • Netty中的直接内存是怎么回事?
  • 【leetcode hot 100 78】子集
  • companion object和object 从kotlin转java分析
  • lua实现面向对象(封装/继承/多态)
  • AI大白话(三):深度学习——AI的‘大脑‘是如何构建的?
  • 批量将 PPT 转换为PDF/XPS/JPG图片等其它格式
  • 【IROS 2025】CMU提出路径规划器PIPE:机器人探索效率提升14.6%,地图准确率提高9.3%!
  • 《真·出师表》
  • 剑指 Offer II 112. 最长递增路径
  • 51c大模型~合集73
  • 基于ArcGIS和ETOPO-2022 DEM数据分层绘制全球海陆分布
  • C++20 新特性:深入理解 `std::basic_string<char8_t>` 和 `char8_t`
  • 我国成功发射中星3B卫星
  • 央媒:安徽凤阳鼓楼坍塌楼宇部分非文物,系违规复建的“假古董”
  • 上海乐高乐园客流预测来了:工作日0.8万人次/日,周末节假日2万人次/日
  • 多家国有大行存款利率即将迎来新一轮下调
  • 俄乌直接谈判勉强收场,特朗普再次“电话外交”能否有用?|907编辑部
  • 谷神星一号海射型遥五运载火箭发射成功