mcp-gemini-search
arjunprabhulal/mcp-gemini-search加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
想象这样一个场景:你正准备出行,不需要打开航空公司 App、也不需要在搜索引擎里反复比价,只需对电脑说一句「帮我查一下5月5日从亚特兰大到拉斯维加斯的航班」,AI 就能自动理解你的意图,调用真实的航班数据接口,返回结构化的结果——这就是 mcp-gemini-search 正在演示的场景。

2024 年底,Anthropic 正式发布 Model Context Protocol(MCP),一种让 AI 模型与外部工具、数据源建立标准化通信的协议。与此同时,Google 也在 Gemini 系列模型中强化了 Function Calling(函数调用) 能力。两者的结合,让「AI 理解自然语言 → 调用真实工具 → 返回结构化结果」这一流程变得前所未有的简单。
这个项目的作者 arjunprabhulal 正是抓住了这个技术交汇点,用一个航班搜索场景,清晰展示了 Gemini 2.5 Pro + MCP 的协作模式。代码仓库规模极小(仅 4 个文件),却覆盖了完整的技术链路,非常适合作为理解 MCP 的入门教材。
client.py 是整个系统的入口,扮演着「协调者」的角色:
stdio_client 启动本地的 mcp-flight-search 服务进程,建立标准输入/输出通信通道session.list_tools() 获取 MCP 服务器暴露的所有工具(如航班搜索工具的名称、参数描述)session.call_tool() 执行真正的航班搜索核心代码逻辑只有约 60 行,用 asyncio 异步管理通信流程,用 google-genai 库调用 Gemini。
mcp-flight-search 是一个独立的 MCP Server 实现(来自 mcp-flight-search PyPI 包)。它通过 MCP 协议暴露航班搜索工具,实际调用 SerpAPI(一个聚合 Google Flights 数据的 API 服务)获取真实的航班信息,返回 JSON 格式的结构化数据。
MCP 协议的优势在这里体现得淋漓尽致:客户端无需知道航班搜索的具体实现,只需通过统一协议与 MCP Server 通信。这意味着未来可以轻松替换为 Amadeus API、Skyscanner API 等,而客户端代码完全不用改。
Gemini 负责「理解」环节。它接收用户的自然语言和工具描述,利用 Function Calling 能力提取出结构化参数。模型本身运行在 Google AI Studio 的云端,不需要本地部署。
| 组件 | 技术选型 | 作用 |
|---|---|---|
| LLM | Gemini 2.5 Pro (gemini-2.5-pro-exp-03-25) | 自然语言理解 + 函数调用决策 |
| MCP SDK | mcp (Python) | 客户端与服务端的标准化通信 |
| HTTP 客户端 | aiohttp | 异步 HTTP 请求 |
| AI SDK | google-generativeai | Google AI API 调用封装 |
坦白说,这个项目的代码本身几乎没有门槛——client.py 只有约 80 行。但要让它真正跑起来,你需要搞定:
配置好两个环境变量后,一行命令即可运行:
python client.py
输出是格式化后的 JSON 航班数据,包含航班号、出发/到达时间、价格等信息。

这个项目本质上是一个概念验证(PoC),而非生产级应用:
mcp-flight-search 这类 Server 的质量参差不齐,MCP 协议的稳定性也在持续演进中client.py 几乎没有异常捕获,网络超时、API 限流等情况会导致程序直接崩溃MCP 的出现解决了一个长期困扰 AI 应用开发的问题:每个 AI 工具集都需要自己实现一套工具调用协议。LangChain 有自己的 Tool 接口,OpenAI 有 Function Calling,AutoGPT 有自己的 Plugin 格式——互不兼容,重复造轮子。
MCP 提供了一种「Universal Serial Bus for AI」的可能性:一次实现 MCP Server,任何 MCP Client 都可以调用。这与当年 USB 统一外设连接的逻辑如出一辙。Google 选择在 Gemini 中深度集成 MCP 支持,加上 Claude、Copilot 等平台的跟进,MCP 有望成为 AI 工具生态的下一个基础设施标准。
这个项目虽小,却是理解这一趋势的绝佳起点。
推荐人群:对 MCP 协议感兴趣的后端开发者、希望了解 Function Calling 实际应用的 AI 工程师、以及想找一个小而美的 AI 项目练手的学习者。