Gemini模型协议服务器

一个生产就绪的Gemini模型协议服务器,提供基于Google搜索的基础功能和直接模型推理能力。

  • by OriShmila
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 orishmila/gemini-mcp-server

使用说明

Gemini MCP服务器

一个生产就绪的模型上下文协议(MCP)服务器,提供基于谷歌搜索和直接模型推理的Gemini AI功能。

🌟 特性

  • 🔍 谷歌搜索暂停:使用Gemini进行实时网络搜索,以谷歌搜索为基础,获取最新的事实信息
  • 🤖 直接模型推理:对于不需要实时信息的任务,直接致电Gemini
  • 📊 JSON模式验证:严格的输入/输出验证,确保可靠的工具响应
  • 🧪 综合测试:具有模式验证和错误处理的完整测试套件
  • ⚡ 高性能:针对快速响应时间进行了优化

🚀 快速开始

安装

  1. 克隆存储库:

    git clone https://github.com/yourusername/gemini-mcp-server.git
    cd gemini-mcp-server
    
  2. 安装依赖项:

    uv sync
    
  3. 设置环境变量:

    # Copy the example environment file
    cp .env.example .env
    
    # Edit .env and add your Gemini API key
    GEMINI_API_KEY=your_api_key_here
    
  4. 测试服务器:

    uv run python test_server.py
    

获取Gemini API密钥

  1. 访问 谷歌人工智能工作室
  2. 使用您的Google帐户登录
  3. 创建新的API密钥
  4. 复制密钥并将其添加到您的 .env 文件

🛠️ 可用工具

1. gemini_websearch

使用基于谷歌搜索的Gemini搜索网络。

特征:

  • ✅ 实时搜索结果 谷歌搜索基础
  • 🌍 语言支持 -自动将结果翻译成所需的语言
  • 📊 结构化输出 具有适当的来源归因
  • 🎯 自定义字段 -为每个结果请求额外的元数据

参数:

  • query (必填):搜索查询字符串
  • language (可选):结果翻译的语言代码(例如“es”、“fr”、“ja”)
  • extraFieldsProperties (可选):要包含在结果中的其他字段

例子:

{
  "query": "latest AI developments 2024",
  "language": "es"
}

2. gemini_call

直接调用Gemini模型,无需为结构化响应奠定基础。

特征:

  • 🎯 JSON模式约束 -获取与您的模式匹配的结构化响应
  • 📝 灵活的输入 -传递任意数据和上下文
  • 🚀 快速响应 -无需网络搜索即可直接进行模型推理
  • 💪 复杂的模式 -支持嵌套对象和数组

参数:

  • prompt (必填):描述任务的说明
  • args (可选):要包含在提示中的结构化数据
  • outputSchema (必填):定义预期响应结构的JSON模式

例子:

{
  "prompt": "Analyze this financial data and extract key metrics",
  "args": {
    "revenue": "$1.2B",
    "quarter": "Q3 2024"
  },
  "outputSchema": {
    "type": "object",
    "properties": {
      "revenue_usd": {"type": "number"},
      "growth_rate": {"type": "number"}
    }
  }
}

🔧 与MCP客户端一起使用

Claude桌面配置

添加到您的Claude Desktop配置中:

{
  "mcpServers": {
    "gemini": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/yourusername/gemini-mcp-server",
        "gemini-server"
      ],
      "env": {
        "GEMINI_API_KEY": "your_api_key_here"
      }
    }
  }
}

其他MCP客户端

服务器实现了标准的MCP协议,并与任何兼容的客户端一起工作:

  1. 工具发现:客户来电 list_tools 查看可用工具
  2. 工具执行:客户来电 call_tool 带有工具名称和参数
  3. 响应:服务器返回带验证的结构化JSON响应

🧪 测试

运行综合测试套件:

uv run python test_server.py

测试套件包括:

  • ✅ 模式验证测试
  • ✅ 两种工具的成功案例测试
  • ✅ 错误处理验证
  • ✅ 输入参数验证
  • ✅ 输出结构验证
  • ✅ 性能监控

预期结果:

  • 所有10个测试用例都应该通过
  • 网络搜索测试将显示“AFC远程呼叫”日志(指示实际接地)
  • 搜索操作的响应时间应小于10秒

📊 演出

  • 搜索操作:约3-6秒(基于谷歌搜索)
  • 直接模型调用:~0.5-1秒
  • 架构验证:每个请求<1ms
  • 内存使用:~50MB基本+请求处理

🏗️ 建筑

gemini-mcp-server/
├── gemini_mcp_server/          # Main package
│   ├── handlers.py            # Tool implementations
│   ├── server.py              # MCP server core
│   ├── tools.json             # Tool schemas
│   └── __main__.py            # Entry point
├── test_server.py             # Test framework
├── test_cases.json            # Test definitions
└── pyproject.toml             # Dependencies

🔍 关键技术

🚦 错误处理

服务器包括全面的错误处理:

  • API密钥无效:清除身份验证问题的错误消息
  • 网络错误:优雅地处理API超时和连接
  • 架构验证:格式错误的请求的详细错误消息
  • 速率限制:API速率限制的自动重试逻辑

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 添加新功能的测试
  4. 确保所有测试通过
  5. 提交拉取请求

📄 许可证

这个项目是开源的,可以在MIT许可证下使用。

🔗 资源

🆘 故障排除

常见问题

  1. “GEMINI_API_KEY未配置”

    • 确保您的 .env 文件存在并且包含有效的API密钥
    • 检查密钥是否具有适当的权限
  2. 测试因网络错误而失败

    • 验证互联网连接
    • 检查API密钥是否存在速率限制问题
  3. 架构验证错误

    • 确保您的请求与预期的输入模式匹配
    • 检查 tools.json 参数要求文件

获取帮助

  • 检查测试输出以了解详细的错误消息
  • 查看 Gemini API文件
  • 在GitHub上打开一个包含错误日志的问题

准备好通过实时网络搜索和结构化模型推理将强大的人工智能功能集成到您的应用程序中! 🚀