Skip to content

MCP协议

介绍

MCP(Model Context Protocol,模型上下文协议)是一种用于大语言模型与外部应用程序交互的协议。它定义了一套标准化的规则和接口,帮助大模型在上下文中更高效地调用外部资源或服务。它本质上是一个程序,是一个经典的CS架构,mcp不像传统的协议定义,它没有一个确定的数据结构,它的核心是通过自然语言描述清楚有哪些MCP Server,承担什么作用,然后让大模型语言模型通过推理去选择最合适的MCP Server以及MCP Tool,所以它的核心本质上还是提示词工程。

用来解决什么问题的

MCP 协议的主要目标是解决大模型如何更好地调用外部应用的问题

相关的概念

MCP Host: 支持MCP协议的软件,常见的有cloude desktop、cursor、cline、cherry Studio MCP Tool: 本质上就是一个函数,比如我们需要查天气,需要写一个查天气的函数

怎样和大模型沟通呢?

用户发送问题的时候,cline拿到问题后,会将这个问题传给模型,让他解答,与常规不同的是,cline 除了传递用户问题外,还会附带注册好的MCP Server,以及每个MCP Server所包含的tool列表,cline告诉模型,这些tool可能会帮助你解决用户问题,需要调用哪个,跟我说,我来帮你调用。

在cline中,mcp的调用过程

MCP的聚合网站

MCP.so 阿里云百炼 HiMCP Smithery.ai(新手推荐这个) shareMCP MCP Market PulseMCP Glama MCP cursor.directory Portkey.ai Cline's MCP Marketplace MCP Hub MCPServers Awesome MCP Servers(最火)

MCP的底层原理

MCP和大模型的交互,根据中介(cline、5ire)不同,所采用的方式也不同,这里怎么理解这个交互呢?就是mcp host怎样让大模型知道我的工具列表,以及该如何调用呢? 比如cline是将这些tools放到了系统提示词里面; 5ire是借助了某些大模型里面的function call功能,所以它在不支持function call的大模型中,不能使用。 所以说MCP协议实现的方式多种多样。

提示词抓取

方式: 通过cloudfare的AI Gateway(大模型代理功能)抓取,配置好这个后,所有的大模型都会先通过cloudfare,再到达大模型提供商,再这个过程中,cloudfare会给我们记录日志

  1. 配置cloudfare的AI Gateway alt text
  2. 配置cline相关配置 alt text
  3. 在cline中配置好mcp server alt text
  4. 重点来了,大模型怎样知道,我有哪些MCP server,并且这个Time有两个方法的 alt text
  5. 然后新开一个对话,来测试一下,并且通过cloudfare,抓取日志 alt textalt text 它包括了系统提示词、用户问题、以及vscode的一些环境变量,在里面的系统提示磁力爱按,我们可以看到,cline将这些tools放到了系统提示词里面,然后发送给了大模型

总结

  1. MCP协议只是规定了client如何与server通信(mcp协议),以及host,client,server的关系与职责;
  2. 并没有规定和大模型交互方式,有的客户端的实现使用的就是functioncall或者说tools,这个实现要靠客户端自己去实现。

MCP 笔记

模型上下文协议

背景:从rag,到function call、再到mcp,每一代方案都在试图解答一个问题:模型如何以更自然的方式获得外部世界的帮助?

简单来说:如何让大模型调用本地的一些工具并加以利用

比如:调用我们的浏览器打开页面、链接我们的db进行数据操作...,然后拿到结果进一步去完善我们的任务。

我们总有疑问,mcp这玩意要怎样用呢? 我们设想一个场景,我们今天想和朋友去杭州玩,但是那里的天气怎么样,不同的天气下,去玩的地方肯定受影响,下雨天,去西湖玩耍就不是那么明智吧,我可以选择去一些室内活动的地方吧, 所以我们要知道那天天气怎样,然后去哪里玩?

我们分析这个场景,要让大模型来完成这个任务,要怎样处理呢?

1、 查询天气 2、 拿到天气结果,然后去查找哪里适合玩耍,需要买什么票 3、 将结果总结

但是大模型,它是预训练的,它不知道天气怎样呀,所以这个地方需要借助第三方的帮助了,与此同时去玩的地方有些它也是每天变化的,所以也需要借助第三方的帮助。

MCP的核心组件:Host、Client、Server Host: 负责接收用户问题、调用LLM和工具调用 Client:维护和Server的连接、并提供已注册工具(tools)列表 Server:提供具体的工具调用

各部分分工明确: Host 负责询问与协调,Client 管理工具注册,LLM 执行推理决策,Tools 执行具体服务。

参考: https://www.cnblogs.com/CareySon/p/18827525/mcp_lifecycle_via_demo#:~:text=

mcp的应用