跳过正文

在大模型时代,前后端可以做什么 | 大模型拓展坞——MCP介绍及实践

·1985 字·4 分钟
大模型 AI Agent 前端
作者
陈明皓
大四牢登 牛马前端
目录

前言

当下大模型技术以极快的速度迭代,陆续出现的AI辅助编码工具,难免引起前后端开发岗的焦虑。若你不是从事深度学习方向的开发者,不免担心在快速的技术发展下,自己会不会与时代脱节?那么在大模型时代,前后端可以做什么呢?

MCP简介

以下引用自官网 https://mcp-docs.cn/introduction

MCP 是一个开放协议,它为应用程序向 LLM 提供上下文的方式进行了标准化。你可以将 MCP 想象成 AI 应用程序的 USB-C 接口。就像 USB-C 为设备连接各种外设和配件提供了标准化的方式一样,MCP 为 AI 模型连接各种数据源和工具提供了标准化的接口。

通用架构

以更为通俗的语言来解释,MCP 就像一个拓展坞,它允许你将不同的设备(如数据库、文件系统、API 等)连接到你的 AI 应用程序中。这样,你的 AI 应用程序就可以访问这些设备,获取所需的数据和信息,从而实现更智能、更高效的工作。

打个比方,在MCP被提出以后,百度地图、高德地图都推出了自己的MCP应用,当我们使用这类地图应用时,就可以通过自然语言,让大模型能为我们规划路线,实现一个更人性化的“导游”。当你需要乘地铁去营口道时,你可以直接问大模型“从天津工业大学到营口道应该怎么走”,大模型客户端应用就能通过MCP调取地图API的信息,获取到路线信息,并以自然语言返回给你。

以下是大模型对这个问题的解答案例(anthropic/claude-3.7-sonnet + 高德地图MCP):

案例

技术概念

MCP Server

顾名思义,MCP Server就是MCP的服务端应用,但有时,这个“服务端应用”并不是运行在服务器上的,而是运行在我们的终端上,给予MCP访问API、连接数据库、操作文件系统的能力。

参考这篇文档:https://mcp-docs.cn/quickstart/server ,尝试自己搭建一个MCP Server,实现一个使用自然语言通过大模型查询天气的应用。可以看见,MCP官方为我们提供了5种语言的SDK,其中包括python、nodejs、java、Kotlin和C#。

MCP Client

MCP Client就是我们的大模型客户端应用,它可以通过MCP Server提供的API,实现与大模型的交互,对大模型的交互是通过MCP Client来实现的。

工作原理: 当你提交查询时: 客户端从服务器获取可用的工具列表 你的查询连同工具描述一起发送给 Claude 大模型决定使用哪些工具(如果有的话) 客户端通过服务器执行任何请求的工具调用 结果被发送回大模型 大模型提供自然语言响应 响应显示给你

当下已有许多大模型客户端内置了MCP功能,如官方推荐的Claude Desktop(内地难以使用), Cursor(代码编辑器), Cherry Studio(推荐尝试), 5ire等。

当然,你如果希望开发具有自己特色的MCP Client应用,官方也提供了SDK,参考这篇文档:https://mcp-docs.cn/quickstart/client ,尝试自己开发一个MCP Client应用,同样能通过至少5种语言实现。

实践Tips

客户端配置方案

刚开始体验MCP,推荐使用现成的客户端方案,如Cherry Studio。

尽管部分客户端是以ui的形式配置MCP工具,但本质上都是操作json,在已发布的MCP工具的安装指南中,你往往可以看到这样的配置(以网页拉取工具fetch为例):

// github地址:https://github.com/modelcontextprotocol/servers/tree/main/src/fetch
{
    "mcpServers": {
        "fetch": {
            "command": "uvx",
            "args": ["mcp-server-fetch"]
        }
    }
}

你只需要复制其mcpServers内的部分,并将其添加到你的客户端配置文件中,即可实现MCP Server的配置。

在使用大模型时勾选MCP,即可使用MCP Server提供的工具。

如何选择大模型

许多MCP主要通过Function Call的形式和大模型进行交互,所以并不是所有大模型都支持MCP。经过笔者的尝试,目前使用anthropic/claude-3.7-sonnet,能够获得较为完整完善的MCP支持和体验,而anthropic/claude-3.5-sonnet也能胜任较为简单的交互任务,但这2个Claude模型,显然具有较高的使用成本。

Deepseek方面,虽然标明了支持Function Call,但在实际使用时,还是出现了报错等问题,可以等待完善。

大学生角度的应用方向

  • 使用现存MCP,实现高效的文件管理、代码辅助、自然语言路径规划等功能
  • 开发MCP,为大模型提供数据库查询能力,实现比知识库更准确更有时效性的回答
  • 开发MCP,为大模型提供API调用能力,结合现有API,探索结合大模型的新尝试

后记

本文笔者同样刚刚接触到这么一个新事物,只是通过文章抛转引玉,希望读到文章的同学能够更好地融入新的技术发展方向。MCP的出现,让我们的AI应用程序可以更加智能、更加高效地工作,而这也让我们的开发工作更加轻松、更加高效。而更多的可能性,需要正在阅读文章的你来探索。