Gemini MCP Tool:让AI助手无缝对接Google Gemini的强大工具
🚀 项目简介
Gemini MCP Tool 是一个专为Windows环境优化的模型上下文协议(MCP)服务器,它让AI助手能够无缝对接Google的Gemini CLI。这个项目解决了原版工具在Windows环境下的兼容性问题,提供了完整的PowerShell支持和中文字符处理能力。
🔗 项目地址:
- ModelScope: gemini-mcp-tool-windows
- GitHub: orzcls/gemini-mcp-tool
✨ 核心特性
🪟 Windows完美兼容
- PowerShell全面支持:解决了参数传递和字符编码问题
- 跨终端兼容:支持PowerShell、CMD、VS Code终端、Trae AI等
- 路径自动处理:智能检测Node.js安装路径
- 中文字符支持:完美处理Unicode文本
📊 强大的AI能力
- 大上下文窗口:利用Gemini的海量token窗口分析整个代码库
- 文件分析功能:使用@filename语法分析文件
- 沙盒模式:提供安全的代码执行环境
- 智能分块:自动处理大型响应和编辑内容
🔗 无缝集成
- MCP协议支持:与Trae AI、Claude Desktop等AI助手完美集成
- NPX即用:无需全局安装,一行命令即可使用
- 环境变量配置:灵活的API密钥配置方式
🚀 立即开始使用
# MCP SETTING
{
"mcpServers": {
"gemini-cli": {
"command": "npx",
"args": ["-y", "gemini-mcp-tool-windows-fixed@1.0.21"],
"env": {
"GEMINI_API_KEY": "YOUR_ACTUAL_API_KEY_HERE"
}
}
}
}
🏗️ 技术架构
系统架构图
核心组件
├── src/
│ ├── index.ts # MCP服务器主入口
│ ├── tools/ # 工具定义和实现
│ │ ├── ask-gemini.tool.ts # 核心Gemini交互工具
│ │ ├── brainstorm.tool.ts # 头脑风暴工具
│ │ ├── fetch-chunk.tool.ts # 分块获取工具
│ │ └── timeout-test.tool.ts # 超时测试工具
│ └── utils/ # 工具函数
│ ├── geminiExecutor.ts # Gemini命令执行器
│ ├── changeModeParser.ts # 变更模式解析器
│ └── chunkCache.ts # 分块缓存管理
关键技术实现
1. Windows兼容性修复
// PowerShell参数处理优化
const executeCommand = async (command: string, args: string[]) => {
const escapedArgs = args.map(arg =>
arg.includes(' ') ? `"${arg.replace(/"/g, '\"')}"` : arg
);
return spawn('powershell.exe', ['-Command', command, ...escapedArgs], {
encoding: 'utf8',
shell: true
});
};
2. MCP协议集成
// 基于@modelcontextprotocol/sdk实现
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
const server = new Server({
name: 'gemini-mcp-tool',
version: '1.0.21'
}, {
capabilities: {
tools: {},
prompts: {},
resources: {}
}
});
3. 智能响应处理
// 大型编辑响应的智能解析
class ResponseParser {
parseChangeMode(response: string): EditBlock[] {
const blocks = [];
const lines = response.split('\n');
for (let i = 0; i < lines.length; i++) {
if (lines[i].startsWith('<<<<<<< SEARCH')) {
const searchBlock = this.extractSearchBlock(lines, i);
const replaceBlock = this.extractReplaceBlock(lines, i);
blocks.push({ search: searchBlock, replace: replaceBlock });
}
}
return blocks;
}
}
🚀 快速开始
环境要求
- Node.js (v16.0.0+)
- Google Gemini CLI
- Google AI Studio API密钥
一键安装
# 使用NPX(推荐)
npx gemini-mcp-tool@1.0.21
# 或全局安装
npm install -g gemini-mcp-tool@1.0.21
安装Gemini CLI
# 安装Google Gemini CLI
npm install -g @google/generative-ai-cli
# 验证安装
gemini --version
API密钥配置
- 访问 Google AI Studio
- 创建新的API密钥
- 配置环境变量:
# 临时配置(当前会话)
$env:GEMINI_API_KEY = "your-actual-api-key"
# 永久配置(用户级别)
[Environment]::SetEnvironmentVariable("GEMINI_API_KEY", "your-actual-api-key", "User")
# 验证配置
echo $env:GEMINI_API_KEY
⚙️ MCP客户端配置
Trae AI配置
在 %APPDATA%\Trae\User\mcp.json
中添加:
{
"mcpServers": {
"gemini-cli": {
"name": "gemini-cli",
"description": "Windows-compatible Gemini MCP Tool",
"baseUrl": "",
"command": "npx",
"args": [
"-y",
"gemini-mcp-tool@1.0.21"
],
"env": {
"GEMINI_API_KEY": "YOUR_ACTUAL_API_KEY_HERE"
},
"isActive": true,
"providerUrl": "https://github.com/orzcls/gemini-mcp-tool"
}
}
}
Claude Desktop配置
在 %APPDATA%\Claude\claude_desktop_config.json
中添加:
{
"mcpServers": {
"gemini-cli": {
"command": "npx",
"args": ["-y", "gemini-mcp-tool@1.0.21"],
"env": {
"GEMINI_API_KEY": "YOUR_ACTUAL_API_KEY_HERE"
}
}
}
}
Claude Code配置
# 一键配置Claude Code
claude mcp add gemini-cli -- npx -y gemini-mcp-tool@1.0.21
# 验证安装
# 在Claude Code中输入 /mcp 查看已激活的MCP服务
🎯 功能演示
文件分析
分析这个文件的代码结构和潜在问题 @src/index.ts
示例输出:
📁 文件分析结果:src/index.ts
🔍 代码结构:
- MCP服务器主入口文件
- 使用@modelcontextprotocol/sdk框架
- 实现了工具调用、提示管理等核心功能
⚠️ 潜在问题:
1. 错误处理可以更加细化
2. 建议添加更多的日志记录
3. 可以考虑添加性能监控
💡 优化建议:
- 添加请求超时处理
- 实现更好的错误恢复机制
代码生成
帮我生成一个React组件,包含用户登录表单,支持邮箱和密码登录
示例输出:
import React, { useState } from 'react';
import './LoginForm.css';
interface LoginFormProps {
onLogin: (email: string, password: string) => void;
loading?: boolean;
}
const LoginForm: React.FC<LoginFormProps> = ({ onLogin, loading = false }) => {
const [email, setEmail] = useState('');
const [password, setPassword] = useState('');
const [errors, setErrors] = useState<{email?: string; password?: string}>({});
const validateForm = () => {
const newErrors: {email?: string; password?: string} = {};
if (!email) {
newErrors.email = '邮箱不能为空';
} else if (!/\S+@\S+\.\S+/.test(email)) {
newErrors.email = '邮箱格式不正确';
}
if (!password) {
newErrors.password = '密码不能为空';
} else if (password.length < 6) {
newErrors.password = '密码至少6位';
}
setErrors(newErrors);
return Object.keys(newErrors).length === 0;
};
const handleSubmit = (e: React.FormEvent) => {
e.preventDefault();
if (validateForm()) {
onLogin(email, password);
}
};
return (
<form className="login-form" onSubmit={handleSubmit}>
<h2>用户登录</h2>
<div className="form-group">
<label htmlFor="email">邮箱</label>
<input
type="email"
id="email"
value={email}
onChange={(e) => setEmail(e.target.value)}
className={errors.email ? 'error' : ''}
placeholder="请输入邮箱"
/>
{errors.email && <span className="error-message">{errors.email}</span>}
</div>
<div className="form-group">
<label htmlFor="password">密码</label>
<input
type="password"
id="password"
value={password}
onChange={(e) => setPassword(e.target.value)}
className={errors.password ? 'error' : ''}
placeholder="请输入密码"
/>
{errors.password && <span className="error-message">{errors.password}</span>}
</div>
<button
type="submit"
className="login-button"
disabled={loading}
>
{loading ? '登录中...' : '登录'}
</button>
</form>
);
};
export default LoginForm;
沙盒模式
在沙盒环境中测试这段Python代码的性能:
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(30))
头脑风暴
为我的电商网站设计一个推荐系统的架构方案
📈 版本更新历程
v1.0.21 (最新版本) - 2024年1月
- 🔧 修复跨终端兼容性问题 - 解决Node.js路径未找到的问题
- 📦 修复fetch-chunk格式错误 - 修复MCP协议格式不匹配
- 🛡️ 增强PATH环境变量处理 - 自动添加常见Node.js安装路径
- ✅ 全终端兼容支持 - 支持PowerShell、CMD、VS Code终端等
- 🚀 改进错误处理机制 - 更好的错误消息和调试输出
v1.1.3 - 2023年12月
- 🆕 新增changeMode参数 - 支持大型编辑响应的智能解析
- 📊 结构化响应格式 - 改进响应数据结构
- 🔄 分块测试功能 - 支持大型内容的分块处理
- ⚡ 令牌限制处理优化 - 智能处理API令牌限制
v1.1.2 - 2023年11月
- 🔄 Gemini-2.5-pro配额超出自动回退 - 自动切换到Gemini-2.5-flash
- 🚀 性能优化 - 提升响应速度和稳定性
- 🛡️ 增强错误恢复 - 更好的错误处理和恢复机制
v1.1.1 - 2023年10月
- 🎉 公共发布 - 首次公开发布版本
- 🔗 Gemini CLI集成 - 完整的Gemini CLI支持
- 📁 文件分析支持 - 支持@filename语法
- 🔒 沙盒模式支持 - 安全的代码执行环境
🎯 应用场景
开发者工具
- 代码审查:分析整个项目的代码质量和架构
- 架构设计:获得系统架构建议和最佳实践
- 调试助手:快速定位和解决复杂问题
- 文档生成:自动生成API文档和技术文档
- 重构建议:获得代码重构和优化建议
内容创作
- 技术博客:生成高质量的技术文章和教程
- API文档:自动化API文档编写和维护
- 用户手册:创建详细的产品使用指南
- 技术规范:编写技术标准和开发规范
学习辅助
- 代码解释:深入理解复杂代码逻辑和算法
- 技术概念:学习新技术栈和开发框架
- 最佳实践:获得行业最佳实践和设计模式
- 问题解答:快速获得技术问题的解决方案
项目管理
- 需求分析:协助进行项目需求分析和规划
- 技术选型:获得技术栈选择建议
- 风险评估:识别项目技术风险和解决方案
- 进度跟踪:协助项目进度管理和里程碑规划
💪 技术优势
1. 原生Windows支持
与其他工具相比,本项目专门针对Windows环境进行了深度优化:
- PowerShell完美集成:解决了参数传递、字符编码等关键问题
- 路径处理优化:智能处理Windows路径格式和环境变量
- 终端兼容性:支持所有主流Windows终端环境
- Unicode支持:完美处理中文和其他Unicode字符
2. 企业级稳定性
- 完善的错误处理机制:多层次错误捕获和恢复
- 自动重试和回退策略:智能处理网络和API异常
- 详细的日志记录:完整的操作日志和调试信息
- 配额管理和限流保护:智能处理API配额限制
3. 开发者友好
- 零配置快速启动:NPX一键运行,无需复杂配置
- 详细的文档和示例:完整的使用指南和代码示例
- 活跃的社区支持:及时的问题反馈和功能更新
- 持续的版本更新:定期发布新功能和bug修复
4. 性能优势
- 大上下文窗口利用:充分利用Gemini的海量token容量
- 智能分块处理:高效处理大型文件和响应
- 缓存机制:减少重复API调用,提升响应速度
- 并发处理:支持多任务并行处理
📞 技术支持
- GitHub Issues: https://github.com/orzcls/gemini-mcp-tool/issues
- 文档站点: https://orzcls.github.io/gemini-mcp-tool/
- 社区讨论: GitHub Discussions
🙏 致谢
感谢以下项目和贡献者:
- Model Context Protocol - 提供了强大的MCP框架
- Google Generative AI - 提供了Gemini API支持
- 所有贡献者和用户的反馈和建议
关注我,获取更多AI开发工具和技术分享!