必看!Cursor 新功能 MCP,解锁 AI 编程超强外挂(附DeepSeek资料)

360影视 动漫周边 2025-03-20 10:30 2

摘要:MCP(模型上下文协议)是一种开放协议,它标准化了应用程序如何为大型语言模型(LLMs)提供上下文。可以将MCP视为AI应用程序的USB-C端口。正如USB-C提供了一种标准化的方式将您的设备连接到各种外设和配件一样,MCP为将AI模型连接到不同的数据源和工具

今天,我要为大家隆重介绍 Cursor 代码编辑器0.45.6 版本带来的 全新黑科技 —— MCP (Model Context Protocol) 功能集成

官方说明

MCP(模型上下文协议)是一种开放协议,它标准化了应用程序如何为大型语言模型(LLMs)提供上下文。可以将MCP视为AI应用程序的USB-C端口。正如USB-C提供了一种标准化的方式将您的设备连接到各种外设和配件一样,MCP为将AI模型连接到不同的数据源和工具提供了一种标准化的方式。

为什么选择MCP?

MCP帮助您在LLMs之上构建代理和复杂的工作流程。LLMs经常需要与数据和工具集成,而MCP提供了:

不断增长的预构建集成列表:您的LLM可以直接插入这些集成,从而快速实现与各种数据和工具的连接。在LLM提供商和供应商之间切换的灵活性:由于MCP是开放标准,您可以根据需要轻松更换LLM提供商,而无需对整个系统进行大规模修改。保护您的数据的最佳实践:MCP提供了一系列最佳实践,帮助您在基础设施内安全地保护数据,确保敏感信息得到妥善处理。

通过使用MCP,您可以更高效地开发和部署AI应用,同时确保系统的可扩展性、安全性和灵活性。

MCP架构图

MCP Hosts: 希望通过 MCP 访问数据的 Claude Desktop、cursor 或 AI 工具等程序MCP Clients: 与服务器保持 1:1 连接的协议客户端MCP Servers: 轻量级本地的server 程序,每个程序都通过标准化的 Model Context Protocol 公开特定功能, 支持多个Local Data Sources: 通过MCP 服务器可以安全访问的计算机文件、数据库和服务Remote Services: 通过MCP 服务器可以连接到的 Internet 上可用的外部系统(例如,通过 API)

我的理解

首先 MCP 是一个协议,定义了一种规范/规则,目的是让 LLM 和 外部 Data 源连接起来 。(连起来的目的是干啥呢,是为了扩展 LLM 等能力,就现阶段共识就是构建 AI Agent 或者自动化工作流。)

简单来说,MCP (模型上下文协议) 就像一座桥梁,它巧妙地连接了 Cursor 代码编辑器与强大的 AI 模型。 通过 MCP,Cursor 不再只是一个代码编辑工具,它变身成为一个 智能的 AI 助手,并 调用各种 AI 服务来辅助开发,例如:

智能搜索信息 (Brave Search)抓取网页内容 (Fetch)调用图像生成模型 (Replicate, Flux)甚至进行更深度的思考和推理 (sequentialthinking)

这里以cursor 为例子,以我本地搭建的3个MCPserver 去做解释。如图

Markdown2pdf: 将我和cursor的讨论整理成markdown,然后再转成本地的pdf格式保存。

Sequentiaithinking: 让大模型的回答像deepseek一样,接入思维链模式。

Mcp-package-version: 让LLM可以帮我们准确的分析出当前项目依赖包的最新版本

用户向LLM进行提问,LLM处理发现有本地可执行的mcp server 工具可以执行, 然后询问你是否执行本地的 mcp tool。 你点击接受, 执行完之后,在将MCP tool 输入的数据返回给LLM。

一句话总结: MCP 就是你在使用cursor的过程中,允许大模型调用你自己开发的工具包(markdown转pdf、抓取网页内容...)

打开Cursor设置导航到Cursor设置 > 功能 > MCP点击“+ 添加新的MCP服务器”按钮配置服务器第二种可以执行运行 已经发布成npm包的MCP server对于SSE服务器:SSE端点的URL对于stdio服务器: 可执行的shell命令, 支持两种方式运行名称:给您的服务器起个昵称,这是可以随意取类型:选择传输类型(stdio或sse)命令/URL:输入以下内容:用node 运行本地打包的MCP server

比如下面这个, cursor 会自动扫描 server提供哪些tools

安装

npm install @modelcontextprotocol/sdk

定义Mcp服务器

McpServer是您与MCP协议的核心接口。它处理连接管理、协议合规性和消息路由。

import { McpServer, ResourceTemplate } from "@modelcontextprotocol/sdk/server/mcp.js";const server = new McpServer({name: "My App",version: "1.0.0"});

定义MCP服务器提供的能力

MCP 支持 Resources、tools、Promots功能 但是cusor中目前支持tools, 所以本篇文章也只演示tools的写法

详细能力可以参考https://modelcontextprotocol.io/clients

// 初始化服务器,设置名称和版本 this.server = new Server( { name: "My App", version: "1.0.0", }, { capabilities: { tools: { reverse_string: true, }, }, } );

工具定义

工具定义分为2步

定义了一个可用工具列表, 定义工具名称、工具描述、以及输入参数的格式。

下面我定义了一个字符串翻转的工具

工具名称:reverse_string

工具描述:将输入的字符串反转

输入参数格式:需要一个包含text字段的对象

this.server.setRequestHandler(ListToolsRequestSchema, async => ({ tools: [ { name: "reverse_string", description: "将输入的字符串反转", inputSchema: { type: "object", properties: { text: { type: "string", description: "需要反转的文本", }, }, required: ["text"], }, }, ], }));工具的实际功能编写

拦截大模型的输入, 然后走自己实际的输入。

// 处理工具调用请求 this.server.setRequestHandler(CallToolRequestSchema, async (request) => { if (request.params.name !== "reverse_string") { thrownew McpError( ErrorCode.MethodNotFound, `未知工具: ${request.params.name}` ); } const { text } = request.params.arguments as { text: string }; const reversedText = text.split("").reverse.join(""); return { content: [ { type: "text", text: `反转后的文本: ${reversedText}`, }, ], }; });

连接客户端(cursor)

MCP服务器需要连接到传输层以与客户端进行通信。启动服务器的方式取决于选择的传输方式:

Cursor 目前支持 sse 和 command 两种方式

const transport = new StdioServerTransport; server.connect(transport);

打包部署

打包工具推荐: tsup 或者 tsc 进行打包

因为我们最终构建的是 Node.js CLI ,为了确保编译后的程序可以作为命令行工具使用。

在文件开头需要加上

#!/usr/bin/env node

同时在构建的时候为了使编译后的 JavaScript 文件变成可执行文件 可以安装一下shx npm 包, 然后执行下面这个命令

shx chmod +x build/*.js

添加到MCP server, 然后再composer 和LLM聊天就可以愉快的使用自己编写的大模型工具了

局限性学习资料

官网地址:https://modelcontextprotocol.io/introduction

Git 地址: https://github.com/modelcontextprotocol/typescript-sdk

MCP资源库: https://mcphub.io/registry

本文,完。觉得本篇文章不错的,记得随手点个赞、收藏和转发三连,大家感兴趣的可以关注下,后续我再研究点新东西分享给大家⭐~

来源:AIGC研究社

相关推荐