Gemini CLI 进阶实战:MCP 服务器与扩展全解析

通过MCP服务器、扩展包、FastMCP与权限控制,将Gemini CLI从聊天工具升级为可调用自有代码的开发集成平台。
本文是 Gemini CLI 的进阶配置指南,聚焦于将其从基础聊天工具扩展为真正的开发集成平台。核心路径包含四个层次:在 settings.json 中写一个 JSON 块即可接入 MCP 服务器,配置采用 default→system→user→project 的分层叠加机制,project 拥有最高优先级;扩展包将 MCP 服务器、上下文文件和斜杠命令打包为一条命令可安装的整体,便于团队统一分发;FastMCP 库允许用一个装饰器把任意 Python 函数暴露为 Gemini 可直接调用的原生工具;权限层面通过 includeTools/excludeTools 精细控制工具白名单,密钥以环境变量引用方式在运行时展开、永不落盘。文章最后预告了无头模式与钩子系统将进一步把 AI 能力延伸至 CI/CD 流水线的全自动化场景。
Gemini CLI 的真正威力,藏在它的扩展体系里。昨天的基础配置只是半张拼图——当你把 MCP(Model Context Protocol)服务器、扩展包和自定义斜杠命令组合起来,Gemini 就从一个聊天工具变成了可以调用你自己代码的开发利器。这篇文章带你走完整个进阶链路,目标是在读完之前让 Gemini 接入三个 MCP 服务器。
一个 JSON 块就能挂上第一个 MCP 服务器
接入 MCP 服务器没有想象中复杂。你的第一个服务器就定义在 settings.json 里的一个 JSON 块中:给它起个名字,指向一条启动命令,Gemini 立刻获得一个新工具。不需要重启,也不需要什么插件商店。
配置的层级关系是这套体系的关键。Global Config 设定全局默认值,Project Config 则把特定工具绑定到单个仓库。多层配置按顺序叠加——default、system、user、project——并且 project 永远拥有最高优先级。这意味着你可以为团队定义一套通用默认,同时在某个项目里覆盖成专属配置,互不干扰。

这种分层设计解决了实际协作中的痛点:个人习惯、团队规范和项目需求可以并存,而不是互相覆盖。
MCP(Model Context Protocol)是由 Anthropic 提出、目前已被多家 AI 工具采纳的开放协议,它定义了 AI 模型与外部工具、数据源之间的标准通信方式。可以把它理解为 AI 世界的"USB 接口":只要服务器实现了 MCP 协议,任何兼容的客户端(包括 Gemini CLI)都能直接调用它,而无需为每种工具单独开发适配层。MCP 服务器本质上是一个本地或远程进程,它对外暴露一组"工具"(tools),每个工具有名称、参数描述和执行逻辑。Gemini 在收到用户请求时,会根据上下文自主决定是否调用某个工具、传入什么参数,再把执行结果整合进回复。这套机制让 AI 从"只能聊天"升级为"能干活"——文件读写、代码执行、API 调用都可以通过 MCP 工具完成。
扩展包:一条命令拉取整套能力
如果说单个 MCP 服务器是零件,那扩展(Extensions)就是成品套装。扩展把 MCP 服务器、Gemini.md 上下文文件和斜杠命令打包在一起,一条安装命令就能从 GitHub 拉取整个包,省去了手动编写 JSON 接线的繁琐步骤。
这对团队分发尤其有价值。与其让每个成员各自配置,不如把整套能力封装成扩展统一发布,保证所有人的工作环境一致。
斜杠命令:写一次,全程复用
斜杠命令本质上是 TOML 文件。你只需把提示词写一次,之后每个会话都能用 /deploy 这样的命令直接调用。把这些命令提交到 .gemini/commands 目录,通过 Git 同步,整个团队就都能用上同一套命令。

这是把个人经验沉淀为团队资产的高效方式——复杂的工作流被封装成一行命令,降低了协作门槛。
用 FastMCP 把 Python 函数变成原生工具
对会写 Python 的人来说,这一步几乎零成本。FastMCP 通过一个装饰器就能把任意函数转化为 MCP 工具。运行 fastmcp install gemini-cli,Gemini 就能像调用内置功能一样调用你的代码。
这打通了从「使用现成工具」到「构建专属集成」的通道。你不再受限于别人提供的能力,而是可以把业务逻辑、内部 API、自动化脚本直接暴露给 Gemini 调用。

FastMCP 是一个 Python 库,它在标准 MCP SDK 之上提供了更简洁的开发体验。核心用法是用 @mcp.tool() 装饰器标注一个普通函数,FastMCP 会自动解析函数签名和文档字符串,生成符合 MCP 规范的工具描述,并启动一个本地服务器进程对外暴露该工具。Gemini 读取工具描述后,就能在合适的时机自动调用它。fastmcp install gemini-cli 命令会将服务器注册到 Gemini CLI 的配置中,使其在每次会话启动时自动运行。这种方式特别适合封装企业内部系统:例如用几十行 Python 包装一个内部数据库查询接口,Gemini 就能用自然语言驱动数据检索,而无需暴露数据库凭证或修改任何现有系统。
工具权限与密钥安全
一个大型 MCP 服务器可能一口气暴露 50 个工具,但你未必需要全部,也未必希望 Gemini 碰到其中的危险操作。Gemini CLI 提供了精细的权限控制:
- includeTools:白名单机制,只放行你明确需要的工具;
- excludeTools:永久屏蔽危险工具,彻底挡在门外。
结果是 Gemini 看到的工具集完全由你决定,多一个都没有。
在密钥管理上,这套机制同样谨慎。你在 settings.json 里写入 $API_KEY 这样的环境变量引用,Gemini 在运行时才展开它——真实密钥永远不会落在配置文件里。此外,Gemini 还会阻止主机上的敏感信息泄露给第三方服务器。

这对企业场景至关重要:既要让 AI 调用外部服务,又不能让凭证暴露给不可控的第三方。
从配置使用者到集成构建者
走完这四步,你已经不只是在「用」Gemini CLI,而是在为它构建真实的集成能力。MCP 服务器的接入、扩展的打包分发、FastMCP 的代码封装,以及权限和密钥的安全控制,共同构成了一个可扩展、可协作、可审计的工作体系。
据该系列教程预告,进阶的尾篇将进入专家级内容——无头模式(headless mode)、钩子系统(hook system),以及把 Gemini CLI 接入 CI 流水线。这意味着 AI 能力将从交互式开发延伸到自动化部署的每个环节。
如果你刚接入了第一个 MCP 服务器,不妨从一个简单的内部工具开始,体验一下 Gemini 调用你自己代码的感觉——这往往是理解整套体系最直接的方式。
无头模式(headless mode)指 Gemini CLI 在没有交互式终端的环境中以纯命令行方式运行,接受标准输入或参数作为提示词、将结果输出到标准输出,整个过程不需要人工介入。这使得 Gemini 可以被直接嵌入 shell 脚本或 CI/CD 流水线。钩子系统(hook system)则允许在特定事件(如工具调用前后、会话开始结束)触发自定义脚本,实现日志记录、审计、权限二次校验等自动化操作。两者结合,意味着 AI 辅助可以从"开发者手动提问"扩展到"代码提交自动触发分析、测试失败自动生成修复建议"等全自动化场景,AI 能力真正融入软件交付的每个环节。
相关推荐

OpenAI与Shield合作:Astra智能体如何革新IT故障修复
OpenAI与Shield合作推出Astra智能体,可自动登录电脑和遗留系统,实时修复IT故障,比传统模型快35%到40%,仅在需要人类判断时引入人工。

iPhone Duo续航实测:一天一充跑不掉,大屏是耗电元凶
iPhone Duo续航实测:重度使用一天需至少充电一次,6.5小时亮屏约剩30%电量。大屏展开频率是耗电关键,MagSafe电池背夹可救场,长期衰减同样值得关注。

Kimi K3.1 Pro开源发布:2.8万亿参数逼近Opus
Moonshot发布开源MoE模型Kimi K3.1 Pro,2.8万亿总参数、1040亿激活参数,Terminal Bench 4.0仅落后Opus 5.5不到1分,单任务成本约三分之一,API价格减半,开源权重11月4日开放。