MCP服务器
一个实现了模型上下文协议的服务器,使像克劳德这样的AI助手能够与谷歌的Gemini API进行交互,用于文本生成、文本分析和聊天对话。
服务介绍
MCP Gemini 服务器
一个实现模型上下文协议 (MCP) 的服务器,使像 Claude 这样的 AI 助手能够与 Google 的 Gemini API 交互。
项目概述
本项目实现了一个遵循模型上下文协议的服务器,允许 AI 助手通过 Gemini API 与 Google 的 Gemini 模型进行通信。通过这个 MCP 服务器,AI 助手可以请求文本生成、文本分析,并通过 Gemini API 维持聊天对话。
特性
- 客户端-服务器通信:实现 MCP 协议以确保客户端和服务器之间的安全消息交换。
- 消息处理:处理和响应客户端请求,发送适当的回复。
- 错误处理与日志记录:记录服务器活动并确保平稳的错误恢复。
- 环境变量支持:使用
.env文件安全地存储敏感信息。 - API 测试与调试:支持使用 Postman 和测试脚本进行手动和自动化测试。
安装
先决条件
- Python 3.7 或更高版本
- Google AI API 密钥
设置
- 克隆此仓库:
git clone https://github.com/yourusername/mcp-gemini-server.git
cd mcp-gemini-server
- 创建虚拟环境:
python -m venv venv
-
激活虚拟环境:
- Windows:
venv\Scripts\activate - macOS/Linux:
source venv/bin/activate
- Windows:
-
安装依赖项:
pip install -r requirements.txt
- 在根目录下创建一个包含您的 Gemini API 密钥的
.env文件:
GEMINI_API_KEY=your_api_key_here
使用
- 启动服务器:
python server.py
-
服务器默认运行在
http://localhost:5000/ -
使用 POST 方法向
/mcp端点发送 MCP 请求
示例请求
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. analyze_text
分析文本内容。
参数:
text(必需): 要分析的文本analysis_type(可选): 分析类型 ('sentiment', 'summary', 'keywords', 或 'general')
示例:
{
"action": "analyze_text",
"parameters": {
"text": "The weather today is wonderful! I love how the sun is shining.",
"analysis_type": "sentiment"
}
}
3. chat
与 Gemini 对话。
参数:
messages(必需): 包含 'role' 和 'content' 的消息对象数组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 协议规范
此处实现的模型上下文协议遵循以下规范:
-
请求格式:
action: 指定操作的字符串parameters: 包含特定于操作参数的对象
-
响应格式:
result: 包含操作结果的对象error: 解释任何错误的字符串(如果适用)
许可证
MIT 许可证