Gemini模型协议服务器

一个实现模型上下文协议(MCP)的服务器,使AI助手能够通过Google的Gemini API进行文本生成、分析和对话交互。

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

使用说明

MCP Gemini服务器

模型上下文协议(MCP)的服务器实现,使Claude等人工智能助手能够与谷歌的Gemini API进行交互。

项目概述

该项目实现了一个遵循模型上下文协议的服务器,允许AI助手与谷歌的Gemini模型进行通信。有了这个MCP服务器,人工智能助手可以通过Gemini API请求文本生成、文本分析和维护聊天会话。

特性

  • 客户端-服务器通信:实现MCP协议,用于客户端和服务器之间的安全消息交换。
  • 消息处理:处理和处理客户端请求,发送适当的响应。
  • 错误处理和记录:记录服务器活动并确保顺利进行错误恢复。
  • 环境变量支持:用途 .env 用于安全存储敏感信息的文件。
  • API测试与调试:支持使用Postman和测试脚本进行手动和自动测试。

安装

先决条件

  • Python 3.7或更高版本
  • 谷歌人工智能API密钥

设置

  1. 克隆此存储库:
git clone https://github.com/yourusername/mcp-gemini-server.git
cd mcp-gemini-server
  1. 创建虚拟环境:
python -m venv venv
  1. 激活虚拟环境:

    • 窗户: venv\Scripts\activate
    • macOS/Linux: source venv/bin/activate
  2. 安装依赖项:

pip install -r requirements.txt
  1. 创建一个 .env 根目录中使用Gemini API密钥的文件:
GEMINI_API_KEY=your_api_key_here

用法

  1. 启动服务器:
python server.py
  1. 服务器将在上运行 http://localhost:5000/ 默认情况下

  2. 向发送MCP请求 /mcp 使用POST方法的端点

示例请求

import requests

url = 'http://localhost:5000/mcp'
payload = {
    'action': 'generate_text',
    'parameters': {
        'prompt': 'Write a short poem about AI',
        'temperature': 0.7
    }
}

response = requests.post(url, json=payload)
print(response.json())

api参考

端点

  • GET /health:检查服务器是否正在运行
  • GET /list-models:列出可用的Gemini型号
  • POST /mcp:MCP请求的主要端点

MCP行动

1.generate_text

使用Gemini生成文本内容。

参数:

  • prompt (必填):生成文本提示
  • temperature (可选):控制随机性(0.0到1.0)
  • max_tokens (可选):要生成的最大令牌数

例子:

{
  "action": "generate_text",
  "parameters": {
    "prompt": "Write a short story about a robot",
    "temperature": 0.8,
    "max_tokens": 500
  }
}

2.分析文本

分析文本内容。

参数:

  • text (必填):要分析的文本
  • analysis_type (可选):分析类型(“意见”、“摘要”、“关键字”或“一般”)

例子:

{
  "action": "analyze_text",
  "parameters": {
    "text": "The weather today is wonderful! I love how the sun is shining.",
    "analysis_type": "sentiment"
  }
}

3.聊天

和双子座谈谈。

参数:

  • messages (必需):包含“角色”和“内容”的消息对象数组
  • temperature (可选):控制随机性(0.0到1.0)

例子:

{
  "action": "chat",
  "parameters": {
    "messages": [
      {"role": "user", "content": "Hello, how are you?"},
      {"role": "assistant", "content": "I'm doing well! How can I help?"},
      {"role": "user", "content": "Tell me about quantum computing"}
    ],
    "temperature": 0.7
  }
}

错误处理

服务器返回相应的HTTP状态代码和错误消息:

  • 200:请求成功
  • 400:请求错误(参数缺失或无效)
  • 500:服务器错误(API问题等)

测试

使用附带的测试脚本测试各种功能:

# Test all functionalities
python test_client.py

# Test specific functionality
python test_client.py text     # Test text generation
python test_client.py analyze  # Test text analysis
python test_client.py chat     # Test chat functionality

MCP协议规范

这里实现的模型上下文协议遵循以下规范:

  1. 请求格式:

    • action:指定操作的字符串
    • parameters:包含特定操作参数的对象
  2. 响应格式:

    • result:包含操作结果的对象
    • error:解释任何错误的字符串(如适用)

许可证

MIT许可证