返回市场
双子座-mcp命令行接口

双子座-mcp命令行接口

作者:kkrishnan902 星标更新:2025-03-27

项目介绍

MCP Gemini Chat CLI 💬

一个由Google的Gemini模型驱动的简单命令行界面(CLI)聊天应用程序,该程序作为MCP(模型上下文协议)主机运行。

✨ 特性

  • 🤖 Gemini 驱动: 使用Gemini API(默认为gemini-2.0-flash-001)进行对话响应。
  • 🔌 MCP 主机与客户端: 连接到并利用多个MCP服务器中的工具。
  • 🔎 动态工具发现: 自动从连接的服务器中发现可用工具。
  • ⚡ 运行时服务器管理: 在聊天应用运行时使用add_server命令动态添加新的MCP服务器。

🛠️ 先决条件

  • 🐍 Python 3.10+
  • 📦 uv(或pip)用于包管理。
  • 🔑 Google Gemini API密钥。

🚀 快速开始

  1. 克隆并进入目录:

    git clone <your-repo-url> # 将<your-repo-url>替换为实际的仓库URL
    cd mcp-gemini-chat
    
  2. 创建虚拟环境并激活:

    uv venv
    # 在Linux/macOS上
    source .venv/bin/activate
    # 在Windows上
    # .venv\Scripts\activate
    
  3. 安装依赖项: (安装mcpgoogle-genaipython-dotenvhttpx

    uv pip install -r requirements.txt
    
  4. 配置API密钥: ⚠️ 用你的实际密钥替换YOUR_GEMINI_API_KEY

    echo "GEMINI_API_KEY=YOUR_GEMINI_API_KEY" > .env
    
  5. 运行应用: (可选指定启动时连接的MCP服务器脚本路径)

    # 假设应用脚本位于'src'目录下
    python src/mcp_chat_app.py [path/to/server1.py] [path/to/server2.py]
    
    # 不带服务器启动示例
    # python src/mcp_chat_app.py
    

🌊 调用流程

基础聊天流程(无工具)

👤 用户输入 → 🤖 MCP Gemini 聊天应用 → ✨ Gemini API → 🖥️ 显示给用户

工具使用流程(例如计算器、天气)

  1. 👤 用户输入 → 🤖 MCP Gemini 聊天应用 → ✨ Gemini API
  2. ✨ Gemini 决定使用工具 → 🔌 MCP 客户端 → ⚙️ MCP 服务器(例如计算器服务器)
  3. ⚙️ 服务器执行工具 → 📄 返回结果 → 🔌 MCP 客户端
  4. 📄 结果 → ✨ Gemini API → 🤔 合成最终响应
  5. 🗣️ 最终响应 → 🖥️ 显示给用户

▶️ 使用指南

运行应用程序

启动应用脚本,可选提供立即连接的MCP服务器脚本路径。

# 不带任何初始服务器启动
python src/mcp_chat_app.py

# 启动并连接到特定服务器
python src/mcp_chat_app.py mcp_server_weather.py mcp_server_calc.py

添加MCP服务器

你可以通过连接更多的MCP服务器来添加更多工具:

1. 启动时: 在启动mcp_chat_app.py时提供服务器脚本路径作为命令行参数:

python src/mcp_chat_app.py path/to/mcp_server_weather.py path/to/mcp_server_calc.py

2. 运行时: 在聊天界面中使用add_server命令:

你: add_server path/to/my_other_server.py

应用程序将尝试连接并集成新服务器中的工具。

示例会话

$ python src/mcp_chat_app.py mcp_server_calc.py
# ... 初始化日志 ...
MCP Gemini 聊天应用
输入您的消息,'add_server <路径>'以添加服务器,或'quit'退出。

你: hi
Gemini: 你好!今天我能帮你做什么?

你: 5加12是多少?
# ... 工具调用日志 ...
Gemini: 5加12是17.0。

你: add_server mcp_server_weather.py
# ... 连接和工具发现日志 ...
Gemini: 成功添加了服务器'mcp_server_weather.py',带有工具:['get_alerts', 'get_forecast']

你: 伦敦有天气警报吗?
# ... 工具调用日志 ...
Gemini: # ...(关于伦敦天气警报的响应)...

你: quit
# ... 清理日志 ...
$