人人能看懂的大模型MCP,附MCP服务实战指南 前沿技术 大模型技术 新闻资讯 19小时前 编辑 charles 取消关注 关注 私信 大模型(本文特指大语言模型)本来是这样一个东西:我们输入一段文字给它,它返回一段文字给我们。这就是大模型能且唯一能够做的事情。 那么它又是如何做到获取天气信息、操作数据库、订机票、点外卖的?显然,背后一定借助了完成对应事情的工具,而且我们需要在大模型和工具之间建立一个桥梁。 我们通过一个例子来认识这个桥梁背后的工作逻辑。 假设我们开发了一个程序,这个程序就是上面所说的大模型和工具之间的桥梁。现在用户在程序的文本输入框中输入:“请在数据库中查询张三的信息”,在使用体验上,用户以为自己直接在和大模型对话,实际上该程序接收到用户的问题后,把问题内容进行了扩充: 上面经过程序扩充的内容才作为用户的问题被发送给了大模型,大模型按照约定的格式回复的内容如下: 接下来程序便依据上述大模型的回复信息去调用了user_info这个工具,假设工具返回信息为:“姓名:张三,年龄:25,性别:男….”,这个工具返回信息被程序再次扩充成如下形式: 上面的内容被再次输入给大模型,大模型返回: 这便是用户最终得到的答案⬆️。 所以用户以为: 实际上: MCP Host和MCP Client正是扮演了上面例子中桥梁的角色,MCP Server扮演了上面例子中工具的角色,MCP(模型上下文协议)正是通过这些角色来完成上面例子中的工作流程的,这几个角色间数据的传输方式和格式遵从MCP规范。 接下来我们同样通过一个简单的例子来学习如何自己开发一个MCP Server并在MCP Host中使用它。 开发一个工具当然不限定语言,这里我们使用Python。 首先安装uv,不了解uv的读者也可跟着教程走下去: 选择一个文件夹作为MCP Server的目录,在该目录中执行命令,完成uv项目的初始化: 在生成的文件中,我们打开pyproject.toml: 编辑该文件,这里只需要在依赖里面添加一个本教程用到的叫“mcp”的Python库。 接下来创建一个叫main.py的文件,我们在这里写MCP Server的代码: 参照上图,一个MCP服务包含图中标注的4个关键点: 关键点1:创建一个mcp对象,对象的描述信息作为参数。 关键点2和3:使用装饰器装饰一个函数,这个函数正是我们所说的工具,函数建议带上详细的类型注解和参数注释(如图中3所示),大模型正是通过这些信息判断应该调用什么工具的!一个服务里面当然可以有多个工具,即多个函数。 关键点4:使用mcp.run(“stdio”)启动服务,这里的参数”stdio”表示这是一个本地服务,通过标准输入输出的方式和MCP其它角色通信。 最后,把我们的MCP Server配置到MCP Host中去,这里以Cline为例(Windows系统): 关于Cline的使用方法请参见往期:万物对接大模型:【爆火】MCP原理与使用指南 来测试一下效果: 本文内容就到这里,读者有疑问的地方欢迎到交流群中讨论: