带有Python主机的多个MCP SSE服务器
此存储库包含一个使用Google的Gemini API的服务器端事件(SSE)模型控制协议(MCP)客户端实现。 Host应用程序读取config.json文件,实例化MCP Client类的实例以启动MCP服务器并保持与它们的连接,在关闭时进行清理等。
可以将此主机应用程序打包为dmg包并分发,然后可以与任何MCP SSE服务器一起使用。 待办事项:添加stdio服务器支持 待办事项:添加多型号支持 待办事项:添加工具链
设置
- 克隆此存储库:
git clone https://github.com/hackerinheels/multipleMCPServerWithPythonHost.git
cd multipleMCPServerWithPythonHost- 创建一个
.env根目录中带有API密钥的文件:
GEMINI_API_KEY=your_api_key_here
MODEL_NAME=gemini-2.0-flash您可以从获取Gemini API密钥 谷歌人工智能工作室.
- 使用googleCalendar/REAME.md文件中的说明设置Google日历API
- 更新config.json以包含浏览器使用服务器:
{
"mcpServers": {
"calendar": {
"command": "uv",
"args": ["run", "googleCalendar/calendarServer.py", "--port", "8000"]
},
"browser-use": {
"command": "uv",
"args": ["run", "
/server", "--port", "8006"]
}
}
}替换 使用克隆存储库的实际路径。
- 创建一个
.env浏览器中的文件使用mcp服务器目录,配置如下:
CHROME_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"运行应用程序
uv venv --python 3.11
source .venv/bin/activate
uv pip install -r requirements.txt
uv run host.py这将启动config.json文件中列出的所有服务器
用法
服务器和客户端运行后,您可以通过键入查询与它们进行交互。
谷歌日历命令
日历服务器提供以下工具:
list_events:列出即将举行的日历活动get_event_details:获取特定事件的详细信息search_events:搜索与查询匹配的事件
示例查询:
- “显示我即将举行的活动”
- “搜索与John的会议”
- “获取事件{event_id}的详细信息”
浏览器用于浏览器自动化
此工具使用以下工具实现浏览器自动化和控制:
- '浏览器使用'
- '浏览器_结果'
类型 quit 退出客户端。
需求
- Python 3.11+
- UV包管理器
- Google Gemini API密钥
- Google日历API凭据(用于日历服务器)
许可证
MCP多服务器配置
此存储库演示了如何使用配置文件加载和运行多个MCP服务器。
包括服务器
日历服务器
- 与谷歌日历互动
- 管理活动和日程
浏览器使用服务器
- 自动化浏览器交互
- 以编程方式控制Chrome浏览器
- 执行基于浏览器的任务
4.浏览器使用服务器环境设置
创建一个 .env 浏览器中的文件使用mcp服务器目录,配置如下:
CHROME_PATH="/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"注意:请确保将“your-openai-api-key”替换为实际的openai api密钥。
备注
- 确保在.env中正确配置了所有API密钥
- 确保为浏览器使用服务器安装了Chrome
- 每台服务器在其指定端口上运行
- 主机管理所有服务器生命周期
故障排除
- 如果服务器无法启动,请检查其端口可用性
- 验证所有环境变量是否设置正确
- 确保Chrome路径适合您的系统
