AI书房
用书来读懂AI
这里收录金京镇律师的AI、法律、产业、历史、政治、文化主题在线书。每本书都按目录、序言、章节、尾声整理,方便连续阅读。
[AI书房] 第9章 MCP连接服务器:扩展智能体能力
Claude Code完全掌握
Claude Code完全掌握
第9章 MCP连接服务器:扩展智能体能力
金京镇
引子
周六早上,你决定做一个蛋糕。食谱上写着需要鸡蛋、面粉和糖霜。鸡蛋要去养鸡场买,面粉要去磨坊买,糖霜要去烘焙材料专卖店买。三个地方跑一圈,每家的下单方式不一样,每家的支付系统也不一样。麻烦。但如果小区门口有一家超市呢?
一个地方搞定鸡蛋、面粉、糖霜。下单方式统一,支付系统也只有一套。MCP连接服务器就是这家超市。
MCP是什么:超市类比
MCP是模型上下文协议(Model Context Protocol)的缩写,是智能体访问外部服务时使用的一套标准化连接方式。
拿Gmail举例。Gmail能发邮件、读邮件、搜索邮件、创建草稿,一个服务里装着好几种工具。把Gmail MCP连接服务器接入Claude Code之后,智能体就能一口气使用所有这些工具。
不用为「发邮件」单独写脚本,也不用为「搜索」翻API文档。智能体连上MCP连接服务器后,会自动识别有哪些工具可用,再根据当前情境挑一个合适的来执行。
把超市类比再展开一些。
[图9-1] 左侧标注「不使用MCP」,智能体分别连接三个独立API;右侧标注「使用MCP」,智能体通过一个MCP连接服务器访问多种工具。两种模式的对比示意图]
MCP的核心在于标准化。任何服务只要按照MCP规范搭建服务器,Claude Code就能用同一套方式连接、同一套方式调用工具。Gmail也好,Firecrawl也好,Google Calendar也好,连接方法的骨架是一样的。
Firecrawl MCP连接服务器安装实操
光讲理论没有手感。我们实际装一个MCP连接服务器试试。Firecrawl是一项网页数据采集服务,提供网页抓取(Web Scraping)、爬取(Crawling)、搜索、截图等多种功能。把它的MCP连接服务器接入Claude Code,智能体就能自由获取网页数据了。
第1步:申请Firecrawl API密钥
打开Firecrawl官网(firecrawl.dev),注册账号。免费套餐赠送500积分,足够做完本章的练习。进入控制面板后能看到API密钥,把它复制下来。
第2步:将API密钥存入.env文件
如果项目根目录下没有.env文件,就新建一个;已经有了就直接打开。把API密钥按下面的格式写进去。
FIRECRAWL_API_KEY=fc-xxxxxxxxxxxxxxxxxxxxxxxx
为什么要存进.env文件?原因下一节会细说,这里先讲结论:API密钥等同于密码。如果直接输入到对话窗口,密钥就会以明文形式留在上下文记录里。存进.env文件后,智能体在需要时从文件中读取,而对话记录本身不会暴露密钥。
第3步:执行MCP连接服务器安装命令
让Claude Code来完成安装。Firecrawl的官方文档里有专门针对Claude Code命令行模式的安装命令。对智能体这样说:
我想安装Firecrawl MCP服务器。请用下面的命令来安装。[粘贴从Firecrawl官方文档复制的CLI命令] 注意,API密钥不要直接传入,从.env文件里读取。
智能体会执行命令,将MCP连接服务器注册到项目中。安装完成后,它会把配置指向.env文件中的API密钥,收尾工作一并搞定。
第4步:确认安装结果
安装结束后,输入/context命令。MCP工具一栏应该能看到Firecrawl相关的工具列表。网页抓取、爬取、搜索等工具出现在列表里,就说明连接成功了。
[图9-2] /context命令执行结果截图,MCP Tools区域显示Firecrawl工具列表]
从这一刻起,当你用自然语言说「帮我抓取这个URL上的招聘信息」,智能体会自动从Firecrawl MCP连接服务器中选出合适的工具来执行。你不需要知道该调用哪个端点、该传什么参数。
API密钥安全:为什么要把秘密存进.env文件
安装Firecrawl时提到了.env文件。这里更深入地说说,为什么API密钥不能直接输入到对话窗口。
API密钥(API Key)是访问外部服务的认证凭证,本质上和密码没有区别。一旦泄露,别人可以用你的账号调用服务,产生的费用全算在你头上。
如果把API密钥直接粘贴到Claude Code的对话窗口,会发生什么?密钥成为对话记录的一部分,以明文形式存在于上下文窗口中。智能体执行Bash命令时如果把密钥当作参数传入,执行日志里也可能留下密钥。从安全角度看,这不可取。
使用.env文件可以缓解这个问题。密钥只存在于本地文件中。智能体在脚本内通过os.environ之类的方式读取环境变量,密钥本身不会出现在对话记录里。
再加一道防线:在项目中创建.gitignore文件,把.env加进去。这样即使项目推送到GitHub等公开仓库,.env文件也不会被上传。可以防止秘密泄露到互联网上。
# .gitignore .env
这两行就是安全的基本防线。
[图9-3] API密钥安全管理流程示意图。对比两条路径:「.env文件 → 加载为环境变量 → 脚本中引用」与「直接输入对话窗口 → 暴露在上下文记录中」]
练习过程中如果不小心把API密钥输入了对话窗口,最安全的做法是立刻轮换(Rotate)密钥。在服务的控制面板里废弃旧密钥,申请新密钥,再存入.env文件即可。
MCP让智能体的行动半径不断扩大
只接了一个Firecrawl,智能体能做的事就大幅拓宽了。它可以从招聘网站抓取数百条职位信息,整理成Excel文件;可以从黄页上收集牙医的联系方式,生成销售线索清单;可以定期监控竞争对手的网站。
如果一个MCP连接服务器相当于一家超市,那么同时接入多个MCP连接服务器,就相当于同时持有好几家超市的会员卡。加上Gmail MCP连接服务器,就能读邮件、发邮件、搜索邮件。加上Google Calendar MCP连接服务器,就能查日程、建日程。
把它们组合起来,智能体就能处理这样的复合请求:「从今天收到的邮件里找出会议邀请,然后添加到日历」。
[图9-4] 以智能体为中心,Firecrawl、Gmail、Calendar、Notion等多个MCP连接服务器呈放射状连接的示意图。每个服务器旁边用小图标标注2到3个代表性工具]
每次添加MCP连接服务器的流程都一样:把对应服务的API密钥存入.env文件,执行安装命令。学会一次,后面只是重复。
这里有一点需要留意。接入的MCP连接服务器越多,上下文窗口中MCP工具定义占用的空间就越大。用前面章节讲过的/context命令查看,你会发现MCP Tools一项消耗的token数在增长。智能体的「手」变多了,但能记住东西的空间却缩小了。
毫无节制地接入MCP连接服务器,可能导致真正重要的对话内容反而装不下。
MCP连接服务器的选择应当匹配项目目标。做竞争对手分析的项目不需要Gmail MCP连接服务器;做邮件自动化的项目也未必要装Firecrawl。只装需要的,才是高效的做法。
我们已经为智能体配备了记忆(单次读取范围)、指令(claude.md)和双手(MCP连接服务器)。这三者协同配合,智能体才真正具备了执行实际工作的能力。接下来,我们将进入把这些工具组合起来、构建真实项目的阶段。
人工智能专家 金京镇 律师
AI法律政策专家 · 前国会议员 · 著作等身
如果这本书曾在您身边停留片刻,请支持我们,让下一个故事得以问世。
(自愿赞助账户:农协 302-1096-0948-81 户名:金京镇)
