MCP:AI调用外部工具的标准化协议
MCP:连接AI与外部世界的标准化协议
MCP(Model Context Protocol,模型上下文协议)是一种旨在让大语言模型(LLM)能够安全、标准化地调用外部工具和数据的开放协议。它通过将复杂的API、数据库操作等封装成AI可以理解的“工具”,使得开发者能够通过自然语言指令,驱动AI助手完成诸如数据库查询、API调试、系统运维等一系列原本需要手动编码或切换工具才能完成的任务。本文将介绍MCP的核心概念、应用场景及具体实践方法。
一、MCP的核心概念与价值
MCP协议的核心在于标准化和解耦。它定义了一套通用的通信规范,使得任何符合MCP标准的服务器(MCP Server)都可以被任何兼容MCP的客户端(MCP Client)或AI助手(Agent)所使用。
| 核心组件 | 角色说明 | 价值体现 |
|---|---|---|
| MCP Server | 提供具体能力的服务端。它将一个特定的数据源或API(如MySQL数据库、GitHub API、内部系统)封装成一系列标准的“工具”和“资源”。 | 一次封装,全球可用。开发者无需为每个AI平台重复开发适配插件。 |
| MCP Client | 调用MCP Server的客户端。通常是AI应用平台(如Cursor、Dify)或专门的客户端程序,负责与Server建立连接并转发用户/Agent的请求。 | 为AI助手提供了扩展能力的统一入口,使其能够突破自身知识局限,操作真实世界的数据和系统。 |
| 工具 (Tools) | Server暴露的可执行操作,例如“查询用户”、“创建工单”。AI助手可以像调用函数一样调用它们。 | 实现了自然语言到具体API调用的转换,极大降低了使用门槛。 |
| 资源 (Resources) | Server提供的可读数据,例如“数据库Schema文档”、“API说明文档”。AI助手可以读取它们以获取上下文。 | 为AI提供了动态的、最新的上下文信息,提升了任务执行的准确性。 |
MCP的引入,显著减少了开发者在不同工具间切换的认知负担和重复劳动,将自然语言交互的能力直接注入研发、运维等核心工作流,成为AI驱动的研发提效利器。
二、MCP的主要应用场景
- 数据库操作:通过
mysql-mcp-server等工具,开发者可以直接用自然语言让AI助手查询数据、分析表结构,甚至生成SQL语句并执行。 - API集成与调试:将内部或第三方API封装成MCP Server,AI助手即可代为调用、测试并返回结果,简化了API交互流程。
- 运维与部署:连接Kubernetes、服务器管理等系统,实现用自然语言进行服务状态检查、日志查询、部署更新等操作。
- 扩展AI编程助手:在Cursor、JetBrains IDE等编程工具中配置MCP,使AI助手能够获取项目特定上下文、执行构建命令等,极大提升编码效率。
- 构建智能Agent:在Dify等LLM应用开发平台中,通过MCP为Agent赋予使用外部工具的能力,构建能够自主完成复杂工作流的智能体。
三、MCP实践指南
1. 在Cursor中配置与使用MCP
Cursor是集成MCP非常流行的AI编程IDE。配置MCP主要有以下三种方式:
- 一键安装:对于官方或社区推荐的Server,Cursor提供了一键安装功能。
- 手动配置:在Cursor设置中,找到
MCP Servers配置项,手动添加Server信息。 - Deeplinks:通过特定格式的链接快速添加。
一个典型的手动配置示例(在Cursor的settings.json中):
{
"mcpServers": {
"my-mysql-server": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-mysql"],
"env": {
"MYSQL_HOST": "localhost",
"MYSQL_USER": "root",
"MYSQL_PASSWORD": "yourpassword",
"MYSQL_DATABASE": "test_db"
}
}
}
}
配置成功后,你可以在Cursor中直接询问:“请查询users表中最近注册的5个用户”,AI助手会自动调用对应的MCP工具完成操作。
2. 使用Spring AI开发MCP Server与 Client
Spring AI项目提供了对MCP协议的原生支持,方便Java开发者快速构建MCP组件。
(1)MCP Server 开发
首先,在pom.xml中引入依赖:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-mcp-server</artifactId>
</dependency>
然后,实现一个提供“天气查询”工具的简单Server:
import org.springframework.ai.mcp.server.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class WeatherMcpServerConfig {
@Bean
public McpServer weatherMcpServer() {
return McpServer.builder()
.name("weather-server")
.version("1.0.0")
// 定义一个名为 `get_weather` 的工具 .tool("get_weather", Tool.builder()
.description("根据城市名称查询天气")
.string("city", Description.of("城市名,如:Beijing"), Required.TRUE)
.function(this::getWeather)
.build())
.build();
}
// 工具的实际执行逻辑 private String getWeather(String city) {
// 这里模拟或调用真实天气API return String.format("城市 %s 的天气是晴朗,25摄氏度。", city);
}
}
在application.yml中配置Server端点:
spring:
ai:
mcp:
server:
enabled: true
base-url: http://localhost:8080/mcp
启动应用后,一个MCP Server就运行在http://localhost:8080/mcp。
(2)MCP Client 开发
Client端用于连接并调用上述Server。引入Client依赖:
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-mcp-client</artifactId>
</dependency>
配置Client并调用工具:
import org.springframework.ai.mcp.client.McpClient;
import org.springframework.ai.mcp.client.McpClientRequest;
import org.springframework.stereotype.Service;
@Service
public class WeatherService {
private final McpClient mcpClient;
public WeatherService(McpClient mcpClient) {
this.mcpClient = mcpClient;
}
public String queryWeather(String city) {
// 构建调用MCP工具的请求
McpClientRequest request = McpClientRequest.builder()
.serverUrl("http://localhost:8080/mcp") // MCP Server地址
.toolName("get_weather") // 要调用的工具名 .argument("city", city) // 传递参数
.build();
// 执行调用并返回结果
return mcpClient.call(request).getContent();
}
}
3. 在Dify中配置MCP Agent
Dify平台通过“MCP代理策略”插件来扩展Agent的能力。
- 安装插件:在Dify工作区设置中,安装“MCP Agent策略”插件。
- 配置MCP Server:在插件配置页面,添加你需要连接的MCP Server信息,包括名称、传输方式(stdio或sse)、命令和参数等。
- 创建Agent并选择策略:在创建AI Agent时,在“策略”部分选择“MCP Agent策略”,并关联已配置好的MCP Server。
- 测试使用:在对话窗口或工作流中,Agent在需要时会自动调用MCP工具。例如,用户说“帮我看看数据库里有没有异常订单”,Agent会自行调用数据库MCP Server进行查询并返回结果。
四、总结与展望
MCP协议通过标准化AI与外部系统的交互方式,正在成为构建下一代智能应用的关键基础设施。它降低了为AI集成工具能力的门槛,让开发者能更专注于业务逻辑而非适配工作。随着Spring AI等主流框架的官方支持,以及Cursor、Dify等平台的深度集成,MCP的生态日益繁荣。未来,我们有望看到更多样化的MCP Server出现,覆盖从研发到运维的每一个环节,真正实现“用自然语言驱动一切”的愿景。
更多推荐



所有评论(0)