searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

MCP模型上下文协议介绍

2025-05-16 09:30:07
10
0

什么是MCP

MCP(Model Context Protocol,模型上下文协议)是由Anthropic公司(Claude的开发者)于2024年11月开源发布的一项技术协议,旨在为AI模型与外部工具、数据源和系统之间的交互提供标准化接口。

MCP被比喻为AI世界的“USB-C接口”,通过统一的协议设计,解决了传统Function Calling接口的平台依赖问题,使AI应用能够更灵活、安全地与外部资源进行交互。

MCP架构

在MCP技术协议框架下,主要包含以下组件:
MCP Host: 像是Cursor、OpenWebUI、CherryStudio、Claude客户端、IDEs或其他想要通过MCP server访问外部数据的程序;
MCP Client:MCP Client通常被MCP Host集成,作为MCP Host的的一部分,通过MCP协议,与特定 MCP 服务器的通信。
MCP Server:轻量的程序符合MCP协议的服务端,暴露特定能力。
Remote Service:MCP Server可远程访问的外部系统(通常通过API)
Local Data Sources:本地的电脑文件、数据库等可以被MCP Server访问的内容。

客户端与服务端的两种交互方式

MCP Client与MCP Server通过MCP协议(MCP Protocol)交互。主要有两种交互方式:通过标准输入输出(stdio)或者通过Server-Sent Events(SSE) 。

在标准输入输出的方式下,MCP Server与 Host和MCP Client都部署在一个环境中(例如本地电脑),Host通过子进程的方式拉起MCP Server。

SSE是基于HTTP的,在SSE方式下,MCP Server可以部署在远程环境。

目前看到较多的工具还是以stdio的方式,通过本地化部署来使用。SSE的方式在3月份的协议优化中,升级成为了Streamable HTTP Transport。

协议升级后,对云服务托管将会更友好。

MCP V.S function call

大模型本身不具备访问外部系统、数据的能力,当用户需要访问外部资源(例如获取当前时间,爬取某个网页数据)时,需要通过“调用工具”,来实现大模型与外部系统之间的对接。“调用工具”既俗称的function call。

大模型如何使用这些外部工具呢?简单的来说,大模型客户端会告诉大模型:
* 我提供哪些工具(我有哪些function给你call)
* 大模型怎么调用这些工具(你怎么call)

MCP带来了什么改变

在引入MCP之后,Function call的流程变化如下:

 

在出现MCP之前,将人工智能系统连接到外部工具需要集成多个应用程序接口。每个应用程序接口的集成都意味着单独的代码、文档、验证方法、错误处理和维护。 传统的应用程序接口就像每扇门都有单独的钥匙一样,每扇门都有自己的钥匙和规则。

举具体的例子来说:

  1. 当Host作者希望集成外部工具时,需基于自身Host的开发规范对接各种外部工具;
  2. 类似的,当工具开发者希望将自己的工具集成到Host时,需根据各种Host的开发规范去开发集成。

这导致各Host的插件生态不互通,工具集成的工作量是 N * M(Host数量 * 工具数量)。

有了MCP之后:

  1. Host作者只需要根据MCP Client的规范,将MCP客户端集成到Host中;
  2. 工具开发者只需要根据MCP Server的规范开发工具服务,就可以实现开发一个MCP Server,所有的Host(支持MCP Client)都能使用,

可以说,MCP打通了Host之间的工具生态,将其比喻成“USB-C接口”还是名副其实的。

0条评论
0 / 1000
水立方
2文章数
0粉丝数
水立方
2 文章 | 0 粉丝
水立方
2文章数
0粉丝数
水立方
2 文章 | 0 粉丝
原创

MCP模型上下文协议介绍

2025-05-16 09:30:07
10
0

什么是MCP

MCP(Model Context Protocol,模型上下文协议)是由Anthropic公司(Claude的开发者)于2024年11月开源发布的一项技术协议,旨在为AI模型与外部工具、数据源和系统之间的交互提供标准化接口。

MCP被比喻为AI世界的“USB-C接口”,通过统一的协议设计,解决了传统Function Calling接口的平台依赖问题,使AI应用能够更灵活、安全地与外部资源进行交互。

MCP架构

在MCP技术协议框架下,主要包含以下组件:
MCP Host: 像是Cursor、OpenWebUI、CherryStudio、Claude客户端、IDEs或其他想要通过MCP server访问外部数据的程序;
MCP Client:MCP Client通常被MCP Host集成,作为MCP Host的的一部分,通过MCP协议,与特定 MCP 服务器的通信。
MCP Server:轻量的程序符合MCP协议的服务端,暴露特定能力。
Remote Service:MCP Server可远程访问的外部系统(通常通过API)
Local Data Sources:本地的电脑文件、数据库等可以被MCP Server访问的内容。

客户端与服务端的两种交互方式

MCP Client与MCP Server通过MCP协议(MCP Protocol)交互。主要有两种交互方式:通过标准输入输出(stdio)或者通过Server-Sent Events(SSE) 。

在标准输入输出的方式下,MCP Server与 Host和MCP Client都部署在一个环境中(例如本地电脑),Host通过子进程的方式拉起MCP Server。

SSE是基于HTTP的,在SSE方式下,MCP Server可以部署在远程环境。

目前看到较多的工具还是以stdio的方式,通过本地化部署来使用。SSE的方式在3月份的协议优化中,升级成为了Streamable HTTP Transport。

协议升级后,对云服务托管将会更友好。

MCP V.S function call

大模型本身不具备访问外部系统、数据的能力,当用户需要访问外部资源(例如获取当前时间,爬取某个网页数据)时,需要通过“调用工具”,来实现大模型与外部系统之间的对接。“调用工具”既俗称的function call。

大模型如何使用这些外部工具呢?简单的来说,大模型客户端会告诉大模型:
* 我提供哪些工具(我有哪些function给你call)
* 大模型怎么调用这些工具(你怎么call)

MCP带来了什么改变

在引入MCP之后,Function call的流程变化如下:

 

在出现MCP之前,将人工智能系统连接到外部工具需要集成多个应用程序接口。每个应用程序接口的集成都意味着单独的代码、文档、验证方法、错误处理和维护。 传统的应用程序接口就像每扇门都有单独的钥匙一样,每扇门都有自己的钥匙和规则。

举具体的例子来说:

  1. 当Host作者希望集成外部工具时,需基于自身Host的开发规范对接各种外部工具;
  2. 类似的,当工具开发者希望将自己的工具集成到Host时,需根据各种Host的开发规范去开发集成。

这导致各Host的插件生态不互通,工具集成的工作量是 N * M(Host数量 * 工具数量)。

有了MCP之后:

  1. Host作者只需要根据MCP Client的规范,将MCP客户端集成到Host中;
  2. 工具开发者只需要根据MCP Server的规范开发工具服务,就可以实现开发一个MCP Server,所有的Host(支持MCP Client)都能使用,

可以说,MCP打通了Host之间的工具生态,将其比喻成“USB-C接口”还是名副其实的。

文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0