异步CLI任务执行器

Gemini CLI MCP Async Server是一个异步任务执行工具,用于在后台并行运行多个Gemini CLI会话,提高开发效率。

  • by jeanchristophe13v
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 jeanchristophe13v/gemini-cli-mcp-async

使用说明

Gemini CLI MCP异步服务器

Gemini CLI的异步MCP包装器

启用Claude Code以生成子Gemini CLI会话以并行执行任务。

特性

  • ✅ 异步执行 -在后台启动任务,继续工作
  • ✅ 多实例并行 -同时运行多个Gemini CLI会话
  • ✅ 自动清理 -无僵尸进程
  • ✅ 零配置 -开箱即用

快速开始

🚀 使用UVX进行安装

零配置-只需运行:

uvx gemini-cli-mcp-async

配置克劳德代码或其他MCP客户端

添加到您的 ~/.claude/settings.json:

{
  "mcpServers": {
    "gemini-cli-mcp": {
      "command": "uvx",
      "args": ["gemini-cli-mcp-async"],
      "env": {}
    }
  }
}

重新启动Claude代码

重新加载或重新启动Claude Code以加载MCP服务器。

用法示例

🚀 异步执行(改变游戏规则!)

开始一项长期任务并立即继续工作:

你:

请分析整个项目代码并生成一份全面的技术报告

克劳德: 我会分析你的整个项目并生成一份技术报告。这是一项大任务,所以我将异步启动它。..

✅ 任务已启动 (任务ID:abc12345) 当它在后台运行时,您可以继续处理其他事情!

你: (立即继续工作)

在生成报告的同时,帮助我编写一些单元测试

克劳德: 当然!让我为您编写这些单元测试。..

你: (几分钟后)

你能检查一下报告任务是否完成吗?

克劳德: ✅ 报告完成!

[查看详细技术报告]

  • 项目结构分析
  • 代码质量评估
  • 性能优化建议
  • 安全审计结果

⚡ 并行执行

同时运行多个任务:

你:

我需要同时做三件事:

  1. 为utils.py生成单元测试
  2. 重构database.py以使用async/await
  3. 为api.py中的所有函数添加类型提示

克劳德: 我将同时开始这三项任务!

🔄 任务1已启动 (任务ID:task1)-生成单元测试 🔄 任务2已启动 (任务ID:task2)-重构数据库代码 🔄 任务3已启动 (任务ID:task3)-添加类型提示

所有任务都并行运行。..

你: (稍后)

这三项任务都完成了吗?

克劳德: ✅ 全部完成!

  • ✅ 任务1:生成utils.py的单元测试
  • ✅ 任务2:将database.py重构为异步模式
  • ✅ 任务3:向api.py函数添加类型提示

🎯 快速同步任务

对于简单的即时任务:

你:

编写一个Python函数来验证电子邮件地址

克劳德:

import re

def validate_email(email):
    pattern = r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$'
    return re.match(pattern, email) is not None

# Usage examples
print(validate_email("user@example.com"))  # True
print(validate_email("invalid-email"))    # False

✅ 任务完成!

为什么异步?

问题: Gemini CLI在运行时阻止父会话。

解决方案: 此MCP服务器生成在后台运行的子Gemini CLI进程。

优点:

  • 🚀 开始一项任务并立即继续工作
  • ⚡ 并行运行多个任务
  • 🎯 没有阻碍,没有等待
  • 🧹 自动流程清理

API 参考

gemini_cli_enxecute(查询、工作目录、沙盒、yolo、批准模式、experimental_acp、允许的cp_server_names、允许的工具、扩展、包含目录、输出格式、屏幕阅读器、调试、附加参数、超时)

同步执行Gemini CLI并立即返回结果。

gemini_cliexecute_async(查询、工作目录、沙箱、yolo、批准模式、experimental_acp、允许的cp_server_names、允许的工具、扩展、包含目录、输出格式、屏幕阅读器、调试、其他参数)

在后台启动Gemini CLI任务并返回task_id。

gemini_cli-check_result(task_id)

检查异步任务的状态,如果已完成,则返回结果。

配置

支持所有Gemini CLI参数。关键选项:

  • sandbox -启用沙盒模式
  • yolo -自动确认提示
  • approval_mode -设置审批模式(“默认”、“自动编辑”、“yolo”)
  • output_format -输出格式(“文本”、“json”、“流json”)
  • timeout -同步执行超时(秒)
  • debug -启用调试日志记录

故障排除

服务器未显示?

  • 在配置中使用绝对路径
  • 运行: chmod +x gemini_cli_mcp_async_server.py
  • 重新启动Claude代码

任务卡在“运行”中?

  • 等一下,大任务需要时间
  • 检查: ls -la /tmp/gemini_cli_tasks/
  • 查看日志: tail -f /tmp/gemini_cli_mcp_debug.log

长任务没有输出:

  • 使用 output_format="stream-json" 为了更好地捕获输出
  • 检查中的磁盘空间 /tmp

需求

  • Python 3.8+
  • uvx
  • 已安装Gemini CLI

许可证

MIT许可证


问题? 在GitHub上打开一个问题。