关于MCP
MCP简介
MCP的全称是 Model Context Protocol,是一个开放协议,它使 LLM 应用与外部数据源和工具之间的无缝集成成为可能。无论你是构建 AI 驱动的 IDE、改善 chat 交互,还是构建自定义的 AI 工作流,MCP 提供了一种标准化的方式,将 LLM 与它们所需的上下文连接起来。
用下面这个图来理解会更形象,将 MCP 想象成智能体应用程序的 USB-C 接口,它为连接 AI 模型与不同的数据源和工具提供了标准化的方法。

入门前文档
如果和我一样对MCP不太了解的小伙伴,可以通过如下文档对MCP进行初步了解,更多文档可以查看【友情链接】
习惯中文的小伙伴可以查看MCP中文文档,中文文档地址:mcp-docs.cn/introductio...
MCP官方简介:www.anthropic.com/news/model-...

MCP官网文档:modelcontextprotocol.io

MCP官方服务示例:github.com/modelcontex...
目前已有很多社区和三方服务了

MCP通用架构图

MCP 的核心遵循客户端-服务器架构,其中主机应用程序可以连接到多个服务器:
- MCP Hosts:希望通过 MCP 访问数据的 Claude Desktop、IDE 或 AI 工具等程序
- MCP Servers::轻量级程序,通过标准的 Model Context Protocol 提供特定能力
- MCP Clients:与MCP服务器保持一对一连接的协议客户端
- 本地数据源:MCP 服务器可以安全访问的计算机文件、数据库和服务
- 远程服务:MCP 服务器可以连接到的 Internet 上可用的外部系统(例如,通过 APIs)
MCP主要组成部分

MCP针对开发者来说有三个主要的组成部分:
- MCP协议规范:MCP协议开发规范
- 本地MCP服务的支持:提供对本地MCP服务的支持(不单指Claude Desktop,通指支持MCP服务的客户端)
- 开源MCP服务器库:帮助开发者构建MCP服务
MCP核心概念
MCP有以下几个核心功能:
- Resources:可以被 clients 读取的类文件数据(如 API 响应或文件内容)
- Prompts:预先编写的模板,帮助用户完成特定任务
- Tools:可以被 LLM 调用的函数(需要用户批准)
- Sampling:servers通过 client 请求 LLM 补全,从而实现复杂的 agentic 行为
- Roots:告知servers关于resources相关的信息
- Transports:传输层,包含 stdio(标准输入/输出,常用)、 SSE(服务器发送事件)和 Streamable HTTP(常用)
MCP服务开发方式
MCP Server目前有 Python、TypeScript、Java、Kotlin、Ruby、C#、Swift 等7 种环境开发方式,目前使用最多的开发语言为 Python 和 TypeScript :
- 基于TypeScript语言开发:使用NPX运行
- 基于Python语言开发:使用UVX或者PIP运行
安装环境依赖

依次执行上面命令行环境检查如有提示"command not foud"表示没有安装对应的UV命令行环境,需要进行安装。
官方推荐安装方式,文档地址:modelcontextprotocol.io/quickstart/...
php
# macOS/Linux
$ curl -LsSf https://astral.sh/uv/install.sh | sh
# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

MCP客户端
MCP客户端一开始只有Claude Desktop app,随着MCP的爆火,陆续涌现了众多MCP客户端,如 Cline、Roo Code、Continue、Cursor、Cherry Studio、ChatWise等等,这些客户端大致可以分为 桌面端、编辑器、插件 3大类。
Claude Desktop app
Claude桌面端之前一直没有使用过,这里单独了解一下。
1、MacOS版本要求11.0及更高版本
2、选择合适的科学网络
3、没有订阅Claude的也可以不用安装,没有订阅Claude无法使用MCP

点击应用程序拖拽到【Applications】进行安装

打开Claude桌面端,输入邮箱进行登录

登录完成后即可进入Claude桌面端

Cherry Studio桌面端
关于Cherry Studio的安装和使用可以参考往期内容:
【Cherry Studio】Cherry Studio让人爱不释手的AI Chat
Cursor编辑器客户端
关于 Cursor 的安装和使用可以参考往期内容:
【Cursor】安装注册
插件类客户端
常见的几个插件类的客户端,在往期内容中多少都了解过,感兴趣的小伙伴可以看往期
Cline:【VS Code】Cline+DeepSeek平替Cursor?
Roo Code:【VS Code】Roo Cline正式更名为Roo Code
Continue:【VS Code】AI代码助手Continue体验如何?
SQLite MCP案例
我们跟着MCP中文文档中的入门案例进行操作,了解一下MCP的基本配置和使用过程,详细信息查看MCP中文文档地址:mcp-docs.cn/quickstart
SQLite MCP服务简介
该示例为Claude Desktop客户端通过SQLite MCP可以访问本地SQLite服务的配置过程

前提条件
- 操作系统macOS 或 Windows
- 安装最新版本的 Claude Desktop (下载地址可参考友情链接)
- UV 0.4.18 或更高版本(uv --version 检查):一个Python的包及项目管理工具
- SQLite(sqlite3 --version 检查):本地数据库
创建数据库文件
在命令行中执行如下指令,在本地创建一个sqlite3数据库文件,我这里将文件指定到桌面目录下
sql
# 创建一个新的 SQLite 数据库
sqlite3 /Users/username/Desktop/test.db <<EOF
CREATE TABLE products (
id INTEGER PRIMARY KEY,
name TEXT,
price REAL
);
INSERT INTO products (name, price) VALUES
('Widget', 19.99),
('Gadget', 29.99),
('Gizmo', 39.99),
('Smart Watch', 199.99),
('Wireless Earbuds', 89.99),
('Portable Charger', 24.99),
('Bluetooth Speaker', 79.99),
('Phone Stand', 15.99),
('Laptop Sleeve', 34.99),
('Mini Drone', 299.99),
('LED Desk Lamp', 45.99),
('Keyboard', 129.99),
('Mouse Pad', 12.99),
('USB Hub', 49.99),
('Webcam', 69.99),
('Screen Protector', 9.99),
('Travel Adapter', 27.99),
('Gaming Headset', 159.99),
('Fitness Tracker', 119.99),
('Portable SSD', 179.99);
EOF

创建完成后可在桌面上看到该数据库文件

执行如下命令可以查到结果说明数据库创建成功

配置Claude Desktop
如果claude_desktop_config.json不存在,需要自己手动创建
在文本编辑器中打开 ~/Library/Application Support/Claude/claude_desktop_config.json 中的 Claude Desktop 应用配置
如果你安装了VS Code可以直接使用如下命令行
javascript
$ code ~/Library/Application\ Support/Claude/claude_desktop_config.json
如果没有claude_desktop_config.json文件需要自己手动创建
shell
$ touch ~/Library/Application\ Support/Claude/claude_desktop_config.json
打开claude_desktop_config.json文件后编辑文件如下:
json
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/Users/YOUR_USERNAME/test.db"]
}
}
}

命令解析:
- mcpServers:mcp服务配置对象
- sqlite:当前mcp服务的名称
- command:执行的命令是vux
- args:执行命令的参数
上面配置相当于通过运行 vux mcp-server-sqlite --db-path /Users/YOUR_USERNAME/test.db 启动一个名为 sqlite 的mcp服务,更多Sqlite用法可以参考MCP Sqlite服务库:github.com/modelcontex...
在Claude Desktop使用
Claude订阅用户看这里,只有Claude订阅用户才可以正常使用MCP
重启Claude Desktop桌面应用(重启是为了Claude Desktop重新加载配置文件),重启后在Claude Desktop右下角看到一个🔨标志表示配置成功

输入提示词验证结果(我不是Claude订阅用户,这里就不演示了)
你现在可以访问Sqlite数据库,请告诉我数据库中产品名称及价格
在Cline中使用
建议在Act模式下使用
点击右上角【MCP Servers】进入MCP Servers配置

点击【Configure MCP Servers】打开配置文件

在配置文件中,配置如下Sqlite信息
json
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/Users/YOUR_USERNAME/test.db"]
}
}
}

配置完成后保存,在MCP Servers服务列表就可以看到刚刚配置的Sqlite MCP服务启用状态

点击【sqlite】展开可以对MCP服务进行数据库授权,我这里为其授权了 read_query(Select查询权限)、list_tables(列举所有表权限)、describe_table(获取表的详细信息权限)权限,这样Cline在访问Sqlite数据库时就不会一直请求授权了

输入提示词,Cline就会通过我们定义的sqlite服务读取数据库信息了
你现在可以访问Sqlite数据库,请告诉我数据库中产品名称及价格

在Cursor中使用
当前Cursor版本0.45.11,使用Agent模式
进入Cursor配置页面,切换到【Features】,点击【Add new MCP server】添加一个MCP server

输入MCP Name为【sqlite】, Type类型选择【command】, Command输入如下执行指令,点击【Add】添加
bash
uvx mcp-server-sqlite --db-path /Users/YOUR_USERNAME/test.db

等待sqlite前面的状态变为绿色即为添加成功(如果状态一致没有变化可以点击右侧的刷新按钮进行手动刷新),可以看到这里默认为sqlite服务添加了所有权限

输入提示词,Cursor就会通过我们定义的sqlite服务读取数据库信息了
你现在可以访问Sqlite数据库,请告诉我数据库中产品名称及价格
使用快捷键【Cmd+I】唤起Composer,选择【agent】模式(Chat模式和Composer的normal模式下Cursor无法直接使用MCP服务)

可以看到Cursor调用了对应的MCP工具并为我们输出了数据内容


MCP交互流程

- 服务器发现:Claude Desktop 在启动时连接到你配置的 MCP 服务器
- 协议握手:当你询问数据时,Claude Desktop:
- 确定哪个 MCP 服务器可以提供帮助(在本例中是 sqlite)
- 通过协议协商能力
- 从 MCP 服务器请求数据或操作
- 模型对数据结果进行格式化处理
- 安全性
- MCP 服务器仅暴露特定、受控的功能
- MCP 服务器在你的机器上本地运行,它们访问的资源不会暴露在互联网上
- Claude Desktop 需要用户确认以进行敏感操作
友情链接
- 模型上下文协议规范和 SDK:github.com/modelcontex...
- Claude Desktop 应用程序:claude.ai/download
- MCP 服务开源库:github.com/modelcontex...
- MCP文档:modelcontextprotocol.io/introductio...
- MCP中文文档:mcp-docs.cn/introductio...
- UV官网:docs.astral.sh/uv
友情提示
本文同步自微信公众号 "程序员小溪" ,这里只是同步,想看及时消息请移步我的公众号,不定时更新我的学习经验。