gpal
Provides access to Google Gemini models for autonomous codebase exploration and analysis, supporting stateful sessions, multimodal inputs, context caching, and semantic search.
Integrates native OpenTelemetry support for monitoring and distributed tracing, with automatic traceparent header propagation from MCP requests.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@gpalExplain authentication flow in this project"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
gpal
An MCP server that gives your IDE or agent access to Google Gemini with autonomous codebase exploration. Your pal Gemini.
Why gpal?
When you ask gpal a question, Gemini doesn't just guess β it explores your codebase itself. It lists directories, reads files, and searches for patterns before answering. This makes it ideal for:
π Deep code analysis β "Find all error handling patterns in this codebase"
ποΈ Architectural reviews β "How is authentication implemented?"
π Bug hunting β "Why might this function return null?"
π Codebase onboarding β "Explain how the request pipeline works"
πΌοΈ Visual review β Analyze screenshots, diagrams, video via
media_pathsπ Structured extraction β "List all API endpoints as JSON"
Related MCP server: Gemini CLI Orchestrator MCP
Features
Feature | Description |
Stateful sessions | Maintains conversation history via |
Autonomous exploration | Gemini has tools to list, read, and search files |
FileSearch | Semantic code search via Google's native FileSearch API |
Gemini 3 Series | Supports Flash and Pro with unified auto mode |
Context Caching | Store large code contexts to reduce costs and latency |
Observability | Native OpenTelemetry support (OTLP gRPC) |
Distributed Tracing | Propagates |
Multimodal | Analyze images, audio, video, PDFs |
Batch Processing | Async discounted (~50%) Gemini batch API |
Limits: 10MB file reads, 20MB inline media, 20 search matches max.
Model Tiers
Tool | Model | Use Case |
|
| Lite explores, then Flash synthesizes |
|
| Fast, efficient mapping and searching |
|
| Deep reasoning, complex reviews |
|
| Stateless single-shot queries, no session history |
Auto mode: Lite autonomously explores the codebase (cheap, thorough), then Flash synthesizes over what Lite found. Use model="pro" for deep reasoning (Lite explores, then Pro with thinking HIGH).
Observability & Tracing
gpal supports native OpenTelemetry for monitoring and distributed tracing. It automatically propagates traceparent headers from incoming MCP requests.
# Configure via standard environment variables
export OTEL_SERVICE_NAME="gpal-server"
export OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4317"
# Or via CLI argument
uv run gpal --otel-endpoint localhost:4317Context Caching
Reduce costs for large projects by caching context on Google's servers:
Upload large files using
upload_file.Create a cache using
create_context_cachewith the returned URIs.Reference the cache name in
consult_geminicalls via thecached_contentparameter.View active caches via the
gpal://cachesresource.
FileSearch
Semantic code search using Google's native FileSearch API β no local embeddings or databases:
# Create a store and upload files
create_file_store("my-project")
upload_to_file_store("stores/...", "src/server.py")
# Gemini searches stores automatically during generation
consult_gemini("find authentication logic", model="auto")Google handles chunking, embedding, and retrieval
Stores managed via
create_file_store,upload_to_file_store,list_file_stores,delete_file_storeWhen stores exist, Gemini searches them automatically during
consult_geminicalls
Custom System Prompts
Customize what Gemini "knows" about you, your project, or your workflow by composing system prompts from multiple sources.
Config file (~/.config/gpal/config.toml):
# Files loaded in order and concatenated
system_prompts = [
"~/.config/gpal/GEMINI.md",
"~/CLAUDE.md",
]
# Inline text appended after files
system_prompt = "εΈΈγ«ζ₯ζ¬θͺγ§εηγγ¦γγ γγ (Always respond in Japanese)"
# Set to false to fully replace the built-in prompt with your own
include_default_prompt = truePaths support ~ and $ENV_VAR expansion, so you can use $WORKSPACE/CLAUDE.md etc.
CLI flags (repeatable, concatenated in order):
# Append additional prompt files
uv run gpal --system-prompt /path/to/project-context.md
# Multiple files
uv run gpal --system-prompt ~/GEMINI.md --system-prompt ./CLAUDE.md
# Replace the built-in prompt entirely
uv run gpal --system-prompt ~/my-prompt.md --no-default-promptComposition order:
Built-in gpal system instruction (unless
include_default_prompt = falseor--no-default-prompt)Files from
system_promptsin config.tomlInline
system_promptfrom config.tomlFiles from
--system-promptCLI flags
Check what's active via the gpal://info resource β it shows which sources contributed and the total instruction length.
Installation
Prerequisites
Python 3.12+
uv (recommended)
Quick Start
git clone https://github.com/tobert/gpal.git
cd gpal
export GEMINI_API_KEY="your_key_here" # or GOOGLE_API_KEY
uv run gpalUsage
Claude Desktop / Cursor / VS Code
Add to your MCP config (e.g., claude_desktop_config.json):
{
"mcpServers": {
"gpal": {
"command": "uv",
"args": ["--directory", "/path/to/gpal", "run", "gpal"],
"env": {
"GEMINI_API_KEY": "your_key_here"
}
}
}
}Then ask your AI assistant:
"Ask Gemini to analyze the authentication flow in this codebase"
"Use
consult_geminito find where errors are handled"
Development
uv run pytest # Run tests
uv run pytest -v # Verbose outputβ οΈ Note: Integration tests (test_connectivity.py, test_agentic.py, test_switching.py) make live API calls and will incur Gemini API costs.
See Also
cpal β The inverse: an MCP server that lets Gemini (or any MCP client) consult Claude. Your pal Claude.
License
MIT β see LICENSE
Roadmap / TODO
Refactoring Agent: A loop that edits files, runs tests (via
code_executionor shell), and iterates until green.Review Agent: specialized system instruction for code review that outputs structured comments.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/tobert/gpal'
If you have feedback or need assistance with the MCP directory API, please join our Discord server