MCP Server Search
by MaartenSmeets
MCP Server Search is an MCP server that provides Google search functionality for AI models, enabling them to access up-to-date information from the web. It integrates with Google search and provides configurable options for request delays and caching.
Last updated: N/A
MCP Server Search
An MCP (Model Context Protocol) server that provides Google search functionality for AI models. This server allows models to search for up-to-date information from the web.
Features
- Google search integration with caching
- Configurable request delays and retries to avoid rate limiting
- Support for both simple and advanced searches (with descriptions)
- Throttling and randomization to be a good web citizen
Installation
Using Docker (Recommended)
-
Build the Docker image:
docker build -t mcp-server-search .
-
Create required directories for persistence:
mkdir -p ./logs ./cache
-
Run the container:
docker run --rm -i \ -v "$(pwd)/logs:/app/logs" \ -v "$(pwd)/cache:/app/cache" \ mcp-server-search
The volumes ensure:
- Logs are persisted to
./logs
directory - Search cache is persisted to
./cache
directory - Both directories are automatically created by Docker if they don't exist
Note: The -i
flag is required for MCP protocol communication, and --rm
automatically removes the container when it exits.
Cline Integration
To use this MCP server with Cline, add the following configuration to your Cline MCP settings file (located at ~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json
for VS Code):
{
"mcpServers": {
"google_search": {
"command": "docker",
"args": [
"run",
"--rm",
"-i",
"mcp-server-search"
],
"disabled": false,
"alwaysAllow": []
}
}
}
This configuration:
- Sets up the search MCP server to run in a Docker container
- Uses the
--rm
flag to automatically remove the container when it exits - Uses
-i
for interactive mode required by the MCP protocol - Disables the server by default for security (set
disabled
tofalse
to enable) - Requires explicit approval for all tool uses (
alwaysAllow
is empty)
Configuration
The server accepts the following command-line arguments:
--log-level
: Set the logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL). Default: INFO--log-file
: Path to log file (default: stdout)--cache-path
: Path to the search cache file (default: cache/google_cache.db)--request-delay
: Delay between search requests in seconds (default: 5)--max-retries
: Maximum number of retries for failed searches (default: 3)
Usage
The server exposes the following MCP endpoints:
Tools
-
google_search
: Search Google and return results. Results are presented in a formatted Markdown structure with titles, URLs, and descriptions (when enabled).Parameters:
query
(string, required): The search query to executenum_results
(integer, optional): Number of results to return (min: 1, max: 20, default: 5)use_cache
(boolean, optional): Whether to use cached results if available (default: true)include_descriptions
(boolean, optional): Whether to include descriptions in results (default: true)
Features:
- Automatic request throttling and retry mechanism
- Random user agent rotation for better request distribution
- File-based caching with thread-safe access
- Exponential backoff on rate limiting (HTTP 429)
Prompts
-
google_search
: Search Google with the given query. Returns results in a conversational format.Parameters:
query
(string, required): The search query to executenum_results
(integer, optional): Number of results to return (1-20, default: 5)
About MCP
The Model Context Protocol (MCP) is a protocol for connecting Large Language Models (LLMs) with tools and data sources. Learn more at github.com/modelcontextprotocol.