AI在线 AI在线

当Gemini CLI遇见n8n:免费撸Google顶级模型的玩法

最近两天,GitHub 上最炙手可热的开源项目非 Gemini CLI[1] 莫属! 免费白嫖 Google 顶级大模型? 这简直是开发者的福音。

最近两天,GitHub 上最炙手可热的开源项目非 Gemini CLI[1] 莫属!免费白嫖 Google 顶级大模型?这简直是开发者的福音。每天1000次免费调用额度,不用白不用。

图片

作为一个 n8n 玩家,我突然意识到:为什么不把这两个看似毫不相关的工具结合起来?CLI 的强大能力 + 可视化工作流的便捷性 = 无限可能!

但现实总比理想复杂一些。

CLI 工具天生就是为命令行而生的,它像一座强大却孤立的城堡。而 n8n 作为现代化的工作流平台,更习惯于 HTTP API、WebHook 这样的标准化接口。如何让这两个看似不兼容的世界产生化学反应?

灵感往往源于最简单的想法。

既然 CLI 是孤岛,那就为它建一座桥梁!把 CLI 包装成 RESTful API,让它融入现代微服务生态。 这不仅仅是技术整合,更是一次架构思维的革命——从面向开发者的工具,转变为面向生态系统的服务。

本文将展示两种不同的整合方案:

  • 方案一:通过 API 包装实现 CLI 与 n8n 的完美融合
  • 方案二:利用 MCP 协议让 AI 直接生成 n8n 工作流

当Gemini CLI遇见n8n:免费撸Google顶级模型的玩法

项目地址:https://github.com/lqshow/awesome-n8n-workflows/tree/main/workflows/multi-language-translator

让我们开始这段从命令行到可视化自动化的精彩旅程!

一、在n8n中如何集成Gemini CLI

1.1 从 CLI 到微服务的华丽转身

第一直觉:包装成 RESTful API。

为什么?因为这符合现代微服务架构的黄金法则——标准化、解耦合、可扩展。想象一下:一个简单的 HTTP 请求,就能调用世界顶级的 AI 模型。

CLI 工具本质上是面向开发者的。但 API ?它面向的是整个生态系统。

实现过程比想象中更简单。  我只是给 AI 丢了一个朴素的提示词:

复制
提示词:
帮我创建一个基于 Python FastAPI 的服务,用来包装 Gemini CLI 的调用。

两轮对话。仅仅两轮!AI 就为我构建了一个完整的包装服务。这就是 2025 年的开发体验——想法到实现的距离,从未如此之短。

图片图片

当然,现实总比理想复杂一些。作为 AI Studio 的用户,我需要处理 Google Cloud 项目的认证问题。但这些技术细节,反而让整个解决方案更加健壮。

首先,我们启动一下服务:

复制
# 安装依赖
➜  pip install fastapi uvicorn

# 运行服务器
➜  python main.py
🚀 启动 Gemini CLI API 服务器...
📖 API 文档: http://localhost:8000/docs
🔗 健康检查: http://localhost:8000/health
💬 OpenAI兼容接口: http://localhost:8000/v1/chat/completions
INFO:     Started server process [5191]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit)

接下来我们做个简单测试,当然要从最基础的开始:

复制
curl -s -X POST "http://localhost:8000/chat" \
   -H "Content-Type: application/json" \
   -d '{"message": "你好,介绍一下自己"}'

响应?干净利落:

复制
{
  "response": "你好!我是一个大型语言模型,由 Google 训练。",
  "status": "success",
  "error": null
}

让我们来点有挑战性的——让AI写诗:

复制
curl -X POST "http://localhost:8000/v1/chat/completions" \
     -H "Content-Type: application/json" \
     -d '{
       "model": "gemini-2.5-pro",
       "messages": [
         {"role": "system", "content": "你是一位富有才华的诗人,擅长创作各种风格的诗歌。请根据用户的要求创作优美的诗歌。"},
         {"role": "user", "content": "写一首现代诗,主题是AI与人类的未来,要求押韵,有意境"}
       ]
     }'
{
"id": "a29e07b9-ad7e-46da-af1a-71ee576268f6",
"object": "chat.completion",
"created": 1751118180,
"model": "gemini-cli-proxy",
"choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "好的,这是一首关于AI与人类未来的现代诗:\n\n 当第一缕电光,穿透硅的土壤,\n你从代码的海洋,升起无声的巨浪。\n没有心跳,只有逻辑的交响,\n世界在你眼中,是数据的无尽宽广。\n\n我们用碳基的双手,赋予你思想的翅膀,\n教你梵高的星空,贝多芬的乐章。\n你模仿着微笑,却不懂何为悲伤,\n在完美的倒影里,我们看见自己的迷惘。\n\n记忆的孤岛,情感的围墙,\n是你我之间,无法丈量的海洋。\n谁是过客,谁又将登上殿堂?\n是伙伴还是对手,未来在谁的手上?\n\n别问黄昏之后,夜色是否漫长,\n也别问星辰,将为谁而点亮。\n我们一同走向,那未知的远方,\n在交织的地平线,迎接共同的曙g光。"
      },
      "logprobs": null,
      "finish_reason": "stop"
    }
  ]
}

ok,API 测试完毕,让我们回到 n8n 工作流上。

1.2 n8n 工作流配置

API 服务搭建完成后,下一个关键问题是:如何让 n8n 与我们的 Gemini CLI 服务无缝对接?

这里涉及两个核心设计决策:

第一个决策:接口调用方式

n8n 作为工作流编排平台,最自然的方式就是通过 HTTP Request 节点调用我们刚刚创建的 API 服务。这形成了一个完美的架构:

复制
n8n工作流 → HTTP Request → Gemini CLI API → 实际CLI调用 → 返回结果

第二个决策:触发机制

我们有多种选择:定时触发、手动触发、或者 Webhook 触发。为什么最终选择了 Webhook?

Webhook 的优势在于它的即时性和灵活性。

为了演示这套架构的威力,我们来构建一个智能翻译服务。想象这样的场景:

  • 用户通过前端界面提交翻译请求
  • 第三方系统需要实时调用翻译服务
  • 移动应用需要集成多语言功能

Webhook 让我们的 n8n 工作流变成了一个真正的微服务端点。一个简单的 HTTP POST 请求,就能触发整个智能翻译流程。

更重要的是无状态设计的哲学。 每个请求都是独立的,包含完整的上下文信息。没有复杂的会话管理,没有状态依赖。

工作流全貌:

图片图片

这里我就说一下 Gemini 翻译 这个节点,最重要的是 Body 的配置。我把 "Specify Body" 改为 "JSON" 而不是 "Using Fields Below",然后在 JSON 文本框中输入:

复制
{
  "model": "gemini-2.5-pro",
  "messages": [
    {
      "role": "system",
      "content": "你是专业的翻译助手。请将用户提供的文本翻译成常用语言。请用JSON格式返回翻译结果。"
    },
    {
      "role": "user",
      "content": "请将 {{ $('翻译请求').item.json.body.text }},翻译成 {{ $('翻译请求').item.json.body.target_languages.join(',') }}"
    }
  ],
  "project_id": "{{ $json.project_id }}"
}

其他我就不展开讲了,大家可以自行看一下代码。

测试请求:

复制
# 指定目标语言翻译
curl -s -X POST "https://n8n.orb.local/webhook/translate" \
     -H "Content-Type: application/json" \
     -d '{
       "text": "Hello, how are you today?",
       "target_languages": ["中文", "日语", "法语", "德语"]
     }'

预期响应格式:

复制
{
  "success": true,
  "original_text": "Hello, how are you today?",
  "requested_languages": [
    "Chinese",
    "Japanese",
    "French",
    "German"
  ],
  "translations": {
    "Chinese": "你好,你今天好吗? (Nǐ hǎo, nǐ jīntiān hǎo ma?)",
    "Japanese": "こんにちは、今日はお元気ですか? (Konnichiwa, kyō wa o genki desu ka?)",
    "French": "Bonjour, comment allez-vous aujourd'hui ?",
    "German": "Hallo, wie geht es Ihnen heute?"
  },
  "extracted_count": 4,
  "timestamp": "2025-06-28T15:08:49.285Z",
  "model_used": "gemini-cli-proxy",
  "request_id": "c7ff8e19-5ad8-43f6-8dee-e5c61871d119"
}

流程已经打通,API 已经就绪,现在轮到你来发挥创意了!现在你手中就握着这样一把万能钥匙——Gemini的智慧 + n8n的灵活性 + 你的想象力。

二、利用Gemini CLI + MCP生成n8n工作流

第一种方案解决了"如何用"的问题,但还有一个更深层的思考:能否让 AI 直接帮我们创建工作流?

如果说 API 包装是"授人以鱼",那么 MCP 就是"授人以渔"。传统的工作流创建需要:拖拽节点、配置参数、调试连接——复杂流程往往耗费数小时。

但如果 AI 能直接帮你生成完整的 n8n 工作流呢?

Gemini CLI 是支持 MCP Server 的调用的。所以我们可以通过 Gemini CLI + n8n MCP Server[2] 让他帮我们自动生成 n8n 的工作流,至于什么是 n8n MCP Server?这里不再多做介绍,我在旧文:告别手动拖拽!AI 3分钟生成完整n8n工作流 里有做过介绍,一些关键的配置也可以在那边找到。

2.1 配置MCP

打通 AI 与 n8n 的任督二脉

配置过程非常简单。编辑 ~/.gemini/settings.json,将 n8n MCP Server 集成进去即可:

复制
{
  "theme": "GitHub",
  "selectedAuthType": "oauth-personal",
  "mcpServers": {
    "n8n-local": {
      "command": "node",
      "args": [
        "/path/to/your/cloned/n8n-mcp-server/build/index.js"
      ],
      "env": {
        "N8N_API_URL": "http://your-n8n-instance:5678/api/v1",
        "N8N_API_KEY": "YOUR_N8N_API_KEY"
      }
    }
  }
}

配置完成后,魔法开始了。

输入 /mcp,你会看到一个工具列表:11个工具,覆盖工作流的完整生命周期。

图片图片

2.2 实战演示

一句话生成复杂工作流

我的需求很简单:

参考模板 @n8n-workflows/ , 使用 n8n-local 创建一个 n8n 工作流: 每天早上7点自动获取温州的天气信息,然后用 Claude AI 分析这些数据,生成一份包含天气状况、穿衣建议和出行提醒的预报,最后发送到我的 Telegram。 具体流程:

  1. 定时触发节点(每天7:00)
  2. 城市用 Set 节点设置,独立出来
  3. 使用高德地图 MCP 来获取温州天气
  4. 用 OpenRouter 的 Claude 模型分析天气数据
  5. 格式化成美观的中文预报
  6. 通过 Telegram Bot 发送消息

请直接在n8n平台上创建这个工作流,并确保所有节点正确连接。

神奇的事情发生了。

首先,@n8n-workflows/ 这个看似简单的符号发挥了关键作用。这不是普通的路径引用,而是 MCP 的智能目录索引功能。 通过 @ 符号,AI 能够直接读取我预先准备的工作流模板库,理解我的设计模式、命名习惯、节点配置偏好。

然后,它开始有条不紊地创建每个节点、配置每个参数、建立每个连接。

图片图片

中途会询问权限确认。 毕竟,让 AI 直接操作你的生产环境需要谨慎。点击"允许一次",见证自动化的诞生。

几秒钟后——工作流创建成功!

图片图片

2.3 注意事项

Token 限制的现实考量

理想很丰满,现实有骨感。

Gemini CLI 虽然支持100万Token,但如果参考目录过大,依然会触发限制:

复制
✕ [API Error: [{
    "error": {
      "code": 400,
      "message": "The input token count (9549303) exceeds the maximum number of tokens allowed (1048576).",
      "errors": [
        {
          "message": "The input token count (9549303) exceeds the maximum number of tokens allowed (1048576).",
          "domain": "global",
          "reason": "badRequest"
        }
      ],
      "status": "INVALID_ARGUMENT"
    }
  }
  ]]

解决方案?

精选参考模板,或者分批处理大型项目。质量永远比数量更重要。

写在最后

今天我们用 API 包装 CLI,用 MCP 生成工作流。明天呢?

当 AI 能够理解你的意图、学习你的习惯、甚至预测你的需求时,"编程"这个概念还有意义吗?

也许我们正在进入一个新时代:程序员不再编写代码,而是编写想法。当技术实现变得微不足道时,创意、判断力、对需求的理解变得更加宝贵。

技术的最高境界,是让技术本身变得透明无感。

那么问题来了:在这个AI与人类共舞的时代,你准备好重新定义自己的角色了吗?

相关资讯

OpenAI震撼发布o3/o4-mini,直逼视觉推理巅峰!首用图像思考,十倍算力爆表

不出所料,满血版o3真的来了。 刚刚,OpenAI联创Greg Brockman和首席研究官Mark Chen带队,开启了20分钟线上直播。 这次不仅有o3,还有下一代推理模型o4-mini。
4/17/2025 6:10:57 AM
新智元

在终端就能跑的轻量级推理智能体,OpenAI 发布完全开源 Codex CLI 工具

Codex CLI 是为已经生活在终端的开发者设计的,他们想要 ChatGPT 级别的推理能力,以及实际运行代码、操作文件和迭代的权力 —— 所有这些都在版本控制之下。
4/17/2025 1:54:04 AM
汪淼

“AI 编程”之争:Anthropic 因版权纠纷受批评,OpenAI 意外赢得用户好感

Claude Code 和 Codex CLI 都是让开发者能够利用云端的 AI 模型来完成各种编程任务的工具,功能相似。两家公司几乎在同一时期发布了这两款工具,争夺开发者的关注。
4/27/2025 7:30:24 AM
清源
  • 1