Gemma MCP Client
A client for Google's Gemma-3 model that enables function calling through MCP.
Gemma MCP Client
A Python package that combines Google's Gemma language model with MCP (Model Content Protocol) server integration, enabling powerful function calling capabilities across both local functions and remote MCP tools.
Features
- Seamless integration with Google's Gemma language model
- Support for both local Python functions and remote MCP tools
- Automatic tool discovery and registration from MCP servers
- Python-style function calling syntax
- Proper resource management with async context managers
- Support for multiple MCP servers
- Easy testing through test server support
Installation
uv add gemma-mcp # or pip install gemma-mcp if you love the old way
Requirements
- Python 3.10+
google-genai: Google Generative AI Python SDKFastMCPMCP utilities
Usage
Basic Usage
from gemma_mcp import GemmaMCPClient
# a standard MCP configuration
mcp_config = {
"mcpServers": {
"weather": {
"url": "https://weather-api.example.com/mcp"
},
"assistant": {
"command": "python",
"args": ["./assistant_server.py"]
}
}
}
# Initialize client with MCP support
async with GemmaMCPClient(mcp_config=mcp_config).managed() as client:
# Chat with automatic function execution
response = await client.chat(
"What's the weather like in London?",
execute_functions=True
)
print(response)
Adding Local Functions
You can add local functions in three ways:
- Using a callable:
async def my_function(param1: str, param2: int = 0):
"""Function description."""
return {"result": param1 + str(param2)}
client.add_function(my_function)
- Using a dictionary:
function_def = {
"name": "my_function",
"description": "Function description",
"parameters": {
"type": "object",
"properties": {
"param1": {"type": "string"},
"param2": {"type": "integer", "default": 0}
},
"required": ["param1"]
}
}
client.add_function(function_def)
- Using a FunctionDefinition object:
from gemma_mcp import FunctionDefinition
function_def = FunctionDefinition(
name="my_function",
description="Function description",
parameters={
"type": "object",
"properties": {
"param1": {"type": "string"},
"param2": {"type": "integer", "default": 0}
},
"required": ["param1"]
},
required=["param1"]
)
client.add_function(function_def)
MCP Server Configuration
The MCP configuration supports multiple server types:
- servers with SSE transport:
mcp_config = {
"mcpServers": {
"server_name": {
"url": "https://server-url/mcp"
}
}
}
- servers with STDIO transport:
mcp_config = {
"mcpServers": {
"server_name": {
"command": "python",
"args": ["./server.py"]
}
}
}
Testing
The package includes support for testing with in-memory MCP servers:
from fastmcp import FastMCP
from gemma_mcp import GemmaMCPClient
# Create test server
mcp = FastMCP("Test Server")
# Initialize client with test server
client = GemmaMCPClient()
client.mcp_client.add_test_server(mcp)
# Use the client as normal
async with client.managed():
response = await client.chat("Test message", execute_functions=True)
API Reference
GemmaMCPClient
The main client class that handles both Gemma model interactions and MCP tool integration.
Parameters
api_key(str, optional): Gemini API key. If not provided, will look for GEMINI_API_KEY env varmodel(str): Model to use, defaults to "gemma-3-27b-it"temperature(float): Generation temperature, defaults to 0.7system_prompt(str, optional): Custom system promptmcp_config(dict, optional): MCP configuration dictionary
Methods
add_function(function): Add a function definitionchat(message, execute_functions=False): Send a message and get responseinitialize(): Initialize the client and all componentscleanup(): Clean up all resources
FunctionDefinition
A dataclass for representing function definitions.
Parameters
name(str): Function namedescription(str): Function descriptionparameters(dict): Function parameters schemarequired(list): List of required parameterscallable(callable, optional): The actual callable function
License
MIT License
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Servidores relacionados
Alpha Vantage MCP Server
patrocinadorAccess financial market data: realtime & historical stock, ETF, options, forex, crypto, commodities, fundamentals, technical indicators, & more
Local Context MCP
A collection of reference implementations for the Model Context Protocol (MCP), giving LLMs secure access to tools and data.
GoPeak
The most comprehensive MCP server for Godot Engine. 95+ tools for scene management, GDScript LSP, DAP debugging, screenshot capture, input injection, and CC0 asset library.
TradesAPI
Real-time contractor license verification across 45 US states. Verifies license status, expiration, and disciplinary history directly against state licensing board portals.
SatGate
Open-source API gateway that adds budget enforcement, cost attribution, and monetization to AI agent API calls. MCP-aware with per-tool cost tracking, macaroon-based bearer tokens, L402 Lightning micropayments, and enterprise budget control (Fiat402). The economic firewall for the agent economy.
CIE - Code Intelligence Engine
Local code analysis MCP server with 25+ tools: semantic search, call graph tracing, dependency analysis, and symbol navigation. Built with Tree-sitter and CozoDB. Supports Go, Python, JS, TS.
Codebase MCP Server
A server for secure and efficient codebase analysis.
TradingCyborg MCP Server
A professional trading server with over 26 tools for Bybit API integration.
MCP Vaultwarden Connector
Provides a bridge for scripts and AI agents to interact with a self-hosted Vaultwarden instance.
React Native AI Debugger
Enables AI assistants like Claude Code to capture logs, execute code, inspect state, and control navigation in your React Native app.
Sequential Thinking Multi-Agent System (MAS)
An MCP agent that utilizes a Multi-Agent System (MAS) for sequential thinking and problem-solving.