A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
A MCP (Model Context Protocol) client that uses Google Gemini AI models for intelligent tool usage and conversation hand
Credit to and started from- medium.com/@fruitful2007/building-an-mcp-client-101-lets-build-one-for-a-gemini-chat-agent
pypi.org/project/gemini-tool-agent
A (potentially, lol) powerful MCP (Model Context Protocol) client that uses Google's Gemini AI models for intelligent tool usage and conversation handling.


Using "adk web" from agents directory- alter the agent.py paths to your own for simple Gemini mcp use for now until I get a better setup.
full_mcp_agent-README.md


google agent framework report text
📋 Easy Installation Instructions Here's the correct way to set it up with Claude- maybe, You may need to install this if not working properly:
Doesn't throw an error and works great for chat, not sure about Gemini MCP use. Just edit in your paths and use this config in 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"
]
}
}
}

This project uses uv for dependency management. Make sure you have uv installed.
# Create and activate virtual environment
uv venv --python 3.12 --seed
source .venv/bin/activate
```bash
# Install base dependencies- this is wrong it seems.
# uv add .
# maybe
/gemini-mcp-client
uv sync
uv add mcp
# Install a Gemini package (choose one or more):
uv add gemini-tool-agent
# OR
uv add google-generativeai
# OR
uv add google-genai
# OR install all options
uv add all-gemini
# Install with development dependencies
uv add --dev ".[dev]"
# Install pre-commit hooks
uv run pre-commit install
Create a .env file in the project root:
GEMINI_API_KEY=your_gemini_api_key_here
LOG_LEVEL=INFO
The client supports multiple Gemini models- not sure if more can be added somehow:
gemini-2.0-flash - Fast, efficient model (default)gemini-2.5-pro-preview-03-25 - Advanced model for complex tasksgemini-2.5-flash-preview-04-17 - Balanced speed and capabilitygemini-1.5-pro - Stable, reliable modelgemini-1.5-flash - Fast, lightweight modelgemini-1.5-flash-8b - Ultra-lightweight model# Start chat with default model
mcp-gemini-client chat path/to/server.py
# Start chat with specific model
mcp-gemini-client chat server.py --model gemini-2.5-pro-preview-03-25
# Get server information
mcp-gemini-client info server.py
# List available models
mcp-gemini-client models
# Set logging level
mcp-gemini-client chat server.py --log-level DEBUG
# List configured servers
mcp-gemini-client servers list
# Add new server interactively
mcp-gemini-client servers add
# Connect to configured server by name
mcp-gemini-client chat echo-server
# Enable/disable servers
mcp-gemini-client servers enable my-server
mcp-gemini-client servers disable my-server
# Export for Claude Desktop
mcp-gemini-client servers export claude_config.json
# Import from Claude Desktop config
mcp-gemini-client servers import existing_config.json
# Show current configuration
mcp-gemini-client config show
# Set default model
mcp-gemini-client config set default_model gemini-2.5-pro-preview-03-25
# Set other settings
mcp-gemini-client config set log_level DEBUG
mcp-gemini-client config set connection_timeout 60.0
import asyncio
from mcp_gemini_client import MCPClient
async def main():
# Initialize with specific model
client = MCPClient(model="gemini-2.5-pro-preview-03-25")
try:
# Connect to server
await client.connect_to_server("examples/echo_server.py")
# Get server information
info = await client.get_server_info()
print(f"Current model: {info['model']}")
print(f"Available tools: {[tool['name'] for tool in info['tools']]}")
# Change model during runtime
client.set_model("gemini-2.0-flash")
# Interactive conversation
response = await client.get_response("What tools are available?")
print(response)
# Direct tool usage
result = await client.call_tool_directly("echo", {"message": "Hello!"})
print(result)
# Start chat loop
await client.chat_loop()
finally:
await client.close()
asyncio.run(main())
During an interactive chat session, you can change models:
💬 You: model gemini-2.5-pro-preview-03-25
✅ Model changed to: gemini-2.5-pro-preview-03-25
💬 You: What's the current model?
🤖 Assistant: I'm currently using gemini-2.5-pro-preview-03-25...
config/servers.json - MCP server configurationsconfig/client.json - Client settings (model, timeouts, etc.){
"my-database": {
"name": "my-database",
"description": "Project SQLite database",
"server_type": "python",
"command": "uv",
"args": ["run", "mcp-server-sqlite", "--db-path", "data/project.db"],
"env": {
"DB_READONLY": "false"
},
"enabled": true,
"tags": ["database", "sqlite"]
}
}
Export configurations directly for Claude Desktop:
mcp-gemini-client servers export
This creates a claude_desktop_config.json file:
{
"mcpServers": {
"my-database": {
"command": "uv",
"args": ["run", "mcp-server-sqlite", "--db-path", "data/project.db"],
"env": {
"DB_READONLY": "false"
}
}
}
}
# Install and setup
uv add . --optional-dependencies google-generativeai
cp .env.example .env
# Edit .env and add your GEMINI_API_KEY
# List available models
mcp-gemini-client models
# Test with echo server
mcp-gemini-client chat examples/echo_server.py
# Add a server configuration
mcp-gemini-client servers add
# Use configured server
mcp-gemini-client chat my-server
# Export for Claude Desktop
mcp-gemini-client servers export
mcp-gemini-client chat examples/echo_server.py
# List available models
mcp-gemini-client models
# Use specific model
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()
# Add a database server
db_server = ServerConfig(
name="project-db",
description="Project database server",
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)
# Export for Claude Desktop
config_manager.export_claude_desktop_config("claude_config.json")
The client is built with these key components:
# Format code
uv run ruff format .
# Check code
uv run ruff check .
# Type checking
uv run pyright
# Run tests
uv run pytest
# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov=mcp_gemini_client
# Run specific test
uv run pytest tests/test_client.py::test_model_selection
prompts/usage_guide.mdprompts/server_configuration_guide.mdprompts/troubleshooting.mdprompts/best_practices.mdMIT License - see LICENSE file for details.
MCP server integration for DaVinci Resolve Studio
Run Claude Code as an MCP server so any agent can delegate coding tasks to it
Browser automation using accessibility snapshots instead of screenshots
A Jetbrains IDE IntelliJ plugin aimed to provide coding agents the ability to leverage intelliJ's indexing of the codeba