ワンクリックで
gemini-search-mcp-web-search
MCP server providing free, unlimited web search powered by Google AI Mode (Gemini) without requiring API keys
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
MCP server providing free, unlimited web search powered by Google AI Mode (Gemini) without requiring API keys
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Policy-centered context budget layer that turns sprawling codebases into compact, high-signal context for AI coding agents using symbol graphs and precision tools
Control and automate Slay the Spire 2 gameplay through REST API or MCP server for AI agents
MCP server for browser automation using natural language through kogiQA, enabling AI agents to interact with web pages without selectors
Professional browser automation for Claude Code, Codex, and MCP clients powered by DrissionPage MCP Server
MCP server for Yuque (语雀) knowledge base - search, create, and manage documents through AI assistants
MCP server connecting AI assistants to Shopify Admin GraphQL API for products, orders, customers, inventory, and metafields management
| name | gemini-search-mcp-web-search |
| description | MCP server providing free, unlimited web search powered by Google AI Mode (Gemini) without requiring API keys |
| triggers | ["search the web using gemini","set up free web search for my AI agent","integrate google gemini search into claude","add web search capability without api key","configure gemini-search-mcp server","use google ai mode for real-time search","enable unlimited web search in cursor","connect gemini search to my mcp client"] |
Skill by ara.so — MCP Skills collection.
gemini-search-mcp is an MCP server that provides real-time web search capabilities to AI agents (Claude Desktop, Cursor, Windsurf, etc.) using Google's AI Mode powered by Gemini. It bypasses traditional search API limitations by using Chrome DevTools Protocol (CDP) to execute searches through a real browser, giving unlimited, free access to Google Search results without requiring API keys.
The server exposes two MCP tools:
web_search(query) - Search the web and get synthesized answers grounded in real-time resultsask(prompt) - General questions where AI Mode auto-decides whether to searchAdditionally, it can run as an OpenAI-compatible API server for non-MCP clients.
pip install -e .
pip install -e '.[undetected]'
claude mcp add gemini-search -- gemini-search-mcp
Edit claude_desktop_config.json:
{
"mcpServers": {
"gemini-search": {
"command": "gemini-search-mcp",
"args": [],
"env": {
"HEADLESS": "1",
"BROWSER_CHANNEL": "chrome"
}
}
}
}
Add to your MCP settings (.cursor/mcp.json or similar):
{
"mcpServers": {
"gemini-search": {
"command": "gemini-search-mcp",
"args": []
}
}
}
Start the server:
gemini-search --port 8080
Use with any OpenAI-compatible client:
import openai
client = openai.OpenAI(
base_url="http://localhost:8080/v1",
api_key="not-needed"
)
response = client.chat.completions.create(
model="gemini-search",
messages=[
{"role": "user", "content": "What are the latest AI developments in 2026?"}
]
)
print(response.choices[0].message.content)
# cURL example
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-search",
"messages": [{"role": "user", "content": "Bitcoin price today"}]
}'
| Variable | Default | Description |
|---|---|---|
CDP_URL | None | Chrome DevTools URL (e.g., http://127.0.0.1:9222). Connects to existing Chrome |
BROWSER_CHANNEL | chrome | Browser: chrome, msedge, or chromium |
HEADLESS | 1 | Set to 0 to show browser window |
GEMINI_SEARCH_USER_DATA_DIR | None | Persistent Chrome profile directory for cookie reuse |
GEMINI_SEARCH_CDP_PORT | 19250 | CDP port for self-launched Chrome |
GEMINI_SEARCH_BROWSER_BACKEND | subprocess | Backend: subprocess or undetected |
GEMINI_SEARCH_PROXY_SERVER | None | Proxy (e.g., socks5://127.0.0.1:7897) |
GEMINI_SEARCH_CHROMEDRIVER | None | Chromedriver path for undetected backend |
{
"mcpServers": {
"gemini-search": {
"command": "gemini-search-mcp",
"args": [],
"env": {
"HEADLESS": "1",
"BROWSER_CHANNEL": "msedge",
"GEMINI_SEARCH_USER_DATA_DIR": "/home/user/.cache/gemini-search-profile",
"GEMINI_SEARCH_PROXY_SERVER": "socks5://127.0.0.1:7897"
}
}
}
}
Use when you need real-time web information:
# In an MCP client context, the agent would call:
# web_search("latest AI regulation news 2026")
# Returns synthesized answer like:
# "The EU AI Act enforcement began on June 1, 2026, requiring..."
Example queries:
web_search("current weather in Tokyo")web_search("latest SpaceX launch date")web_search("Python 3.13 new features")web_search("best laptop 2026 under $1000")Use for general questions where AI Mode decides if web search is needed:
# ask("what is 1847 * 293")
# Returns: "541171" (computed without web search)
# ask("who won the latest Formula 1 race")
# Triggers web search and returns current results
If Google shows CAPTCHA for temporary profiles, create a persistent profile:
# First run: visible mode, solve CAPTCHA if needed
mkdir -p ~/.local/share/gemini-search-mcp/chrome-profile
gemini-search --no-headless --user-data-dir ~/.local/share/gemini-search-mcp/chrome-profile
Then configure for headless reuse:
{
"mcpServers": {
"gemini-search": {
"command": "gemini-search-mcp",
"args": [],
"env": {
"GEMINI_SEARCH_USER_DATA_DIR": "/home/user/.local/share/gemini-search-mcp/chrome-profile",
"HEADLESS": "1"
}
}
}
}
export GEMINI_SEARCH_PROXY_SERVER="socks5://127.0.0.1:7897"
gemini-search-mcp
Launch Chrome with remote debugging:
# Linux/Mac
google-chrome --remote-debugging-port=9222 --user-data-dir=/tmp/chrome-profile
# Windows
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir=C:\temp\chrome-profile
Configure MCP server to use it:
{
"mcpServers": {
"gemini-search": {
"command": "gemini-search-mcp",
"args": [],
"env": {
"CDP_URL": "http://127.0.0.1:9222"
}
}
}
}
# Using docker-compose
docker compose up -d
# Access at http://localhost:8080
Create docker-compose.yml:
version: '3.8'
services:
gemini-search:
build: .
ports:
- "8080:8080"
environment:
- HEADLESS=1
- BROWSER_CHANNEL=chrome
command: gemini-search --port 8080 --host 0.0.0.0
Problem: Google shows /sorry/ CAPTCHA page
Solution 1: Use persistent profile (see above)
Solution 2: Try undetected-chromedriver backend:
pip install -e '.[undetected]'
# Test first
python scripts/uc_google_probe.py --out-json uc-probe.json
# If probe shows ok=true and captcha=false, use it
gemini-search-mcp --browser-backend undetected
Solution 3: Use a different browser channel:
export BROWSER_CHANNEL=msedge
gemini-search-mcp
Problem: Chrome fails to start
Solutions:
google-chrome --version or chromium --versionexport BROWSER_CHANNEL=chromiumexport HEADLESS=0lsof -i :19250Problem: MCP client can't connect to server
Solutions:
ps aux | grep gemini-search~/Library/Logs/Claude/ (Mac) or %APPDATA%\Claude\logs (Windows)Problem: Getting throttled despite "unlimited" claim
Solutions:
export GEMINI_SEARCH_PROXY_SERVER=socks5://127.0.0.1:7897Problem: Searches take longer than expected ~1.5s average
Solutions:
CDP_URL for faster subsequent requestsProblem: Search results not parsing correctly
Solutions:
git pull origin main--no-headless to visually inspect what Chrome seesThe server uses Google's AI Mode endpoint internally. For advanced control:
# When calling from Python code (not common for MCP usage)
from gemini_search_mcp import search
result = search.web_search(
query="Python best practices 2026",
# Additional parameters handled internally
)
Each MCP tool call is independent. The server handles concurrency:
# AI agent can make multiple calls
# web_search("topic A")
# web_search("topic B")
# Results arrive as they complete
from langchain.tools import Tool
import requests
def gemini_search(query: str) -> str:
response = requests.post(
"http://localhost:8080/v1/chat/completions",
json={
"model": "gemini-search",
"messages": [{"role": "user", "content": query}]
}
)
return response.json()["choices"][0]["message"]["content"]
search_tool = Tool(
name="GeminiWebSearch",
func=gemini_search,
description="Search the web using Google AI Mode for current information"
)