Gemini CLI MCP异步服务器
Gemini CLI的异步MCP包装器
启用Claude Code以生成子Gemini CLI会话以并行执行任务。
特性
- ✅ 异步执行 -在后台启动任务,继续工作
- ✅ 多实例并行 -同时运行多个Gemini CLI会话
- ✅ 自动清理 -无僵尸进程
- ✅ 零配置 -开箱即用
- ✅ 跨平台 -支持Windows、macOS和Linux
快速开始
🚀 使用UVX进行安装
零配置-只需运行:
uvx gemini-cli-mcp-async-windows配置克劳德代码或其他MCP客户端
对于Linux/macOS:
添加到您的 ~/.claude/settings.json:
{
"mcpServers": {
"gemini-cli-mcp": {
"command": "uvx",
"args": ["gemini-cli-mcp-async-windows"],
"env": {}
}
}
}对于Windows:
添加到您的 %USERPROFILE%\.claude\settings.json:
{
"mcpServers": {
"gemini-cli-mcp": {
"command": "uvx",
"args": ["gemini-cli-mcp-async-windows"],
"env": {}
}
}
}注意:在Windows上,请确保 uvx 在你的路径。如果uvx.exe不在path中,您可能需要使用它的完整路径。
重新启动Claude代码
重新加载或重新启动Claude Code以加载MCP服务器。
使用示例
🚀 异步执行(改变游戏规则!)
开始一项长期任务并立即继续工作:
你:
请分析整个项目代码并生成一份全面的技术报告
克劳德: 我会分析你的整个项目并生成一份技术报告。这是一项大任务,所以我将异步启动它。..
✅ 任务已启动 (任务ID:abc12345) 当它在后台运行时,您可以继续处理其他事情!
你: (立即继续工作)
在生成报告的同时,帮助我编写一些单元测试
克劳德: 当然!让我为您编写这些单元测试。..
你: (几分钟后)
你能检查一下报告任务是否完成吗?
克劳德: ✅ 报告完成!
\[查看详细技术报告\]
- 项目结构分析
- 代码质量评估
- 性能优化建议
- 安全审计结果
⚡ 并行执行
同时运行多个任务:
你:
我需要同时做三件事: 1. 为utils.py生成单元测试 1. 重构database.py以使用async/await 1. 为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-启用调试日志记录
故障排除
服务器未显示?
- 在配置中使用绝对路径
- 在Linux/macOS上:运行
chmod +x gemini_cli_mcp_async_server.py - 在Windows上:确保Python在您的PATH中
- 重新启动Claude代码
任务卡在“运行”中?
- 等一下,大任务需要时间
- 在Linux/macOS上:检查
ls -la /tmp/gemini_cli_tasks/ - 在Windows上:检查
dir %TEMP%\gemini_cli_tasks\ - 查看日志(见下文)
查看日志:
- 在Linux/macOS上:
tail -f /tmp/gemini_cli_mcp_debug.log - 在Windows上:
type %TEMP%\gemini_cli_mcp_debug.log - 或使用:
Get-Content $env:TEMP\gemini_cli_mcp_debug.log -Wait(PowerShell)
长任务没有输出:
- 使用
output_format="stream-json"为了更好地捕获输出 - 在Linux/macOS上:检查中的磁盘空间
/tmp - 在Windows上:检查中的磁盘空间
%TEMP%
Windows特定问题:
- 如果您看到“psutil not found”警告,请安装它:
pip install psutil - 确保Gemini CLI可从PATH访问
- 检查Windows Defender或防病毒软件是否未阻止该进程
需求
- Python 3.8+
- uvx
- 已安装Gemini CLI
许可证
MIT许可证
______________________________________________________________________
问题? 在GitHub上打开一个问题。
