感谢并基于-medium.com/@fruitful2007/building-an-mcp-client-101-lets-build-one-for-a-gemini-chat-agent
pypi.org/project/gemini-tool-agent
这是一个(可能,哈哈)强大的MCP(模型上下文协议)客户端,使用Google的Gemini AI模型进行智能工具使用和对话处理。


使用“adk web”从代理目录-修改agent.py路径以简单地使用Gemini mcp,直到我有更好的设置。
full_mcp_agent-README.md


google agent framework report text
📋 简单安装说明 这是正确的设置方法与Claude-也许需要安装以下内容才能正常工作:
不会抛出错误,并且聊天功能很好,不确定是否适用于Gemini MCP使用。 只需编辑您的路径并在Claude Desktop中使用此配置:
{
"mcpServers": {
"gemini-ai": {
"command": "uv",
"args": [
"--directory",
"/home/ty/Repositories/ai_workspace/gemini-mcp-client",
"run",
"python",
"servers/gemini_mcp_server.py"
],
"env": {
"GEMINI_API_KEY": "your_gemini_api_key_here"
}
},
"echo-server": {
"command": "uv",
"args": [
"--directory",
"/home/ty/Repositories/ai_workspace/gemini-mcp-client",
"run",
"python",
"examples/echo_server.py"
]
}
}
}

该项目使用uv进行依赖管理。确保您已安装uv。
# 创建并激活虚拟环境
uv venv --python 3.12 --seed
source .venv/bin/activate
```bash
# 安装基础依赖-这似乎有误。
# uv add .
# 或许
/gemini-mcp-client
uv sync
uv add mcp
# 安装Gemini包(选择一个或多个):
uv add gemini-tool-agent
# 或
uv add google-generativeai
# 或
uv add google-genai
# 或安装所有选项
uv add all-gemini
# 安装开发依赖
uv add --dev ".[dev]"
# 安装pre-commit钩子
uv run pre-commit install
在项目根目录创建一个.env文件:
GEMINI_API_KEY=your_gemini_api_key_here
LOG_LEVEL=INFO
客户端支持多种Gemini模型-不确定是否可以添加更多:
gemini-2.0-flash - 快速、高效模型(默认)gemini-2.5-pro-preview-03-25 - 复杂任务的高级模型gemini-2.5-flash-preview-04-17 - 平衡速度和能力gemini-1.5-pro - 稳定可靠的模型gemini-1.5-flash - 快速轻量级模型gemini-1.5-flash-8b - 超轻量级模型# 使用默认模型启动聊天
mcp-gemini-client chat path/to/server.py
# 使用特定模型启动聊天
mcp-gemini-client chat server.py --model gemini-2.5-pro-preview-03-25
# 获取服务器信息
mcp-gemini-client info server.py
# 列出可用模型
mcp-gemini-client models
# 设置日志级别
mcp-gemini-client chat server.py --log-level DEBUG
# 列出已配置的服务器
mcp-gemini-client servers list
# 交互式添加新服务器
mcp-gemini-client servers add
# 通过名称连接到已配置的服务器
mcp-gemini-client chat echo-server
# 启用/禁用服务器
mcp-gemini-client servers enable my-server
mcp-gemini-client servers disable my-server
# 导出给Claude Desktop
mcp-gemini-client servers export claude_config.json
# 从Claude Desktop配置导入
mcp-gemini-client servers import existing_config.json
# 显示当前配置
mcp-gemini-client config show
# 设置默认模型
mcp-gemini-client config set default_model gemini-2.5-pro-preview-03-25
# 设置其他设置
mcp-gemini-client config set log_level DEBUG
mcp-g-emin-client config set connection_timeout 60.0
import asyncio
from mcp_gemini_client import MCPClient
async def main():
# 使用特定模型初始化
client = MCPClient(model="gemini-2.5-pro-preview-03-25")
try:
# 连接到服务器
await client.connect_to_server("examples/echo_server.py")
# 获取服务器信息
info = await client.get_server_info()
print(f"当前模型: {info['model']}")
print(f"可用工具: {[tool['name'] for tool in info['tools']]}")
# 在运行时更改模型
client.set_model("gemini-2.0-flash")
# 交互式对话
response = await client.get_response("有哪些可用的工具?")
print(response)
# 直接工具使用
result = await client.call_tool_directly("echo", {"message": "你好!"})
print(result)
# 启动聊天循环
await client.chat_loop()
finally:
await client.close()
asyncio.run(main())
在交互式聊天会话期间,您可以更改模型:
💬 你:model gemini-2.5-pro-preview-03-25
✅ 模型已更改为:gemini-2.5-pro-preview-03-25
💬 你:当前模型是什么?
🤖 助手:我目前正在使用gemini-2.5-pro-preview-03-25...
config/servers.json - MCP服务器配置config/client.json - 客户端设置(模型、超时等){
"my-database": {
"name": "my-database",
"description": "项目SQLite数据库",
"server_type": "python",
"command": "uv",
"args": ["run", "mcp-server-sqlite", "--db-path", "data/project.db"],
"env": {
"DB_READONLY": "false"
},
"enabled": true,
"tags": ["database", "sqlite"]
}
}
直接导出配置给Claude Desktop:
mcp-gemini-client servers export
这将创建一个claude_desktop_config.json文件:
{
"mcpServers": {
"my-database": {
"command": "uv",
"args": ["run", "mcp-server-sqlite", "--db-path", "data/project.db"],
"env": {
"DB_READONLY": "false"
}
}
}
}
# 安装和设置
uv add . --optional-dependencies google-generativeai
cp .env.example .env
# 编辑.env并添加你的GEMINI_API_KEY
# 列出可用模型
mcp-gemini-client models
# 测试回声服务器
mcp-gemini-client chat examples/echo_server.py
# 添加服务器配置
mcp-gemini-client servers add
# 使用已配置的服务器
mcp-gemini-client chat my-server
# 导出给Claude Desktop
mcp-gemini-client servers export
mcp-gemini-client chat examples/echo_server.py
# 列出可用模型
mcp-gemini-client models
# 使用特定模型
mcp-gemini-client chat server.py --model gemini-2.5-pro-preview-03-25
from mcp_gemini_client.config import get_config_manager, ServerConfig, ServerType
config_manager = get_config_manager()
# 添加数据库服务器
db_server = ServerConfig(
name="project-db",
description="项目数据库服务器",
server_type=ServerType.PYTHON,
command="uv",
args=["run", "mcp-server-sqlite", "--db-path", "data/project.db"],
env={"DB_READONLY": "false"},
tags=["database", "project"]
)
config_manager.add_server(db_server)
# 导出给Claude Desktop
config_manager.export_claude_desktop_config("claude_config.json")
客户端由这些关键组件构建:
# 格式化代码
uv run ruff format .
# 检查代码
uv run ruff check .
# 类型检查
uv run pyright
# 运行测试
uv run pytest
# 运行所有测试
uv run pytest
# 运行覆盖率测试
uv run pytest --cov=mcp_gemini_client
# 运行特定测试
uv run pytest tests/test_client.py::test_model_selection
prompts/usage_guide.mdprompts/server_configuration_guide.mdprompts/troubleshooting.mdprompts/best_practices.mdMIT许可证 - 详情见LICENSE文件。