专业的编程技术博客社区

网站首页 > 博客文章 正文

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

baijin 2025-06-15 14:16:57 博客文章 4 ℃ 0 评论

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

什么是MCP?

官方说明

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

为什么选择MCP?

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

  1. 不断增长的预构建集成列表:您的LLM可以直接插入这些集成,从而快速实现与各种数据和工具的连接。
  2. 在LLM提供商和供应商之间切换的灵活性:由于MCP是开放标准,您可以根据需要轻松更换LLM提供商,而无需对整个系统进行大规模修改。
  3. 保护您的数据的最佳实践: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、抓取网页内容...)

安装步骤

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

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

写一个字符串翻转的MCP server

安装

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步

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

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

工具名称: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

添加cursor

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

局限性

  1. 只支持composer 模式
  2. 只有claude 模型才支持, 其他大模型暂不支持

学习资料

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

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

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


DeepSeek资料下载方式

关注私信发送DeepSeek,即可领取完整版资料

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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表