MCP Gemini聊天CLI💬
一个简单的命令行界面(CLI)聊天应用程序,由谷歌的Gemini模型提供支持,充当MCP(模型上下文协议)主机。
✨ 特性
- 🤖 Gemini供电: 使用Gemini API(
gemini-2.0-flash-001默认情况下)用于会话响应。 - 🔌 MCP主机和客户端: 连接到多个MCP服务器并利用其中的工具。
- 🔎 动态工具发现: 自动从连接的服务器中发现可用工具。
- ⚡ 运行时服务器管理: 使用聊天应用程序运行时动态添加新的MCP服务器
add_server命令。
🛠️ 先决条件
- 🐍 Python 3.10+
- 📦
uv(或pip)用于包管理。 - 🔑 Google Gemini API密钥。
🚀 快速开始
- 克隆并输入目录:
git clone # Replace with the actual repo URL
cd mcp-gemini-chat- 创建虚拟环境并激活:
uv venv
# On Linux/macOS
source .venv/bin/activate
# On Windows
# .venv\Scripts\activate- 安装依赖关系:
(安装 mcp, google-genai, python-dotenv, httpx)
uv pip install -r requirements.txt- 配置API密钥: ⚠️ 替换
YOUR_GEMINI_API_KEY用你真正的钥匙!
echo "GEMINI_API_KEY=YOUR_GEMINI_API_KEY" > .env- 运行应用程序: (可选择指定启动时连接的MCP服务器脚本)
# Example assuming the app script is in a 'src' directory
python src/mcp_chat_app.py [path/to/server1.py] [path/to/server2.py]
# Example without servers at startup
# python src/mcp_chat_app.py🌊 呼叫流
基本聊天流程(无工具)
👤 User Input → 🤖 MCP Gemini Chat App → ✨ Gemini API → 🖥️ Display to User工具使用流程(如计算器、天气)
- 👤 用户输入→ 🤖 MCP Gemini聊天应用程序→ ✨ API双子星
- ✨ 双子座决定使用工具→ 🔌 MCP客户端→ ⚙️ MCP服务器(例如计算器服务器)
- ⚙️ 服务器执行该工具→ 📄 返回结果→ 🔌 MCP客户端
- 📄 结果→ ✨ API双子星→ 🤔 综合最终响应
- 🗣️ 最终响应→ 🖥️ 向用户显示
▶️ 使用指南
运行应用程序
启动应用程序脚本,可选地提供要立即连接的MCP服务器脚本的路径。
# Start without any initial servers
python src/mcp_chat_app.py
# Start and connect to specific servers
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.py2.运行时: 使用 add_server 聊天界面中的命令:
You: add_server path/to/my_other_server.py应用程序将尝试连接和集成来自新服务器的工具。
示例会话
$ python src/mcp_chat_app.py mcp_server_calc.py
# ... Initialization logs ...
MCP Gemini Chat App
Enter your message, 'add_server
' to add a server, or 'quit' to exit.
You: hi
Gemini: Hello! How can I help you today?
You: what is 5 plus 12?
# ... Tool call logs ...
Gemini: 5 plus 12 is 17.0.
You: add_server mcp_server_weather.py
# ... Connection and tool discovery logs ...
Gemini: Successfully added server 'mcp_server_weather.py' with tools: ['get_alerts', 'get_forecast']
You: any weather alerts in London?
# ... Tool call logs ...
Gemini: # ... (Response about weather alerts in London) ...
You: quit
# ... Cleanup logs ...
$