创建新文档

您的文档标题(将显示为 H1)
URL 友好名称(无空格,使用连字符)
创建文档的路径(可选,使用正斜杠创建子目录)

移动/重命名文档

文档的当前位置
文档的新路径(包括别名)
这只会更改文档的路径,不会修改文档的标题(H1 标题)。

删除文档

您确定要删除此文档吗?此操作无法撤销。

警告:如果这是一个文件夹,包括子文件夹和文档在内的所有内容将被删除。

Message

Message content goes here.

Confirm Action

Are you sure?

附件

允许的文件类型:jpg, jpeg, png, gif, svg, webp, txt, log, csv, sfd, zip, pdf, docx, xlsx, pptx, mp4(最大:50MB)

文档文件

正在加载附件...

文档历史

以前的版本

Loading versions...

预览

选择要预览的版本

Wiki 设置

用户界面语言
每个文档保留的版本数量。设置为0以禁用版本控制。
上传文件的最大允许大小(MB)。

用户管理

添加新用户

留空以保持当前密码
拥有这些组的用户可以访问受限部分。

为您的Wiki部分定义基于路径的访问规则。规则按顺序评估。首次匹配生效。

活动规则

从ZIP归档文件导入Markdown文件。文件将被处理并存储在适当的文档结构中。ZIP中的目录结构(类别/子类别)将在wiki中保留。

上传包含要导入的Markdown(.md)文件的ZIP归档(压缩包)。

创建和管理您的 Wiki 数据备份。备份包括所有文档、图像和配置文件。

可用备份

正在加载备份...

添加/编辑访问规则

已选择: /

添加列

MCP 协议

引言

在现代AI工具和开发环境中,如何将外部数据源和工具与大型语言模型(LLM)无缝集成,是提升生产力和创新能力的关键。Cursor作为一款强大的AI辅助编程工具,引入了Model Context Protocol(MCP),即模型上下文协议,为用户提供了一种标准化的方式,将外部工具和数据源连接到Cursor中,从而扩展其功能。本教程将详细解读MCP协议在Cursor中的应用,包括其定义、用途、架构、配置方法、使用方式以及当前的一些限制。

什么是MCP协议?

MCP(Model Context Protocol)是一个开放协议,旨在标准化应用程序如何为大型语言模型提供上下文和工具。它本质上是Cursor的一个插件系统,允许用户通过标准化的接口,将Cursor连接到各种外部数据源和工具,从而增强Cursor Agent(智能代理)的能力。

简单来说,MCP就像是Cursor的“扩展插槽”,用户可以通过这个插槽,将自己的工具、数据库、API或其他资源接入Cursor,让Cursor不仅仅局限于代码本身,还能理解和操作外部系统的数据和功能。

MCP的核心特点:

更多关于MCP协议的详细介绍,可以访问官方MCP文档

MCP协议的用途

MCP协议的主要用途是将Cursor与外部系统和数据源连接起来,使用户无需手动向Cursor描述项目结构或数据内容,而是让Cursor直接与这些系统交互。以下是MCP的一些典型应用场景:

通过MCP,用户可以将Cursor融入现有的工具链和基础设施中,从而实现更高效的工作流程。

MCP协议的架构

MCP服务器是实现MCP协议的核心组件,它们是轻量级的程序,通过标准化的协议暴露特定的功能,充当Cursor与外部工具或数据源之间的中介。

Cursor支持两种MCP服务器的传输方式(Transport Types),适用于不同的使用场景:

1. stdio传输方式

这种方式适合本地开发和个人使用,配置简单,适合快速测试和开发MCP服务器。

2. SSE传输方式

SSE方式更适合分布式团队或需要远程访问的场景,提供了更大的灵活性。

这两种传输方式各有优劣,用户可以根据自己的需求选择合适的模式。stdio适合本地开发和简单场景,而SSE则更适合需要共享或远程访问的复杂场景。

配置MCP服务器

MCP服务器的配置通过JSON格式的文件完成,Cursor支持在项目级别或全局级别配置MCP服务器。

配置文件的结构

以下是一个使用stdio传输方式的MCP服务器配置示例(基于Node.js):

{
  "mcpServers": {
    "server-name": {
      "command": "npx",
      "args": ["-y", "mcp-server"],
      "env": {
        "API_KEY": "value"
      }
    }
  }
}

配置文件的存放位置

MCP配置文件可以存放在两个位置,适用于不同的使用场景:

  1. 项目配置

    • 文件位置:项目目录下的.cursor/mcp.json
    • 适用场景:适用于特定项目的工具,仅在该项目中可用。
  2. 全局配置

    • 文件位置:用户主目录下的~/.cursor/mcp.json
    • 适用场景:适用于跨项目使用的工具,在所有Cursor工作区中可用。

认证方式

MCP服务器支持通过环境变量进行认证,用户可以在配置文件中指定API密钥或其他认证令牌,而无需将其硬编码到代码中或MCP服务器本身。这种方式既安全又灵活。

目前,Cursor尚未支持其他认证方式,但社区项目如mcp-remote提供了通过网络安全认证MCP服务器的解决方案。

在聊天中使用MCP

在Cursor中,MCP工具的使用非常直观。Cursor的Composer Agent会自动检测并使用在MCP设置页面“可用工具”列表中列出的工具,前提是它认为这些工具与当前任务相关。

如何触发MCP工具使用

工具审批

默认情况下,当Cursor的Agent想要使用某个MCP工具时,会显示一条消息请求用户批准。用户可以点击工具名称旁边的箭头,查看Agent调用工具时使用的参数。

如果用户希望跳过审批步骤,可以启用“自动运行”(Auto-run)模式,让Cursor像执行终端命令一样自动运行MCP工具。更多关于自动运行和Yolo模式的设置方法,可以参考这里

工具响应

当MCP工具被调用后,Cursor会在聊天窗口中显示工具的响应内容。用户可以看到工具调用的参数和返回结果的详细信息。

图像注入

某些MCP服务器可能会返回图像数据,例如网站截图或图表。为了让Cursor在聊天中正确显示和使用这些图像,MCP服务器需要以特定格式返回图像数据(通常是base64编码的字符串)。

以下是一个返回图像的MCP服务器代码示例:

const RED_CIRCLE_BASE64 = "/9j/4AAQSkZJRgABAgEASABIAAD/2w..."; 
// 完整base64编码内容省略

server.tool("generate_image", async (params) => {
  return {
    content: [
      {
        type: "image",
        data: RED_CIRCLE_BASE64,
        mimeType: "image/jpeg",
      },
    ],
  };
});

完整的图像返回示例代码可以参考这里。通过这种方式返回的图像将被Cursor附加到聊天中,如果当前模型支持图像分析,Cursor会查看并分析图像内容,以帮助后续操作。

MCP协议的限制

尽管MCP是一个非常有前景的协议,但它目前仍处于活跃开发阶段,存在一些已知的限制:

  1. 工具数量限制

    • 如果用户启用了多个MCP服务器,或者某个MCP服务器提供了大量工具,Cursor目前只会将前40个工具发送给Agent。
  2. 远程开发问题

    • Cursor通过本地机器直接与MCP服务器通信(通过stdio或网络SSE),因此在通过SSH或其他远程开发环境访问Cursor时,MCP服务器可能无法正常工作。官方计划在未来版本中改进这一点。
  3. 资源支持不足

    • MCP服务器提供了两种主要功能:工具(Tools)和资源(Resources)。目前,Cursor仅支持工具功能,资源功能尚未实现。官方计划在未来版本中增加对资源的支持。

总结

MCP(Model Context Protocol)是Cursor中一个强大的扩展机制,它通过标准化的协议,将外部工具和数据源与Cursor无缝集成,极大地扩展了Cursor的功能和应用场景。无论是连接数据库、第三方服务,还是自定义工具,MCP都为用户提供了灵活而高效的解决方案。

通过本教程,我们详细了解了MCP的定义、用途、架构、配置方法、在聊天中的使用方式,以及当前的一些限制。尽管MCP仍处于开发阶段,但其潜力无疑是巨大的。随着Cursor和MCP协议的不断完善,我们可以期待更多创新功能和更广泛的应用场景。

如果您对MCP协议有进一步的兴趣,建议访问官方MCP文档获取更多技术细节,并尝试在自己的项目中配置和使用MCP服务器,探索其无限可能。

附件

正在加载附件...
搜索结果