MCP+Cursor入门
文章目录
- 1.背景
- 1.1 MCP是什么
- 1.2为什么要使用MCP
- 1.3 MCP使用场景
- 2.MCP原理
- 2.1 MCP的原语
- 2.2 MCP 通信方式
- 3.通过cursor配置自己的MCP
- 3.1 项目级配置
- 3.2 全局配置
- 3.3 启动MCP服务
- 3.4 使用Agent提问
- 4.常见问题与注意事项
1.背景
1.1 MCP是什么
MCP(Model Context Protocol,模型上下文协议)是由Claude的母公司 Anthropic 推出的模型上下文协议,旨在标准化应用程序如何向大型语言模型(LLM)提供上下文。它允许LLM与外部数据源和工具无缝集成,从而使AI模型能够访问实时数据并执行更复杂的任务
你可以把 MCP 想象成 AI 应用的 USB-C 接口——正如 USB-C 为设备与各种外设和配件提供了统一的连接标准,MCP 也为 AI 模型与不同数据源和工具之间的交互提供了标准化方案
一句话描述就是MCP是一座桥,让大模型可以调用我们的应用。
1.2为什么要使用MCP
随着 AI 助手逐渐成为主流,行业在模型能力上投入了大量资源,在推理和质量方面取得了快速进展。然而,即使是最先进的模型也受限于与数据的隔离——被困在信息孤岛和遗留系统之后。每个新数据源都需要定制化实现,这使得真正互联的系统难以扩展。
MCP 解决了这一挑战。它提供了一个通用的开放标准,用于将 AI 系统与数据源连接起来,用一个单一协议取代了分散的集成方式。其结果是为 AI 系统提供了一种更简单、更可靠的方式来获取所需数据。
1.3 MCP使用场景
需要让AI助手实时访问企业内部知识库、数据库或API的场景
- 需要标准化AI与多种外部工具集成的复杂应用
- 希望快速扩展AI能力、减少重复开发成本的团队
2.MCP原理
2.1 MCP的原语
MCP通过三种主要原语(Primitives)增强LLM的功能,理解这些原语是编写MCP的关键:
- 提示(Prompts):预定义的指令或模板,指导LLM如何处理输入或生成输出。
- 资源(Resources):提供额外上下文的结构化数据,例如文件或数据库内容。
- 工具(Tools):可执行的函数,允许LLM执行操作(如查询API)或检索信息。
关键点:这些原语是MCP的核心,决定了服务器能为LLM提供什么能力。
2.2 MCP 通信方式
MCP 支持两种通信方式:
标准输入输出(Standard Input/Output, stdio):客户端通过启动服务器子进程并使用标准输入(stdin)和标准输出(stdout)建立双向通信,一个服务器进程只能与启动它的客户端通信(1:1 关系)。
stdio 适用于本地快速集成的场景
服务器发送事件(Server-Sent Events, SSE)::一种基于HTTP协议的单向通信方式,允许服务器主动向客户端推送实时数据。服务器作为独立进程运行,客户端和服务器代码完全解耦,支持多个客户端随时连接和断开。这种方式将在后续的系列文章中单独进行介绍。
具体流程如下:
3.通过cursor配置自己的MCP
MCP配置可分为项目级配置和全局配置
3.1 项目级配置
仅当前项目生效
在.cursor目录下创建mcp.json
3.2 全局配置
编辑mcp.json
{"mcpServers": {"mcp-test-tool": {"command": "npx", // 启动命令"args": ["-y","@xx/xxx-yuque-mcp-tool","--stdio" // 使用标准输入输出通信],"env": {"YUQUE_EXTRA_TOKEN": "研发:your token,", // API访问令牌"YUQUE_DEFAULT_SEARCH_SCOPE": "MCP TEST", // 默认搜索范围"npm_config_registry": "http://nodepackages.xxxxx.cn:4873/" // npm私有源地址}}}
}
3.3 启动MCP服务
3.4 使用Agent提问
4.常见问题与注意事项
- Q:MCP支持哪些编程语言?
A:目前MCP以协议形式存在,理论上支持任何语言实现,常见有Node.js、Python等实现。 - Q:Token泄露怎么办?
A:请妥善保管API Token,避免上传到公共仓库,建议使用环境变量管理。 - Q:SSE和stdio如何选择?
A:本地开发、单一客户端建议用stdio,分布式或多客户端建议用SSE。