今天, Claude 的公司 Anthropic 发布了一篇文章《Introducing the Model Context Protocol》,有关其推出一种新协议 MCP (或可译:模型上下文协议),以此可以让 Claude AI 不仅限于聊天功能,还能访问各种数据库乃至用户的文件系统。
最初我心想:这又是协议又是 AI 的,部署起来一定很繁琐吧。不过实际操作起来可以说是相当顺利。可以说,只要在计算机上执行过脚本,那基本上就不会遇到什么麻烦。
先跟着快速入门来试试
Anthropic 给出了一篇快速入门教程,其中实现的功能是:让 AI 来读取用户计算机内的一个数据库。说是数据库,听起来也很吓人,其实就是最简单的文件形式的数据库 SQLite 。
简单来说,一共要做的只有 3 个步骤:
(一)安装 Claude 客户端。
(二)安装各类中间件。
(三)参照快速入门教程中的范例生成一个配置文件。
然后就可以让 Claude 来访问你电脑里的数据库文件了。
对于第一步,可以在这里安装 Claude 的客户端。我自己是 MacOS 系统。当然,安装后需要登录。
第 (二)步也很简单,安装一些中间件,这些中间件是为了让 Claude 能否访问用户电脑里的数据库,或是为用户新建一个数据库。在快速入门教程中提到,MacOS 用户需要安装的中间件有: uv 、 Git 、 SQLite ,说实话我自己没用过 uv ,而 Git 和 SQLite 则是 MacOS 自带的。总之我就按照快速入门教程中的安装指南(命令:brew install uv git sqlite3 )来安装了一遍。
虽说随意安装自己不清楚的软件并不是一个好习惯,但毕竟 Anthropic 是目前万众瞩目的公司,因此不至于堂而皇之地推荐一些明知有安全风险的软件。更何况我去问了一下 ChatGPT ,它告诉我「UV 是由 Astral 开发的一个用 Rust 编写的极其快速的 Python 包和项目管理工具。」而且是一个开源项目,应该会受到足够多的程序员、开发者的检验审核吧。
安装完了中间件,根据快速入门教程,用户可以创造一个简单的 SQLite 数据库。听着吓人,其实就是创造一个小的数据库件(只不过该文件里的内容是符合数据库一系列格式和约束条件的)。下面这个示例援引自快速入门教程,这是创建了一个有关商品价格的数据库。
Create a new SQLite database
sqlite3 ~/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
再接下来就是建立一个配置文件。
在快速入门教程中,说的是要编辑如下这个文件:
~/Library/Application Support/Claude/claude_desktop_config.json
但实际上在我的实践中,一开始并没有这个文件,需要手动创建一下。
而该 claude_desktop_config.json 文件中的内容,则写入:
{
"mcpServers": {
"sqlite": {
"command": "uvx",
"args": ["mcp-server-sqlite", "--db-path", "/Users/YOUR_USERNAME/test.db"]
}
}
}
注意,其中 /Users/YOUR_USERNAME/test.db 刚才创建的数据库在用户计算机中的实际路径。
好,配置就到这里结束了。就可以打开 Claude 客户端,向 AI 提问了。
经我自己实践发现, Claude 客户端不仅可以进行数据库查询,还可以进行添加和修改。当然,作为一款大语言模型,还可以通过与它进行更有实际应用意义的对话,来挖掘数据价值。比如就以上这个商品价格的范例。我向 Claude 发出指示:
如果现在有人可以得到300美元,从现有的数据库中的商品里购买物品。请想象3个不同的性格、兴趣爱好、身份的人,他们分别会买什么,才能符合他们的兴趣爱好。请告诉我这3个人的购买选择,以及为什么这么购买。同时列出购买物品和数量、耗费金额,以及300美元用剩下的金额。
Claude 给我的回答是:
我来描述三个不同的角色及其购物选择:
1. 小李 – 25岁的游戏主播/直播技术达人
购买清单:
– 游戏耳机 $159.99
– 网络摄像头 $69.99
– 迷你无人机 $29.99(用于直播创意内容)
总计:$259.97
剩余:$40.03选择理由:作为游戏主播,他需要高质量的游戏耳机提供出色的音频体验,网络摄像头确保直播画质清晰,迷你无人机可以为直播内容增添新的拍摄角度和创意。这套装备完美契合他的职业需求和个人兴趣。
2. 王美琳 – 40岁的职场白领/瑜伽爱好者
购买清单:
– 智能手表 $199.99
– 便携充电器 $24.99
– LED台灯 $45.99
– 旅行适配器 $27.99
总计:$298.96
剩余:$1.04选择理由:智能手表可以追踪运动数据和健康指标,支持她的瑜伽健身生活。便携充电器解决旅行充电问题,LED台灯提供舒适的工作和瑜伽冥想环境,旅行适配器则方便出差使用。
3. 张洪 – 50岁的退休工程师/业余摄影爱好者
购买清单:
– 便携式固态硬盘 $179.99
– 笔记本电脑保护套 $34.99
– 键盘 $129.99
– 屏幕保护膜 $9.99
总计:$354.96(超出预算)调整后的购买清单:
– 便携式固态硬盘 $179.99
– 笔记本电脑保护套 $34.99
– 鼠标垫 $12.99
– 屏幕保护膜 $9.99
总计:$237.96
剩余:$62.04选择理由:作为业余摄影师和退休工程师,他需要高容量的便携式固态硬盘存储大量照片和数据。笔记本电脑保护套、鼠标垫和屏幕保护膜则能保护他的电脑设备,满足他对技术和细节的追求。
这三个角色展示了不同年龄、职业和兴趣爱好的人如何在300美元预算内,根据个人需求进行精准的产品选择。每个人都找到了最适合自己生活方式的产品组合。
你看,这就变成了一个根据不同客户人群肖像来进行导购选择组合搭配的 AI 了!
我的简单应用——寻书荐书 AI
以上是快速入门教程中的 SQLite 数据库用例,和一个略带实际意义的提问。那么,要怎么把发挥 MCP 协议所能拓展出的新功能,来为自己生活服务呢?
我想到了一个寻书荐书的 AI 服务。
假设,我是说假设,我的文件夹里有许许多多电子书文件。偶尔自己想找一些书,却自己也回想不起来有哪些书,以及有什么想读的内容了。
按照以上这个数据库的方法,我可以先把文件目录转换为一个包含路径、文件名、电子书格式等信息的 SQLite 数据库(简单来说就是一张表格),然后让 Claude 来读取该数据库,并根据表格中电子书的书名信息,来为我推荐一些书。
(补充说明:后来我发现其实 Claude 通过这次的 MCP 协议配合 Node.js 直接可以访问计算机本地路径来读取文件)。
比如,我试了一下,发出了这样的指示:
很好,阅读全部书籍条目信息,告诉我,如果我想研究日本和上海的近代关系历史。可以读哪几本书?
Claude 帮我从数据库里记录的书本信息找了一下,根据书本标题,它的推荐如下:
我将查询所有条目,并筛选可能与日本和上海近代关系相关的书籍:
根据查询结果,我为你推荐以下几本与日本和上海近代关系历史相关的书籍:
1. 📖 《上海の日本人社会 戦前の文化・宗教・教育》
– 直接探讨战前上海的日本人社会2. 📖 《上海物語_国際都市上海と日中文化人》
– 关于国际都市上海与中日文化交流的研究3. 📖 《上海の日本人街・虹口 もう一つの長崎》
– 研究上海日本人聚居区虹口,类似于另一个长崎4. 📖 《戦時上海のメディア 文化的ポリティクスの視座から》
– 分析战时上海的媒体与文化政治5. 📖 《上海魔都100年の興亡》
– 上海百年历史变迁6. 📖 《近代中国都市案内集成 復刻 第7巻 上海一覧》
– 近代上海城市指南7. 📖 《戦時上海グレーゾーン》
– 战时上海的灰色地带研究8. 📖 《高杉晋作の上海報告》
– 探讨日本历史人物在上海的活动9. 📖 《上海新報_復刻版》
– 上海日报的复刻版,可能包含历史信息这些书籍从不同角度呈现了日本与上海在近代的复杂关系,涵盖了文化、社会、媒体等多个维度。建议按照兴趣和研究重点,选择阅读。
需要我对这些书籍做更详细的介绍吗?
嗯?有趣吗?我想到了这样一幅场景:一个爱书家的女仆机器人。爱书家坐在摇摆椅子上,对这位女仆说:「哦,我想查一下有关 XXX 的资料,我记得以前应该收藏过几本这方面的书,还需要同时代的一些工具书。嗯……你帮我去书库里找一下吧。」
于是听到这话,这位女仆机器人就摇晃着蓬松裙摆的女仆服,走进了深邃的书库,目光飞快地扫过一排排的书架,并从中寻找出相关书籍。
就是这样!!!
忽然想到了以前在 TRPG 活动的《太阳门》团里,总觉得是一个起雾的什么事件里,吟游诗人 wildgun 吩咐过女仆要注意书架上的书本防霉来着的。嗯!
想象更加实用的数据分析
数据库的关键是:反映实际。那么让 AI 对于数据库中的数据加以复杂的分析就会显得有实用价值。
如果说范例中提供的的商品价格数据库,以及我这里假设我有那么多电子书的文件目录数据库,还只是实验性的、案例性的数据的话,那么我想应该还会有更实际的应用场景。
比如我知道,日本政府会将各种复杂的国内统计数据,公布在e-Stat 政府統計の統合窓口网站上,提供公众查询和下载。如这里所示,其中设计了 17 个大项目的统计数据,包括:国土气象、人口家庭、劳动心水、农林水产业……等等。
如果能把这些数据加以利用——即便我作为一个普通人不知道日本的社会全部情况,但只要能有什么办法把这些数据交给 AI ,让 AI 给我提出一些分析方法、观察角度,乃至生成报告,这样的话,用 AI 来进行数据中事实和意义的挖掘的流程应该会更上一层楼的吧。
而这次 Anthropic 更新的 MCP 协议,应该就是让 AI 接触到数据的重要一步。