引言
在人工智能飞速发展的今天,大型语言模型(LLM)如Claude、ChatGPT等已经成为人们日常工作和生活的重要工具。然而,这些AI助手在与外部数据交互方面一直存在明显的局限性——它们要么需要用户手动上传数据,要么需要开发者为每个数据源编写定制化的集成代码。这种数据交互方式不仅效率低下,还限制了AI助手的能力边界。
2024年底,Anthropic公司推出并开源了一项名为Model Context Protocol(MCP,模型上下文协议)的重要技术,旨在解决上述问题。MCP通过统一的协议标准,使AI助手能够直接、安全地访问各种本地和远程数据源,包括文件系统、数据库、API等,从而显著扩展了AI助手的能力范围。
本指南将详细介绍Claude MCP的概念、架构、环境搭建步骤以及实战应用场景,帮助读者全面理解这一技术,并学会如何在实际工作中应用MCP来提升AI助手的效能。无论你是AI爱好者、开发者,还是企业用户,本指南都将帮助你掌握这一前沿技术,充分发挥Claude AI助手的潜力。
什么是MCP
MCP的定义与核心目标
MCP(Model Context Protocol,模型上下文协议)是Anthropic公司开发并开源的一种通信协议,用于建立AI模型与外部数据源之间的标准化连接。简单来说,MCP就是一种让AI助手能够”看见”并操作你的数据的技术标准。
MCP的核心目标是为AI系统提供一种统一且可靠的方式来访问它们所需的数据和功能,从而克服以往数据集成方法的局限性。通过这种标准化的协议,AI模型可以像使用一个统一接口一样连接到各种不同的数据源和工具,无需为每个数据源开发特定的连接器。
正如USB-C接口让不同的电子设备能够使用同一种接口进行连接一样,MCP也为AI模型与数据源之间的连接提供了一种通用标准,显著简化了AI应用的开发和集成过程。
MCP与传统AI交互方式的对比
在MCP出现之前,用户与AI助手交换数据主要有两种方式,各有其明显的局限性:
手动数据上传:用户需要手动将数据复制粘贴或上传到AI助手的对话中。这种方式存在以下问题:
- 数据大小和类型有严格限制
- 上传过程繁琐
- 数据上传到第三方服务器存在安全隐患
- 无法实时更新数据
赋予AI本地管理员权限:像Open Interpreter这样的工具允许AI获得本地系统的管理员权限,直接操作用户数据。这种方式虽然便捷,但带来严重的安全风险:
- AI可以访问所有文件和系统资源
- 恶意代码可能导致隐私和数据泄露
- 缺乏精细化的权限控制
相比之下,MCP方案提供了一种平衡的解决方案:
- 标准化接口:通过统一的协议连接各种数据源
- 精细化权限控制:用户可以控制AI访问哪些数据和资源
- 本地处理:数据优先在本地处理,降低隐私风险
- 实时交互:支持与数据源的实时双向通信
- 扩展性:可轻松添加新的数据源和工具
MCP的意义
MCP的推出标志着AI系统与外部世界交互方式的一次重大变革,其意义主要体现在以下几个方面:
打破数据孤岛:AI系统不再局限于用户上传的数据,可以访问更广泛的数据源。
统一标准:为AI与外部系统的交互建立了开放标准,类似于浏览器与网站的通用标准。
生态构建:开放标准促进了开发者社区构建丰富多样的MCP服务器,扩展AI能力边界。
增强AI能力:通过访问专业工具和数据库,AI可以执行更复杂的任务,提供更专业的服务。
提升用户体验:用户不再需要手动上传数据,交互更加自然流畅。
安全与控制:在保证功能扩展的同时,确保用户对数据访问有明确的控制权。
如果说去年的AI明星是ChatGPT,今年则可能是Claude莫属。MCP的推出虽然目前还处于测试阶段,功能并不算特别惊艳,有些案例用其他AI自动化工具也许可以实现得更好。但作为一个开始,这种开放协议将加速AI与其他应用系统的互操作发展,我们可以期待在未来看到更加成熟和强大的MCP生态系统。
MCP架构详解
核心组件
MCP采用客户端-服务器架构,由三个核心组件组成:
MCP主机(Host):
- 定义:希望通过MCP访问资源的程序,例如Claude Desktop应用、集成开发环境(IDE)或其他AI工具。
- 功能:负责初始化客户端,管理与服务器的连接,并为用户提供界面以授权或拒绝资源访问请求。
- 特点:在Claude Desktop的情况下,主机同时包含客户端功能和服务器管理功能。
MCP客户端(Client):
- 定义:与MCP服务器保持1:1连接的协议客户端。
- 功能:负责与服务器建立连接,发送请求,接收响应,并将信息传递给主机。
- 特点:客户端是连接AI模型和MCP服务器的桥梁,处理所有的通信细节。
MCP服务器(Server):
- 定义:通过标准化的模型上下文协议公开特定功能的轻量级程序。
- 功能:提供对本地或远程资源的访问能力,执行AI模型请求的操作。
- 特点:每个服务器专注于特定类型的资源或功能,如文件系统、数据库、API等。
除了这些核心组件,MCP架构还涉及两类重要资源:
- 本地资源:用户计算机上可供MCP服务器安全访问的资源,如本地文件、数据库、应用程序等。
- 远程资源:MCP服务器可以通过网络连接的外部资源,如云存储、远程API、在线服务等。
工作原理
MCP的工作原理可以通过以下步骤来理解:
服务器发现:
- Claude Desktop启动时,通过JSON配置文件检测用户配置的MCP服务器。
- 主机加载所有配置的服务器,准备在需要时与它们建立连接。
任务分析:
- 当用户向Claude提出请求时,AI模型分析请求内容,判断是否需要访问外部资源。
- 如需访问资源,AI模型会确定哪个MCP服务器能够满足需求。
能力协商:
- AI模型通过主机和客户端,向相应的MCP服务器发送请求。
- 服务器返回其可用的功能和能力,双方进行协商。
用户授权:
- 在首次访问资源前,主机会显示权限请求对话框,询问用户是否允许AI访问特定资源。
- 用户可以选择允许一次、允许整个会话期间访问,或拒绝访问。
资源访问:
- 获得授权后,MCP客户端将具体请求传递给服务器。
- 服务器执行请求(如查询数据库、读取文件等),并将结果返回给客户端。
结果处理:
- 客户端将服务器返回的数据传递给AI模型。
- AI模型基于这些数据生成回复,呈现给用户。
通信流程
MCP通信采用基于WebSocket的协议,支持双向通信,主要包括以下消息类型:
握手消息:
- 客户端发送握手请求,包含支持的协议版本等信息。
- 服务器回复握手响应,确认连接建立。
能力查询消息:
- 客户端查询服务器支持的功能和资源类型。
- 服务器返回其能力清单,包括支持的操作、资源类型等。
资源请求消息:
- 客户端发送特定资源请求,如读取文件、查询数据库等。
- 服务器处理请求并返回结果或错误信息。
工具调用消息:
- 客户端请求执行特定工具功能,如截图、网页导航等。
- 服务器执行工具操作并返回结果。
提示模板消息:
- 客户端请求服务器的预定义提示模板。
- 服务器返回可用的提示模板及其参数。
这些消息采用JSON-RPC 2.0格式,确保通信的标准化和跨平台兼容性。
安全机制
MCP特别注重安全性设计,主要体现在以下几个方面:
权限控制:
- 用户可以精细控制AI访问哪些资源,何时访问。
- 可以为单次操作或整个会话授权,确保用户始终掌控主动权。
本地处理:
- MCP服务器运行在用户本地环境中,敏感数据优先在本地处理。
- 降低了敏感信息传输到外部服务器的风险。
资源隔离:
- 每个MCP服务器只能访问特定类型的资源,且访问范围受限。
- 服务器无法访问超出其权限范围的系统资源。
API密钥保护:
- MCP服务器可以安全管理API密钥和敏感凭证,无需将其提供给AI模型。
- 服务器作为中间层,保护敏感认证信息。
安全通信:
- 客户端和服务器之间的通信可以加密,保护数据传输安全。
- 本地通信降低了网络安全风险。
目前,MCP仅支持本地运行,即服务器需要在用户的计算机上运行。Anthropic计划在未来添加对具有企业级身份验证的远程服务器的支持,以实现团队之间的安全共享。
环境搭建准备
系统要求
在开始搭建MCP环境前,首先需要确保你的系统满足以下基本要求:
操作系统:
- macOS (10.15 Catalina或更高版本)
- Windows 10或Windows 11
- 目前暂不支持Linux系统,但可以期待未来版本的支持
硬件要求:
- 处理器:至少为双核CPU
- 内存:建议8GB或更高
- 存储空间:至少需要2GB可用空间用于安装软件和依赖
- 网络连接:稳定的互联网连接
权限要求:
- 管理员权限(在安装阶段可能需要)
- 本地文件系统访问权限
- 网络访问权限
软件依赖
为了成功运行MCP服务器,你需要安装以下软件依赖。我们将详细介绍每个依赖的用途以及在MCP中的作用:
Claude Desktop应用:
- 用途:作为MCP的主机(Host),提供用户界面和MCP客户端功能。
- 重要性:这是MCP的核心组件,所有MCP服务器都需要通过Claude Desktop来使用。
- 版本要求:最新版本(确保启用了MCP功能)
Node.js:
- 用途:提供JavaScript运行环境,用于执行基于TypeScript/JavaScript的MCP服务器。
- 重要性:许多官方和社区MCP服务器都是基于Node.js开发的,如文件系统服务器、Puppeteer服务器等。
- 版本要求:建议使用LTS版本(最低18.x),过低的版本可能导致兼容性问题。
Python:
- 用途:支持基于Python开发的MCP服务器,如SQLite服务器等。
- 重要性:某些MCP服务器的运行环境,特别是数据处理相关的服务器。
- 版本要求:Python 3.8或更高版本,推荐使用Python 3.10+。
UV:
- 用途:Python的包管理和项目管理工具,用于安装和运行Python版MCP服务器。
- 重要性:Claude官方推荐的Python包管理工具,比pip更现代化、更快速。
- 版本要求:uv 0.4.18或更高版本。
Git:
- 用途:版本控制工具,用于克隆和管理MCP服务器代码库。
- 重要性:用于获取最新的MCP服务器代码和更新。
- 版本要求:任何最新版本即可。
SQLite:
- 用途:轻量级数据库系统,用于本地数据存储和管理。
- 重要性:MCP的基础案例使用SQLite进行数据库交互测试。
- 版本要求:SQLite 3.x版本。
以上软件依赖共同构成了MCP的运行环境。接下来,我们将详细介绍这些依赖的安装过程。
安装Claude Desktop
Claude Desktop是使用MCP的核心组件,它同时承担MCP主机和客户端的角色。以下是安装步骤:
macOS安装步骤:
- 访问Claude官方网站(https://claude.ai/download)下载最新版本的Claude Desktop应用。
- 打开下载的.dmg文件。
- 将Claude应用拖拽到Applications文件夹中。
- 首次启动时,系统可能会提示”来自未知开发者的应用”,请在”系统偏好设置” → “安全性与隐私”中允许打开此应用。
- 启动Claude应用并使用您的Claude账号登录。
Windows安装步骤:
- 访问Claude官方网站(https://claude.ai/download)下载最新版本的Claude Desktop安装程序(.exe)。
- 双击安装程序启动安装向导。
- 按照安装向导的指示完成安装过程。
- 安装完成后,从开始菜单或桌面快捷方式启动Claude应用。
- 使用您的Claude账号登录应用。
验证MCP支持:
安装完成后,需要确认您的Claude Desktop应用支持MCP功能:
- 启动Claude应用并登录。
- 在应用窗口的右下角,应该能看到一个工具图标(通常是一个小锤子或扳手图标)。
- 点击该图标,如果能看到”Available Tools”或类似提示,则表明MCP功能已启用。
如果您没有看到这个工具图标,可能是因为:
- 您的Claude账号尚未获得MCP功能的访问权限(它目前可能处于逐步推出阶段)。
- 您需要更新Claude Desktop应用到最新版本。
- MCP功能可能需要在应用设置中手动启用。
完成Claude Desktop的安装后,您已经具备了使用MCP的基本环境。接下来,我们将安装和配置其他必要的软件依赖。
基础环境配置
Node.js安装与配置
Node.js是许多MCP服务器的运行环境,特别是基于TypeScript/JavaScript开发的服务器,如文件系统服务器、Puppeteer服务器等。以下是详细的安装步骤:
macOS安装步骤:
使用Homebrew安装(推荐方式):
# 安装Homebrew(如果尚未安装)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 安装Node.js
brew install node
# 验证安装
node -v
npm -v
或者从官网下载安装包:
- 访问Node.js官网(https://nodejs.org/)
- 下载LTS(长期支持)版本的安装包
- 打开下载的.pkg文件并按照安装向导完成安装
Windows安装步骤:
- 访问Node.js官网(https://nodejs.org/)
- 下载LTS(长期支持)版本的安装包(.msi)
- 运行安装程序并按照向导完成安装
- 安装过程中确保选择”自动添加到PATH”选项
- 安装完成后,打开命令提示符(cmd)或PowerShell验证安装:
node -v
npm -v
Node.js配置:
安装完成后,建议进行以下配置:
- 更新npm到最新版本:
npm install -g npm@latest
- 配置npm镜像(可选,如果你在中国大陆地区访问npm官方源较慢):
# 使用淘宝NPM镜像
npm config set registry https://registry.npmmirror.com
- 安装常用的全局包(对于MCP服务器可能有用):
# 安装npx,用于运行Node.js包而不需要全局安装
npm install -g npx
Node.js在MCP中的作用主要是运行TypeScript/JavaScript编写的MCP服务器。在MCP配置文件中,你会经常看到使用npx
命令来启动这些服务器,例如:
{
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/directory"]
}
这里的npx
就是Node.js提供的工具,用于运行MCP服务器包。
Python环境配置
Python是某些MCP服务器(特别是数据处理相关的服务器,如SQLite服务器)的运行环境。以下是详细的安装和配置步骤:
macOS安装步骤:
macOS通常预装了Python,但可能版本较旧。建议使用Homebrew安装最新版本:
# 使用Homebrew安装Python 3
brew install python
# 验证安装
python3 --version
Windows安装步骤:
- 访问Python官网(https://www.python.org/downloads/windows/)
- 下载最新的Python 3安装程序(选择”Windows installer (64-bit)”)
- 运行安装程序,勾选”Add Python to PATH”选项
- 点击”Install Now”进行默认安装,或选择”Customize installation”进行自定义
- 安装完成后,打开命令提示符(cmd)验证安装:
python --version
Python虚拟环境配置:
为了避免不同Python项目之间的包冲突,建议为MCP创建专用的虚拟环境:
# 安装venv模块(如果需要)
python3 -m pip install --upgrade pip
python3 -m pip install --user virtualenv
# 创建专用于MCP的虚拟环境
python3 -m venv mcp-env
# 激活虚拟环境(Mac/Linux)
source mcp-env/bin/activate
# 激活虚拟环境(Windows)
mcp-env\Scripts\activate
虚拟环境激活后,你会在命令行前看到(mcp-env)
前缀,表示当前在虚拟环境中。在这个环境中安装的所有Python包都将是隔离的,不会影响系统Python。
UV包管理器安装
UV是一个现代化的Python包管理工具,Claude官方推荐用它来代替传统的pip。UV的主要优势在于速度更快、依赖解析更智能、兼容性更好。以下是安装UV的步骤:
macOS/Linux安装步骤:
# 使用官方安装脚本
curl -sSf https://install.determinate.systems/uv | sh
# 或者使用pip安装
pip install uv
# 验证安装
uv --version
Windows安装步骤:
# 使用pip安装
pip install uv
# 验证安装
uv --version
UV的使用:
UV支持与pip相似的命令,但执行速度更快:
# 安装包
uv pip install package_name
# 从requirements.txt安装
uv pip install -r requirements.txt
# 运行Python包(这是MCP常用功能)
uvx package_name
在MCP配置中,你会看到使用uvx
命令来运行Python实现的MCP服务器,例如:
{
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/path/to/database.db"]
}
这里的uvx
命令是UV提供的,用于直接运行Python包,而不需要先安装再运行。
Git安装配置
Git是一个分布式版本控制系统,在MCP环境中主要用于获取和更新MCP服务器代码。以下是安装步骤:
macOS安装步骤:
macOS可能已经预装了Git,可以在终端中输入git --version
检查。如果没有安装,可以使用Homebrew安装:
# 安装Git
brew install git
# 验证安装
git --version
Windows安装步骤:
- 访问Git官网(https://git-scm.com/download/win)下载Windows版Git安装程序
- 运行安装程序,基本上可以保持默认选项
- 在”Adjusting your PATH environment”步骤,选择”Git from the command line and also from 3rd-party software”
- 完成安装后,打开命令提示符或PowerShell验证安装:
git --version
Git基本配置:
安装完成后,建议进行基本配置:
# 设置用户名和邮箱(用于代码提交标识)
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
# 设置默认分支名称
git config --global init.defaultBranch main
# 设置凭证存储(避免重复输入密码)
git config --global credential.helper store
Git在MCP环境中主要用于克隆和更新MCP服务器代码库,以及获取最新的示例和文档。例如:
# 克隆MCP服务器代码库
git clone https://github.com/modelcontextprotocol/servers.git
# 进入项目目录
cd servers
# 获取最新更新
git pull
SQLite安装与基础使用
SQLite是一个轻量级的嵌入式关系型数据库引擎,不需要单独的服务器进程,非常适合本地应用和原型开发。在MCP环境中,SQLite是基础案例的重要组成部分。
macOS安装步骤:
macOS通常预装了SQLite,可以在终端中输入sqlite3 --version
检查。如果没有安装,可以使用Homebrew安装:
# 安装SQLite
brew install sqlite
# 验证安装
sqlite3 --version
Windows安装步骤:
- 访问SQLite官网(https://www.sqlite.org/download.html)
- 下载Windows版预编译二进制文件(sqlite-tools-win32-*.zip)
- 解压缩到一个目录,如C:\sqlite
- 将该目录添加到系统PATH环境变量:
- 右键”此电脑” → 属性 → 高级系统设置 → 环境变量
- 在”系统变量”中选择”Path” → 编辑
- 添加新条目C:\sqlite(或你解压缩的目录路径)
- 点击”确定”保存更改
- 打开新的命令提示符窗口验证安装:
sqlite3 --version
SQLite基础使用:
以下是SQLite的一些基本操作,对理解MCP的SQLite案例非常有帮助:
- 创建新数据库:
# 创建新数据库或打开已有数据库
sqlite3 mydatabase.db
- 命令行界面基本操作:
-- 创建表
CREATE TABLE products (
id INTEGER PRIMARY KEY,
name TEXT,
price REAL
);
-- 插入数据
INSERT INTO products (name, price) VALUES
('AI 实战派', 200.00),
('AI 自动化', 180.00);
-- 查询数据
SELECT * FROM products;
-- 退出SQLite命令行
.quit
- 脚本执行方式(常用于MCP测试):
# 通过重定向执行SQL命令
sqlite3 ~/test.db <<EOF
CREATE TABLE products (
id INTEGER PRIMARY KEY,
name TEXT,
price REAL
);
INSERT INTO products (name, price) VALUES
('AI 实战派', 200.00),
('AI 自动化', 180.00);
EOF
SQLite在MCP中主要用于演示AI助手如何与数据库交互,包括查询数据、分析数据、创建表和修改数据等操作。
MCP服务器安装与配置
Claude Desktop配置文件
Claude Desktop通过配置文件来管理MCP服务器。这个文件定义了哪些MCP服务器可以被Claude使用,以及如何启动这些服务器。
配置文件位置:
- macOS:
~/Library/Application\ Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
在首次使用时,这个配置文件可能不存在,需要手动创建。
配置文件基本结构:
配置文件采用JSON格式,基本结构如下:
{
"mcpServers": {
"server1": {
"command": "命令名称",
"args": ["参数1", "参数2", ...]
},
"server2": {
"command": "命令名称",
"args": ["参数1", "参数2", ...]
},
...
}
}
每个服务器配置包含两个主要部分:
- command:用于启动服务器的命令,通常是
npx
(Node.js包)或uvx
(Python包) - args:传递给命令的参数,具体取决于服务器的需求
编辑配置文件:
可以使用任何文本编辑器来编辑配置文件,例如:
- macOS: 使用TextEdit、VS Code、Sublime Text、Vim等
- Windows: 使用记事本、VS Code、Notepad++等
以下是使用命令行编辑配置文件的示例:
# macOS (使用默认文本编辑器)
open -e ~/Library/Application\ Support/Claude/claude_desktop_config.json
# macOS (使用VS Code)
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
# Windows (使用记事本)
notepad %APPDATA%\Claude\claude_desktop_config.json
注意事项:
- 每次修改配置文件后,需要重启Claude Desktop应用才能生效。
- 确保JSON格式正确,包括引号、逗号等,否则Claude可能无法识别配置。
- 当配置多个服务器时,每个服务器配置之间需要用逗号分隔。
SQLite MCP服务器配置
SQLite MCP服务器允许Claude与SQLite数据库交互,执行查询和修改操作。以下是详细的配置步骤:
1. 准备测试数据库:
首先,创建一个用于测试的SQLite数据库:
# 创建包含AI课程数据的测试数据库
sqlite3 ~/test.db <<EOF
CREATE TABLE products (
id INTEGER PRIMARY KEY,
name TEXT,
price REAL
);
INSERT INTO products (name, price) VALUES
('AI 实战派', 200.00),
('AI 自动化', 180.00),
('机器学习基础入门', 159.99),
('深度学习实践指南', 249.99),
('Python AI编程精讲', 189.99),
('计算机视觉专项课程', 299.99),
('自然语言处理入门到精通', 279.99),
('AI模型部署实战', 199.99),
('数据分析与可视化', 169.99),
('AI算法优化技巧', 229.99),
('强化学习基础教程', 259.99),
('AI项目管理实战', 189.99),
('AI应用场景分析', 149.99),
('机器学习模型调优', 239.99),
('AI产品设计思维', 179.99),
('深度学习框架精讲', 289.99),
('AI企业级应用开发', 299.99),
('AI安全与伦理', 159.99),
('AI性能优化实战', 219.99),
('AI系统架构设计', 269.99);
EOF
2. 配置SQLite MCP服务器:
编辑Claude Desktop配置文件,添加SQLite服务器配置:
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/Users/YOUR_USERNAME/test.db"]
}
}
}
请将/Users/YOUR_USERNAME/test.db
替换为你实际数据库文件的完整路径。在Windows上,路径格式应为C:\\Users\\YOUR_USERNAME\\test.db
,注意需要使用双反斜杠。
3. 重启Claude并验证配置:
保存配置文件后,关闭并重新启动Claude Desktop应用。启动后,在对话窗口右下角应该能看到工具图标,点击后会显示SQLite相关的工具。
SQLite MCP服务器能力:
SQLite MCP服务器提供以下核心功能:
- 读取查询(read_query):执行SELECT查询,获取数据库中的数据
- 写入查询(write_query):执行INSERT、UPDATE、DELETE等修改数据的查询
- 创建表(create_table):创建新的数据库表
- 列出表(list_tables):显示数据库中的所有表
- 描述表(describe_table):获取表的结构信息
- 添加见解(append_insight):根据数据分析添加业务见解
使用示例:
以下是与SQLite MCP服务器交互的示例提示:
基础查询:
你能连接到SQLite数据库并告诉我有哪些产品可用以及它们的价格吗?
数据分析:
能分析一下价格分布并提出定价优化建议吗?
创建表:
帮我设计并创建一个用于存储客户订单的新表格。
文件系统MCP服务器配置
文件系统MCP服务器允许Claude访问本地文件系统,读取和写入文件,管理目录等。以下是详细的配置步骤:
1. 创建测试目录:
首先,创建一个用于测试的目录,放入一些测试文件:
# 创建测试目录
mkdir -p ~/mcp-test-files
# 创建一些测试文件
echo "这是测试文件1的内容" > ~/mcp-test-files/test1.txt
echo "这是测试文件2的内容" > ~/mcp-test-files/test2.txt
2. 配置文件系统MCP服务器:
编辑Claude Desktop配置文件,添加文件系统服务器配置:
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/Users/YOUR_USERNAME/test.db"]
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/YOUR_USERNAME/mcp-test-files"]
}
}
}
请将/Users/YOUR_USERNAME/mcp-test-files
替换为你实际测试目录的完整路径。在Windows上,路径格式应为C:\\Users\\YOUR_USERNAME\\mcp-test-files
。
参数说明:
-y
:自动确认所有提示,跳过确认步骤@modelcontextprotocol/server-filesystem
:指定要运行的MCP文件系统服务器包- 最后一个参数是允许访问的目录路径
3. 重启Claude并验证配置:
保存配置文件后,关闭并重新启动Claude Desktop应用。启动后,在对话窗口右下角的工具图标中应该能看到文件系统相关的工具。
文件系统MCP服务器能力:
文件系统MCP服务器提供以下核心功能:
- 读取文件(read_file):读取指定文件的内容
- 写入文件(write_file):创建或修改文件内容
- 文件信息(file_info):获取文件的元数据,如大小、修改时间等
- 列出目录(list_directory):显示目录中的文件和子目录
- 创建目录(make_directory):创建新目录
- 删除文件/目录(remove):删除文件或目录
使用示例:
以下是与文件系统MCP服务器交互的示例提示:
文件浏览:
你能列出测试目录中有哪些文件吗?
文件内容读取:
请读取test1.txt的内容并告诉我它包含什么。
文件创建:
帮我创建一个新文件summary.txt,内容是对目录中所有文件的摘要。
Fetch MCP服务器配置
Fetch MCP服务器允许Claude获取网页内容并将其转换为Markdown格式,非常适合信息检索和内容分析。以下是详细的配置步骤:
1. 安装Node.js(如果尚未安装):
Fetch服务器是基于Node.js的,确保已安装Node.js:
# 使用Homebrew在macOS上安装
brew install node
# 验证安装
node -v
npm -v
2. 配置Fetch MCP服务器:
编辑Claude Desktop配置文件,添加Fetch服务器配置:
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/Users/YOUR_USERNAME/test.db"]
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/YOUR_USERNAME/mcp-test-files"]
},
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
}
}
}
3. 重启Claude并验证配置:
保存配置文件后,关闭并重新启动Claude Desktop应用。启动后,在工具图标中应该能看到Fetch相关的工具。
Fetch MCP服务器能力:
Fetch MCP服务器主要提供以下功能:
- 获取网页(fetch):获取指定URL的网页内容,并转换为易于AI处理的格式
- 设置最大长度(max_length):限制返回内容的长度
- 获取原始HTML(raw):获取网页的原始HTML内容
- 设置起始索引(start_index):从指定位置开始获取内容,用于处理被截断的大型网页
使用示例:
以下是与Fetch MCP服务器交互的示例提示:
基本网页获取:
请获取URL为https://example.com的内容并进行简要总结。
特定内容分析:
获取https://en.wikipedia.org/wiki/Artificial_intelligence并告诉我关于AI历史的主要事件。
多网页比较:
分别获取以下两个URL的内容,比较它们对同一主题的不同观点:
https://site1.com/article
https://site2.com/article
Puppeteer MCP服务器配置
Puppeteer MCP服务器提供浏览器自动化功能,允许Claude控制浏览器进行导航、截图和与页面元素交互。这是一个非常强大的工具,可以执行复杂的网页操作。以下是详细的配置步骤:
1. 配置Puppeteer MCP服务器:
编辑Claude Desktop配置文件,添加Puppeteer服务器配置:
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/Users/YOUR_USERNAME/test.db"]
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/YOUR_USERNAME/mcp-test-files"]
},
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
},
"puppeteer": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
}
}
}
2. 重启Claude并验证配置:
保存配置文件后,关闭并重新启动Claude Desktop应用。启动后,在工具图标中应该能看到Puppeteer相关的工具。
Puppeteer MCP服务器能力:
Puppeteer MCP服务器提供以下核心功能:
页面导航(puppeteer_navigate):打开指定URL的网页
- 参数:url (网址)
页面截图(puppeteer_screenshot):对网页或特定元素进行截图
- 参数:
- name (截图名称)
- selector (元素选择器,可选)
- width (宽度)
- height (高度)
- 参数:
点击元素(puppeteer_click):点击页面上的特定元素
- 参数:selector (元素选择器)
悬停元素(puppeteer_hover):在页面元素上悬停
- 参数:selector (元素选择器)
填充表单(puppeteer_fill):填充表单字段
- 参数:
- selector (元素选择器)
- value (填充值)
- 参数:
选择下拉框(puppeteer_select):选择下拉菜单选项
- 参数:
- selector (元素选择器)
- value (选择值)
- 参数:
执行JavaScript(puppeteer_evaluate):在页面上下文中执行JavaScript代码
- 参数:script (脚本代码)
使用示例:
以下是与Puppeteer MCP服务器交互的示例提示:
基本网页浏览和截图:
请打开网址https://example.com并截图保存。
元素交互:
打开网站https://example.com,找到并点击"Contact Us"按钮,然后截图当前页面。
表单填写:
访问https://example.com/contact,在联系表单中填写姓名"John Doe"和邮箱"john@example.com",然后截图。
多服务器配置与注意事项
当配置多个MCP服务器时,需要注意一些重要事项,以确保所有服务器正常工作:
1. 正确的JSON格式:
确保在配置多个服务器时,JSON格式正确:
- 每个服务器配置之间需要用逗号分隔
- 最后一个服务器配置后不应有逗号
- 所有引号、大括号和方括号必须正确匹配
示例完整配置:
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/Users/YOUR_USERNAME/test.db"]
},
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/YOUR_USERNAME/mcp-test-files"]
},
"fetch": {
"command": "uvx",
"args": ["mcp-server-fetch"]
},
"puppeteer": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-puppeteer"]
}
}
}
2. 服务器命名冲突:
每个服务器必须有唯一的名称。如果你需要配置同一类型的多个服务器实例(例如,访问不同目录的多个文件系统服务器),应为它们使用不同的名称:
{
"mcpServers": {
"filesystem-docs": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/YOUR_USERNAME/Documents"]
},
"filesystem-projects": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/YOUR_USERNAME/Projects"]
}
}
}
3. 重启要求:
每次修改配置文件后,必须完全关闭并重新启动Claude Desktop应用,才能使更改生效。仅刷新对话或开始新对话是不够的。
4. 权限控制:
当Claude首次尝试访问某个MCP服务器时,会显示权限请求对话框。你可以选择:
- 允许一次(Allow Once):仅允许当前操作
- 允许本次对话(Allow for This Chat):允许当前对话中的所有操作
- 拒绝(Deny):拒绝访问请求
为了最佳安全实践,建议默认选择”允许一次”,除非你确定需要连续执行多个相关操作。
5. 资源限制:
运行多个MCP服务器可能会消耗较多系统资源,特别是Puppeteer服务器会启动完整的Chrome浏览器实例。如果遇到性能问题,可以考虑:
- 仅保留当前需要的服务器配置
- 关闭不必要的后台应用程序
- 重启Claude Desktop释放资源
6. 配置文件备份:
建议定期备份配置文件,特别是在进行重大更改前:
# macOS备份命令
cp ~/Library/Application\ Support/Claude/claude_desktop_config.json ~/claude_config_backup.json
# Windows备份命令
copy %APPDATA%\Claude\claude_desktop_config.json %USERPROFILE%\claude_config_backup.json
遵循以上注意事项,可以确保多个MCP服务器平稳运行,充分发挥Claude AI助手的能力。
实战案例:SQLite数据库操作
创建测试数据库
在正式开始SQLite数据库操作前,先确保我们已经创建了一个包含有意义数据的测试数据库。以下是详细的步骤:
1. 创建数据库文件:
首先,创建一个包含AI课程信息的SQLite数据库:
# macOS/Linux
sqlite3 ~/test.db <<EOF
CREATE TABLE products (
id INTEGER PRIMARY KEY,
name TEXT,
price REAL,
category TEXT,
difficulty_level TEXT,
duration_hours INTEGER,
rating REAL,
enrollment_count INTEGER
);
INSERT INTO products (name, price, category, difficulty_level, duration_hours, rating, enrollment_count) VALUES
('AI 实战派', 200.00, '应用开发', '中级', 25, 4.8, 1250),
('AI 自动化', 180.00, '自动化', '初级', 20, 4.6, 980),
('机器学习基础入门', 159.99, '机器学习', '初级', 18, 4.7, 2100),
('深度学习实践指南', 249.99, '深度学习', '高级', 30, 4.9, 850),
('Python AI编程精讲', 189.99, '编程', '中级', 22, 4.5, 1500),
('计算机视觉专项课程', 299.99, '计算机视觉', '高级', 35, 4.8, 720),
('自然语言处理入门到精通', 279.99, 'NLP', '中高级', 32, 4.7, 890),
('AI模型部署实战', 199.99, '模型部署', '中级', 24, 4.6, 650),
('数据分析与可视化', 169.99, '数据分析', '初级', 20, 4.4, 1850),
('AI算法优化技巧', 229.99, '算法', '高级', 28, 4.8, 580),
('强化学习基础教程', 259.99, '强化学习', '中高级', 30, 4.7, 420),
('AI项目管理实战', 189.99, '项目管理', '中级', 22, 4.3, 750),
('AI应用场景分析', 149.99, '应用研究', '初级', 15, 4.2, 1200),
('机器学习模型调优', 239.99, '机器学习', '高级', 26, 4.8, 680),
('AI产品设计思维', 179.99, '产品设计', '中级', 20, 4.5, 920),
('深度学习框架精讲', 289.99, '深度学习', '高级', 32, 4.9, 760),
('AI企业级应用开发', 299.99, '应用开发', '高级', 36, 4.7, 540),
('AI安全与伦理', 159.99, '安全与伦理', '中级', 18, 4.4, 830),
('AI性能优化实战', 219.99, '性能优化', '高级', 24, 4.6, 620),
('AI系统架构设计', 269.99, '系统架构', '高级', 30, 4.8, 480);
CREATE TABLE customers (
id INTEGER PRIMARY KEY,
name TEXT,
email TEXT,
registration_date TEXT,
last_purchase_date TEXT
);
INSERT INTO customers (name, email, registration_date, last_purchase_date) VALUES
('张三', 'zhang@example.com', '2023-01-15', '2023-11-20'),
('李四', 'li@example.com', '2023-02-20', '2023-10-05'),
('王五', 'wang@example.com', '2023-03-10', '2023-12-01'),
('赵六', 'zhao@example.com', '2023-04-25', '2023-09-15'),
('钱七', 'qian@example.com', '2023-05-12', '2023-11-30');
EOF
Windows用户可以将上面的命令保存为create_db.sql
文件,然后在命令提示符中执行:
sqlite3 %USERPROFILE%\test.db < create_db.sql
2. 验证数据库创建:
确认数据库已正确创建:
# 打开数据库
sqlite3 ~/test.db
# 查看所有表
.tables
# 查看products表结构
.schema products
# 查看部分数据
SELECT id, name, price FROM products LIMIT 5;
# 退出SQLite
.quit
3. 更新Claude配置:
确保Claude Desktop配置文件中正确指向了这个数据库:
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/Users/YOUR_USERNAME/test.db"]
}
}
}
记得将路径替换为你实际的数据库路径,然后重启Claude Desktop。
基础查询操作
现在我们已经准备好了测试数据库,可以开始探索Claude如何执行基础的数据库查询操作。以下是一些示例场景:
场景1: 基础数据检索
向Claude提问:
你能连接到我的SQLite数据库并告诉我有哪些AI课程可用以及它们的价格吗?请按照价格从高到低排序。
Claude会执行以下操作:
- 请求数据库访问权限
- 连接到SQLite数据库
- 查询数据库中的表
- 查看products表的结构
- 执行查询获取课程信息,并按价格排序
- 以自然语言格式呈现结果
预期结果示例:
我已连接到您的数据库并查询了课程信息。以下是按价格从高到低排序的AI课程列表:
1. 计算机视觉专项课程 - ¥299.99
2. AI企业级应用开发 - ¥299.99
3. 深度学习框架精讲 - ¥289.99
4. AI系统架构设计 - ¥269.99
5. 强化学习基础教程 - ¥259.99
...(更多课程)
场景2: 过滤和条件查询
向Claude提问:
在我的数据库中,哪些是入门级(初级)的AI课程,它们的价格和时长是多少?
Claude会执行以下步骤:
- 连接数据库
- 检查数据库架构,了解表和字段
- 构建查询以过滤出初级课程
- 执行查询并返回结果
预期结果示例:
根据您的数据库,以下是入门级(初级)的AI课程,包括它们的价格和时长:
1. AI自动化 - ¥180.00,时长20小时
2. 机器学习基础入门 - ¥159.99,时长18小时
3. 数据分析与可视化 - ¥169.99,时长20小时
4. AI应用场景分析 - ¥149.99,时长15小时
这些课程都是为初学者设计的,时长相对较短,价格也较为经济实惠。
场景3: 聚合分析
向Claude提问:
能分析一下各个难度级别的课程平均价格和平均时长吗?
Claude会执行聚合查询来分析数据:
SELECT
difficulty_level,
ROUND(AVG(price), 2) as avg_price,
ROUND(AVG(duration_hours), 1) as avg_duration,
COUNT(*) as course_count
FROM
products
GROUP BY
difficulty_level
ORDER BY
CASE
WHEN difficulty_level = '初级' THEN 1
WHEN difficulty_level = '中级' THEN 2
WHEN difficulty_level = '中高级' THEN 3
WHEN difficulty_level = '高级' THEN 4
END;
预期结果示例:
我已分析了您数据库中各难度级别课程的情况,结果如下:
1. 初级课程 (4个):
- 平均价格: ¥165.24
- 平均时长: 18.3小时
2. 中级课程 (6个):
- 平均价格: ¥186.66
- 平均时长: 21.8小时
3. 中高级课程 (2个):
- 平均价格: ¥269.99
- 平均时长: 31.0小时
4. 高级课程 (8个):
- 平均价格: ¥262.49
- 平均时长: 30.1小时
可以看出随着难度增加,课程价格和时长也相应提高,这符合预期。
数据分析与洞察
除了基本的数据检索,MCP还允许Claude执行更复杂的数据分析,并提供有价值的业务洞察。以下是一些具体示例:
场景1: 课程价格分析与建议
向Claude提问:
请分析我的AI课程价格分布情况,并提出可能的定价优化建议。
Claude会执行以下步骤:
- 分析课程价格的统计分布(最低、最高、平均值、中位数等)
- 分析不同类别和难度的价格分布
- 寻找价格异常或机会
- 提供数据驱动的定价建议
示例SQL操作:
-- 基本价格统计
SELECT
MIN(price) as min_price,
MAX(price) as max_price,
AVG(price) as avg_price,
(SELECT price FROM products ORDER BY price LIMIT 1 OFFSET (SELECT COUNT(*) FROM products) / 2) as median_price
FROM products;
-- 价格分布分析
SELECT
CASE
WHEN price < 160 THEN '低于160'
WHEN price BETWEEN 160 AND 200 THEN '160-200'
WHEN price BETWEEN 200 AND 250 THEN '200-250'
WHEN price BETWEEN 250 AND 300 THEN '250-300'
ELSE '300以上'
END as price_range,
COUNT(*) as course_count,
ROUND(AVG(price), 2) as avg_price_in_range
FROM
products
GROUP BY
price_range
ORDER BY
MIN(price);
-- 按难度和类别的价格分析
SELECT
category,
difficulty_level,
COUNT(*) as course_count,
ROUND(AVG(price), 2) as avg_price,
MIN(price) as min_price,
MAX(price) as max_price
FROM
products
GROUP BY
category, difficulty_level
ORDER BY
category, difficulty_level;
Claude可能的回应:
我已分析了您的AI课程价格分布,发现以下几点:
1. 价格范围:¥149.99 - ¥299.99,平均价格为¥213.44
2. 价格分布:
- ¥149.99-¥180.00: 5门课程
- ¥180.01-¥220.00: 5门课程
- ¥220.01-¥260.00: 3门课程
- ¥260.01-¥300.00: 7门课程
3. 定价优化建议:
- 考虑针对"机器学习"类别创建课程包,目前该类别课程价格差异较大(¥159.99-¥239.99)
- "应用开发"类别的初级课程缺乏,可考虑增加一门定价在¥150-¥180范围的入门课程
- 高级课程价格相对集中,可考虑增加一些¥300以上的高端专业课程来扩展产品线
- 中高级难度课程较少(仅2门),这是潜在的扩展机会
4. 其他发现:
- 评分与价格正相关,说明高价课程确实提供了更优质的内容
- 通过补充更多初级课程,可以建立更完整的学习路径,提高学员留存率
场景2: 学员数据分析
向Claude提问:
根据数据分析,哪些类型的课程最受欢迎?请分析影响课程受欢迎程度的因素。
Claude会结合enrollment_count(报名人数)和其他因素进行分析:
示例SQL操作:
-- 按报名人数排序的课程
SELECT
name,
category,
difficulty_level,
price,
enrollment_count
FROM
products
ORDER BY
enrollment_count DESC
LIMIT 5;
-- 按类别分析受欢迎程度
SELECT
category,
SUM(enrollment_count) as total_enrollments,
ROUND(AVG(enrollment_count), 0) as avg_enrollments,
COUNT(*) as course_count
FROM
products
GROUP BY
category
ORDER BY
total_enrollments DESC;
-- 分析价格、难度与报名人数的关系
SELECT
difficulty_level,
ROUND(AVG(price), 2) as avg_price,
ROUND(AVG(enrollment_count), 0) as avg_enrollments
FROM
products
GROUP BY
difficulty_level
ORDER BY
avg_enrollments DESC;
-- 相关性分析
SELECT
ROUND(AVG(enrollment_count), 0) as avg_enrollment,
CASE
WHEN price < 180 THEN '低价(< ¥180)'
WHEN price < 250 THEN '中价(¥180-¥250)'
ELSE '高价(> ¥250)'
END as price_tier
FROM
products
GROUP BY
price_tier
ORDER BY
avg_enrollment DESC;
Claude可能的回应:
根据数据分析,以下是关于课程受欢迎程度的发现:
1. 最受欢迎的课程类型:
- "机器学习"类别总报名人数最高(2780人),平均每门课1390人
- "数据分析"类别课程平均报名人数最高(1850人)
- "编程"类别也很受欢迎,平均每门课1500人
2. 影响课程受欢迎度的因素:
- 难度级别:初级课程平均报名人数(1532人)显著高于高级课程(635人)
- 价格因素:低价课程(< ¥180)平均报名人数为1283人,而高价课程(> ¥250)平均仅有624人
- 课程时长:20小时以下的课程平均报名人数更高
3. 关键发现:
- 性价比似乎是影响报名的主要因素,高评分但价格适中的课程吸引了最多学员
- 入门级别的实用课程(如"数据分析与可视化")比理论导向的课程更受欢迎
- 尽管高级课程报名人数较少,但它们在总收入中占比较大
4. 建议:
- 考虑增加更多初级和中级难度的课程,特别是在热门类别如"数据分析"和"机器学习"
- 可以探索"低价入门+高价进阶"的产品策略,提高整体转化率
- 对报名人数较少的高级课程,可考虑调整定价或增加差异化内容
创建表和修改数据
MCP不仅支持数据查询和分析,还允许Claude帮助用户创建新表和修改数据。以下是一些实用场景:
场景1: 创建订单表
向Claude提问:
帮我设计并创建一个存储学员订单记录的表,需要包含订单ID、学员ID、课程ID、下单时间、支付金额和支付状态等信息。
Claude会执行以下步骤:
- 分析需求
- 设计表结构
- 生成CREATE TABLE语句
- 执行创建操作
- 验证表已创建
示例SQL操作:
-- 创建订单表
CREATE TABLE orders (
order_id INTEGER PRIMARY KEY,
customer_id INTEGER NOT NULL,
product_id INTEGER NOT NULL,
order_date TEXT NOT NULL,
payment_amount REAL NOT NULL,
payment_status TEXT NOT NULL,
coupon_code TEXT,
order_source TEXT,
FOREIGN KEY (customer_id) REFERENCES customers(id),
FOREIGN KEY (product_id) REFERENCES products(id)
);
-- 验证表创建
.schema orders
Claude可能的回应:
我已为您设计并创建了一个订单表。该表包含以下字段:
1. order_id:订单ID,整数类型,主键
2. customer_id:学员ID,整数类型,外键关联到customers表
3. product_id:课程ID,整数类型,外键关联到products表
4. order_date:下单时间,文本类型,格式为YYYY-MM-DD HH:MM:SS
5. payment_amount:支付金额,浮点数类型
6. payment_status:支付状态,文本类型(如'pending', 'paid', 'refunded'等)
7. coupon_code:优惠券代码,文本类型,可为空
8. order_source:订单来源,文本类型,可为空
我已成功创建了这个表并验证了其结构。现在您可以开始向这个表中添加订单数据了。需要我帮您插入一些示例数据吗?
场景2: 插入测试数据
向Claude提问:
请帮我在订单表中添加5条测试数据,使用现有的学员和课程信息。
Claude会执行以下步骤:
- 获取现有学员和课程信息
- 生成合理的测试数据
- 执行INSERT语句
- 验证数据已插入
示例SQL操作:
-- 获取现有学员ID
SELECT id, name FROM customers;
-- 获取现有课程ID和价格
SELECT id, name, price FROM products;
-- 插入测试订单数据
INSERT INTO orders
(customer_id, product_id, order_date, payment_amount, payment_status, coupon_code, order_source)
VALUES
(1, 3, '2023-11-20 14:30:25', 159.99, 'paid', NULL, 'website'),
(2, 8, '2023-10-05 09:12:33', 199.99, 'paid', 'NEWUSER10', 'mobile_app'),
(3, 12, '2023-12-01 16:45:10', 189.99, 'paid', NULL, 'website'),
(4, 5, '2023-09-15 20:22:18', 189.99, 'refunded', NULL, 'website'),
(5, 10, '2023-11-30 11:05:42', 229.99, 'paid', 'BLACK20', 'mobile_app');
-- 验证数据插入
SELECT * FROM orders;
Claude可能的回应:
我已在订单表中添加了5条测试数据,使用了现有的学员和课程信息:
1. 张三购买了"机器学习基础入门"课程,支付¥159.99,于2023-11-20完成支付
2. 李四购买了"AI模型部署实战"课程,使用NEWUSER10优惠券,支付¥199.99,于2023-10-05完成
3. 王五购买了"AI项目管理实战"课程,支付¥189.99,于2023-12-01完成
4. 赵六购买了"Python AI编程精讲"课程,支付¥189.99,但后来申请了退款
5. 钱七购买了"AI算法优化技巧"课程,使用BLACK20优惠券,支付¥229.99,于2023-11-30完成
所有测试数据已成功插入到订单表中。我使用的订单日期与customers表中的last_purchase_date保持一致,以确保数据的一致性。
场景3: 数据更新操作
向Claude提问:
我想对课程价格进行调整:将所有初级课程价格提高5%,将高级课程价格降低3%。请帮我执行这个更新。
Claude会执行以下步骤:
- 生成更新语句
- 执行价格调整
- 验证更新结果
示例SQL操作:
-- 查看更新前的价格
SELECT id, name, difficulty_level, price FROM products WHERE difficulty_level IN ('初级', '高级');
-- 更新初级课程价格(提高5%)
UPDATE products
SET price = ROUND(price * 1.05, 2)
WHERE difficulty_level = '初级';
-- 更新高级课程价格(降低3%)
UPDATE products
SET price = ROUND(price * 0.97, 2)
WHERE difficulty_level = '高级';
-- 验证更新结果
SELECT id, name, difficulty_level,
CASE
WHEN difficulty_level = '初级' THEN ROUND(price / 1.05, 2)
WHEN difficulty_level = '高级' THEN ROUND(price / 0.97, 2)
ELSE price
END as old_price,
price as new_price,
CASE
WHEN difficulty_level = '初级' THEN ROUND(price - (price / 1.05), 2)
WHEN difficulty_level = '高级' THEN ROUND((price / 0.97) - price, 2)
ELSE 0
END as price_difference
FROM products
WHERE difficulty_level IN ('初级', '高级')
ORDER BY difficulty_level, id;
Claude可能的回应:
我已执行了课程价格调整,结果如下:
1. 初级课程价格提高5%:
- "AI自动化":¥180.00 → ¥189.00 (+¥9.00)
- "机器学习基础入门":¥159.99 → ¥167.99 (+¥8.00)
- "数据分析与可视化":¥169.99 → ¥178.49 (+¥8.50)
- "AI应用场景分析":¥149.99 → ¥157.49 (+¥7.50)
2. 高级课程价格降低3%:
- "深度学习实践指南":¥249.99 → ¥242.49 (-¥7.50)
- "计算机视觉专项课程":¥299.99 → ¥290.99 (-¥9.00)
- "AI企业级应用开发":¥299.99 → ¥290.99 (-¥9.00)
- "深度学习框架精讲":¥289.99 → ¥281.29 (-¥8.70)
- "AI性能优化实战":¥219.99 → ¥213.39 (-¥6.60)
- "AI系统架构设计":¥269.99 → ¥261.89 (-¥8.10)
- "机器学习模型调优":¥239.99 → ¥232.79 (-¥7.20)
- "AI算法优化技巧":¥229.99 → ¥223.09 (-¥6.90)
所有价格调整已成功执行。中级和中高级课程的价格保持不变。