Google Search MCP Server

Google Search MCP Server

An MCP (Model Context Protocol) server that provides Google search capabilities and webpage content analysis tools. This server enables AI models to perform Google searches and analyze webpage content programmatically.

mixelpixx

Search
Browser Automation
Local
TypeScript
Visit Server

Tools

google_search

Search Google and return relevant results from the web. This tool finds web pages, articles, and information on specific topics using Google's search engine. Results include titles, snippets, and URLs that can be analyzed further using extract_webpage_content.

extract_webpage_content

Extract and analyze content from a webpage, converting it to readable text. This tool fetches the main content while removing ads, navigation elements, and other clutter. Use it to get detailed information from specific pages found via google_search. Works with most common webpage formats including articles, blogs, and documentation.

extract_multiple_webpages

Extract and analyze content from multiple webpages in a single request. This tool is ideal for comparing information across different sources or gathering comprehensive information on a topic. Limited to 5 URLs per request to maintain performance.

README

Built For use with Cline + VS Code!

Google Search MCP Server

An MCP (Model Context Protocol) server that provides Google search capabilities and webpage content analysis tools. This server enables AI models to perform Google searches and analyze webpage content programmatically.

Features

  • Advanced Google Search with filtering options (date, language, country, safe search)
  • Detailed webpage content extraction and analysis
  • Batch webpage analysis for comparing multiple sources
  • Environment variable support for API credentials
  • Comprehensive error handling and user feedback
  • MCP-compliant interface for seamless integration with AI assistants

Prerequisites

  • Node.js (v16 or higher)
  • Python (v3.8 or higher)
  • Google Cloud Platform account
  • Custom Search Engine ID
  • Google API Key

Installation

  1. Clone the repository:

    git clone https://github.com/your-username/google-search-mcp.git
    cd google-search-mcp
    
  2. Install Node.js dependencies:

    npm install
    
  3. Install Python dependencies:

    pip install flask google-api-python-client flask-cors beautifulsoup4 trafilatura markdownify
    
  4. Build the TypeScript code:

    npm run build
    
  5. Create a helper script to start the Python servers (Windows example):

    # Create start-python-servers.cmd
    @echo off
    echo Starting Python servers for Google Search MCP...
    
    REM Start Python search server
    start "Google Search API" cmd /k "python google_search.py"
    
    REM Start Python link viewer
    start "Link Viewer" cmd /k "python link_view.py"
    
    echo Python servers started. You can close this window.
    

Configuration

API Credentials

You can provide Google API credentials in two ways:

  1. Environment Variables (Recommended):

    • Set GOOGLE_API_KEY and GOOGLE_SEARCH_ENGINE_ID in your environment
    • The server will automatically use these values
  2. Configuration File:

    • Create an api-keys.json file in the root directory:
    {
        "api_key": "your-google-api-key",
        "search_engine_id": "your-custom-search-engine-id"
    }
    

MCP Settings Configuration

Add the server configuration to your MCP settings file:

For Cline (VS Code Extension)

File location: %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json

{
  "mcpServers": {
    "google-search": {
      "command": "C:\\Program Files\\nodejs\\node.exe",
      "args": ["C:\\path\\to\\google-search-mcp\\dist\\google-search.js"],
      "cwd": "C:\\path\\to\\google-search-mcp",
      "env": {
        "GOOGLE_API_KEY": "your-google-api-key",
        "GOOGLE_SEARCH_ENGINE_ID": "your-custom-search-engine-id"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

For Claude Desktop App

File location: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "google-search": {
      "command": "C:\\Program Files\\nodejs\\node.exe",
      "args": ["C:\\path\\to\\google-search-mcp\\dist\\google-search.js"],
      "cwd": "C:\\path\\to\\google-search-mcp",
      "env": {
        "GOOGLE_API_KEY": "your-google-api-key",
        "GOOGLE_SEARCH_ENGINE_ID": "your-custom-search-engine-id"
      },
      "disabled": false,
      "autoApprove": []
    }
  }
}

Running the Server

Method 1: Start Python Servers Separately (Recommended)

  1. First, start the Python servers using the helper script:

    start-python-servers.cmd
    
  2. Configure the MCP settings to run only the Node.js server:

    {
      "command": "C:\\Program Files\\nodejs\\node.exe",
      "args": ["C:\\path\\to\\google-search-mcp\\dist\\google-search.js"]
    }
    

Method 2: All-in-One Script

Start both the TypeScript and Python servers with a single command:

npm run start:all

Available Tools

1. google_search

Search Google and return relevant results from the web. This tool finds web pages, articles, and information on specific topics using Google's search engine.

{
  "name": "google_search",
  "arguments": {
    "query": "your search query",
    "num_results": 5, // optional, default: 5, max: 10
    "date_restrict": "w1", // optional, restrict to past day (d1), week (w1), month (m1), year (y1)
    "language": "en", // optional, ISO 639-1 language code (en, es, fr, de, ja, etc.)
    "country": "us", // optional, ISO 3166-1 alpha-2 country code (us, uk, ca, au, etc.)
    "safe_search": "medium" // optional, safe search level: "off", "medium", "high"
  }
}

2. extract_webpage_content

Extract and analyze content from a webpage, converting it to readable text. This tool fetches the main content while removing ads, navigation elements, and other clutter.

{
  "name": "extract_webpage_content",
  "arguments": {
    "url": "https://example.com"
  }
}

3. extract_multiple_webpages

Extract and analyze content from multiple webpages in a single request. Ideal for comparing information across different sources or gathering comprehensive information on a topic.

{
  "name": "extract_multiple_webpages",
  "arguments": {
    "urls": [
      "https://example1.com",
      "https://example2.com"
    ]
  }
}

Example Usage

Here are some examples of how to use the Google Search MCP tools:

Basic Search

Search for information about artificial intelligence

Advanced Search with Filters

Search for recent news about climate change from the past week in Spanish

Content Extraction

Extract the content from https://example.com/article

Multiple Content Comparison

Compare information from these websites:
- https://site1.com/topic
- https://site2.com/topic
- https://site3.com/topic

Getting Google API Credentials

  1. Go to the Google Cloud Console
  2. Create a new project or select an existing one
  3. Enable the Custom Search API
  4. Create API credentials (API Key)
  5. Go to the Custom Search Engine page
  6. Create a new search engine and get your Search Engine ID
  7. Add these credentials to your api-keys.json file

Error Handling

The server provides detailed error messages for:

  • Missing or invalid API credentials
  • Failed search requests
  • Invalid webpage URLs
  • Network connectivity issues

Architecture

The server consists of two main components:

  1. TypeScript MCP Server: Handles MCP protocol communication and provides the tool interface
  2. Python Flask Server: Manages Google API interactions and webpage content analysis

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Excel MCP Server

Excel MCP Server

A Model Context Protocol server that enables AI assistants to read from and write to Microsoft Excel files, supporting formats like xlsx, xlsm, xltx, and xltm.

Featured
Local
Go
Playwright MCP Server

Playwright MCP Server

Provides a server utilizing Model Context Protocol to enable human-like browser automation with Playwright, allowing control over browser actions such as navigation, element interaction, and scrolling.

Featured
Local
TypeScript
@kazuph/mcp-fetch

@kazuph/mcp-fetch

Model Context Protocol server for fetching web content and processing images. This allows Claude Desktop (or any MCP client) to fetch web content and handle images appropriately.

Featured
Local
JavaScript
Claude Code MCP

Claude Code MCP

An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.

Featured
Local
JavaScript
Apple MCP Server

Apple MCP Server

Enables interaction with Apple apps like Messages, Notes, and Contacts through the MCP protocol to send messages, search, and open app content using natural language.

Featured
Local
TypeScript