Gemini集成MCP服务器

一个基于FastAPI的模型上下文协议(MCP)服务器,集成了Google Gemini CLI,用于AI驱动的任务管理和数据处理。

  • by MalikAqsa-cloud
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 MalikAqsa-cloud/MCP-Server-using-FAST-MCP

使用说明

集成Google Gemini的快速MCP服务器

一个使用FastAPI构建的全面模型上下文协议(MCP)服务器,该服务器与Google Gemini CLI集成,用于实现AI驱动的任务管理和数据处理。

🚀 功能

  • 基于FastAPI的MCP服务器高性能异步服务器,运行在5000端口
  • Google Gemini 集成与Gemini CLI无缝集成以获取AI响应
  • 任务管理工具完成任务管理的全部CRUD操作
  • 数据分析任务统计和CSV导出功能
  • 全面日志记录基于JSON的操作日志记录,用于追踪和调试
  • **命令行界面(CLI)**用于服务器交互的易用命令行工具
  • **RESTful API(Representational State Transfer(表述性状态转移)应用程序编程接口)**完整的API文档,配备Swagger UI
  • 生产就绪模块化、简洁且文档齐全的代码

📋 前提条件

  • Python 3.8或更高版本
  • Google Gemini CLI 已安装并配置完毕
  • curl(用于命令行界面操作)
  • Git(用于克隆仓库)

🛠️ 安装

1. 克隆仓库

git clone <repository-url>
cd FAST_MCP

2. 创建虚拟环境

python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

3. 安装依赖项

pip install -r requirements.txt

4. 安装Google Gemini命令行界面(CLI)

遵循官方的Gemini CLI安装指南:

确保Gemini CLI已正确配置您的API密钥。

🚀 快速入门

启动服务器

./mcp_cli.sh start

服务器将在 http://localhost:5000

检查服务器状态

./mcp_cli.sh status

列出可用工具

./mcp_cli.sh list

使用MCP工具

# List all tasks
./mcp_cli.sh run list_tasks

# Create a new task
./mcp_cli.sh run create_task "Implement authentication" "Add JWT-based auth" "high"

# Update task status
./mcp_cli.sh run update_task_status 1 "in_progress"

# Search tasks
./mcp_cli.sh run search_tasks "authentication"

# Get task statistics
./mcp_cli.sh run get_task_statistics

# Export tasks to CSV
./mcp_cli.sh run export_tasks_to_csv

与Gemini互动

./mcp_cli.sh gemini "What are the best practices for API security?"

查看日志

./mcp_cli.sh logs

停止服务器

./mcp_cli.sh stop

📚 API 文档

服务器运行后,请访问:

  • Swagger UIhttp://localhost:5000/docs 翻译为中文是:“本地主机上的5000端口文档页面”
  • **ReDoc(注:ReDoc是一个用于生成API文档的开源工具,但在此上下文中,它可能仅作为一个专有名词或特定项目/系统的名称,因此直接翻译为“ReDoc”保持其原名)**http://localhost:5000/redoc 翻译为中文是:“本地主机:5000 端口上的 Redoc(文档浏览器)”。不过,通常我们不会直接翻译网址,而是说明其用途或指向的内容,比如:“访问本地运行的 Redoc 文档界面,网址为 http://localhost:5000/redoc”

🔧 可用的MCP工具

1. list_tasks

  • 描述列出所有任务,并可选择性地应用状态过滤
  • 参数:
    • status_filter (可选):按状态过滤(待处理、进行中、已完成)
  • 示例: ./mcp_cli.sh run list_tasks pending

2. create_task

  • 描述创建一个新任务
  • 参数:
    • title (必填):任务标题
    • description (必填):任务描述
    • priority (可选):优先级(低、中、高)
    • assigned_to (可选):分配任务的用户ID
  • 示例: ./mcp_cli.sh run create_task "New Feature" "Implement user dashboard" "high" "dev1"

3. update_task_status

  • 描述更新现有任务的状态
  • 参数:
    • task_id (必填):要更新的任务的ID
    • new_status (必填):新状态(待处理、进行中、已完成)
  • 示例: ./mcp_cli.sh run update_task_status 1 "completed"

4. get_task_statistics

  • 描述获取全面的任务统计和分析
  • 参数无
  • 示例: ./mcp_cli.sh run get_task_statistics

5. search_tasks

  • 描述按标题或描述搜索任务
  • 参数:
    • query (必填):搜索查询字符串
  • 示例: ./mcp_cli.sh run search_tasks "authentication"

6. export_tasks_to_csv

  • 描述将所有任务导出到CSV文件
  • 参数无
  • 示例: ./mcp_cli.sh run export_tasks_to_csv

🤖 Gemini 集成

该服务器与Google Gemini CLI集成,以提供基于人工智能的响应:

特点/特性

  • 多轮对话在交互过程中保持上下文连贯性
  • 错误处理优雅地处理CLI故障和超时
  • 记录日志所有Gemini的交互都被记录下来以便追踪
  • 超时保护30秒超时设置以防止请求挂起

使用示例

# Technical questions
./mcp_cli.sh gemini "How do I implement JWT authentication in FastAPI?"

# Code review
./mcp_cli.sh gemini "Review this Python function for best practices"

# Documentation help
./mcp_cli.sh gemini "Generate API documentation for a task management system"

📁 项目结构

FAST_MCP/
├── server.py              # Main FastAPI server
├── requirements.txt       # Python dependencies
├── mcp_cli.sh            # CLI interface script
├── sample_data.json      # Sample task data
├── README.md             # This file
├── venv/                 # Virtual environment (created during setup)
├── server.log            # Server logs (created when running)
├── mcp_logs.json         # MCP operation logs (created when running)
└── tasks_export_*.csv    # Exported CSV files (created when exporting)

🔍 日志记录和监控

操作日志

所有MCP工具调用和Gemini交互都被记录到 mcp_logs.json:

{
  "timestamp": "2024-01-17T10:30:00Z",
  "operation": "mcp_tool_call",
  "tool_name": "create_task",
  "success": true,
  "result": {...},
  "error": null
}

服务器日志

服务器日志被写入 server.log 并包括:

  • 服务器启动/关闭事件
  • 请求/响应详情
  • 错误消息和堆栈跟踪
  • 性能指标

健康监测

随时检查服务器健康状况:

./mcp_cli.sh health

🛡️ 错误处理

服务器包含全面的错误处理机制:

  • 工具验证验证工具名称和参数
  • 数据持久化优雅地处理文件I/O错误
  • Gemini CLI 集成管理CLI故障和超时
  • HTTP 错误适当的HTTP状态码和错误信息
  • 记录日志所有错误都被记录下来以供调试

🔧 配置

服务器配置

  • 端口5000(可配置于 server.py)
  • 主持人0.0.0.0(所有接口)
  • 数据文件: sample_data.json
  • 日志文件: mcp_logs.json

Gemini CLI 配置

确保Gemini CLI已正确配置:

gemini config set api_key YOUR_API_KEY

🚀 部署

发展

./mcp_cli.sh start

生产

对于生产部署,请考虑:

  • 使用像PM2或systemd这样的进程管理器
  • 使用Nginx设置反向代理
  • 实施适当的认证措施
  • 添加速率限制
  • 建立监控和警报系统

🧪 测试

手动测试

  1. 启动服务器: ./mcp_cli.sh start
  2. 测试每种工具: ./mcp_cli.sh run <tool_name>
  3. 测试Gemini集成: ./mcp_cli.sh gemini "test prompt"
  4. 检查日志: ./mcp_cli.sh logs
  5. 验证健康状况: ./mcp_cli.sh health

API测试

请使用位于 http://localhost:5000/docs 的 Swagger UI 直接测试 API 端点。

📊 样本数据

该项目包括 sample_data.json 与;带着;用

  • 5个示例任务 具有不同的状态和优先级
  • 4个用户配置文件 包含角色和部门
  • 2个项目定义 带有团队分配

🤝 贡献

  1. 为仓库创建分支(或:克隆仓库)
  2. 创建一个特性分支: git checkout -b feature-name
  3. 进行你的更改
  4. 彻底测试
  5. 提交您的更改: git commit -m "Add feature"
  6. 推送至分支: git push origin feature-name
  7. 提交一个拉取请求

📝 许可证

此项目采用MIT许可证授权——详情请参见LICENSE文件。

🆘 故障排除

常见问题

  1. 服务器无法启动

    • 检查端口5000是否可用
    • 验证虚拟环境是否已激活
    • 检查 server.log 以获取错误详情
  2. 未找到Gemini CLI

    • 安装Gemini CLI: pip install google-generativeai
    • 配置API密钥: gemini config set api_key YOUR_KEY
  3. 对 mcp_cli.sh 的访问被拒绝

    • 生成可执行文件: chmod +x mcp_cli.sh
  4. 数据文件错误

    • 检查文件权限
    • 验证JSON格式 sample_data.json

寻求帮助

  • 检查日志: ./mcp_cli.sh logs
  • 查看服务器日志: tail -f server.log
  • 测试服务器健康状况: ./mcp_cli.sh health
  • 查看API文档:http://localhost:5000/docs

🎯 路线图

  • [ ] 添加用户认证和授权
  • [ ] 实现实时通知
  • [ ] 添加更多MCP工具(文件处理、电子邮件等)
  • [ ] 创建网页仪表板
  • [ ] 添加单元测试和集成测试
  • [ ] 实施缓存以提高性能
  • [ ] 添加Docker支持
  • [ ] 创建CI/CD流水线

📞 支持

如需支持或有疑问:

  • 在仓库中创建一个问题
  • 查看故障排除部分
  • 查看API文档

使用 FastAPI 和 Google Gemini 构建,倾注爱意