Skip to main content
Glama
thejusdutt

Google Search MCP Server

by thejusdutt

Google Search MCP Server

An MCP (Model Context Protocol) server that performs comprehensive web searches using Google Custom Search JSON API with advanced content extraction using Mozilla's Readability algorithm.

Features

  • Three Search Modes:

    • google_search - Fast snippet-only search for quick lookups

    • deep_search - Full content extraction with Readability algorithm

    • deep_search_news - News-optimized deep search

  • Google Custom Search API - Uses official Google Custom Search JSON API

  • Advanced Content Extraction - Uses Mozilla's Readability algorithm (same as Firefox Reader View) for clean article extraction

  • Multiple Search Types - Web search, news search, and image search

  • Domain Filtering - Include or exclude specific domains from results

  • Retry Logic - Automatic retries with exponential backoff for reliability

  • Controlled Concurrency - Fetches pages in batches to avoid overwhelming servers

Related MCP server: DuckDuckGo MCP Server

Prerequisites

Get Google Custom Search API Credentials

  1. Go to Google Cloud Console

  2. Create a new project or select an existing one

  3. Enable the "Custom Search API"

  4. Go to "Credentials" and create an API key

  5. Go to Programmable Search Engine

  6. Create a new search engine and get your Search Engine ID (CX)

You'll need:

  • GOOGLE_API_KEY - Your Google Cloud API key

  • GOOGLE_CX - Your Programmable Search Engine ID

Installation

No installation needed - just configure your MCP client:

{
  "mcpServers": {
    "google-search": {
      "command": "npx",
      "args": ["-y", "@thejusdutt/google-search-mcp"],
      "env": {
        "GOOGLE_API_KEY": "your-google-api-key",
        "GOOGLE_CX": "your-search-engine-id"
      }
    }
  }
}

Global Installation

npm install -g @thejusdutt/google-search-mcp

Then configure:

{
  "mcpServers": {
    "google-search": {
      "command": "google-search-mcp",
      "env": {
        "GOOGLE_API_KEY": "your-google-api-key",
        "GOOGLE_CX": "your-search-engine-id"
      }
    }
  }
}

Tools

Simple Google search for quick lookups. Returns snippets only without fetching full page content.

Parameter

Type

Default

Description

query

string

required

The search query

num_results

number

10

Number of results (1-10)

Example:

// Quick search with snippets only
google_search({ query: "React hooks tutorial" })

Comprehensive web search with full content extraction.

Parameter

Type

Default

Description

query

string

required

The search query

num_results

number

10

Number of results (1-10)

max_content_per_page

number

50000

Max characters per page (5000-100000)

search_type

string

"web"

Search type: "web", "news", or "images"

include_domains

string

-

Comma-separated domains to include

exclude_domains

string

-

Comma-separated domains to exclude

Examples:

// Basic web search
deep_search({ query: "React best practices 2025" })

// News search
deep_search({ query: "AI announcements", search_type: "news" })

// Search specific sites only
deep_search({ 
  query: "TypeScript tips",
  include_domains: "github.com,dev.to"
})

// Exclude certain sites
deep_search({
  query: "web development trends",
  exclude_domains: "pinterest.com,facebook.com"
})

deep_search_news

Convenience wrapper for news search. Equivalent to calling deep_search with search_type: "news" and optimized content limits.

Parameter

Type

Default

Description

query

string

required

The news topic to search

num_results

number

10

Number of articles (1-10)

max_content_per_page

number

30000

Max characters per article

Example:

deep_search_news({ query: "OpenAI latest updates" })

Configuration

Kiro

Add to ~/.kiro/settings/mcp.json:

{
  "mcpServers": {
    "google-search": {
      "command": "npx",
      "args": ["-y", "@thejusdutt/google-search-mcp"],
      "env": {
        "GOOGLE_API_KEY": "your-google-api-key",
        "GOOGLE_CX": "your-search-engine-id"
      }
    }
  }
}

Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "google-search": {
      "command": "npx",
      "args": ["-y", "@thejusdutt/google-search-mcp"],
      "env": {
        "GOOGLE_API_KEY": "your-google-api-key",
        "GOOGLE_CX": "your-search-engine-id"
      }
    }
  }
}

How It Works

  1. Search - Queries Google Custom Search API to get top results

  2. Fetch - Downloads each result page with retry logic

  3. Extract - Uses Mozilla Readability to extract clean article content

  4. Format - Returns consolidated markdown with full content from each page

Requirements

  • Node.js 18+

  • Google Cloud API key with Custom Search API enabled

  • Programmable Search Engine ID (CX)

License

MIT

Author

thejusdutt

Contributing

Issues and PRs welcome at GitHub

Available Tools

3 tools
deep_search_newsA

Searches for recent news articles on a topic using Google Custom Search API, fetches full article content, and returns consolidated results. Optimized for news and current events.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesThe news topic to search for
num_resultsNoNumber of news articles to fetch (1-10, default: 10)
max_content_per_pageNoMaximum characters per article (default: 30000)

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. While it mentions the tool fetches full article content and returns consolidated results, it doesn't disclose important behavioral traits like rate limits, authentication requirements, error handling, or what 'consolidated results' actually means in terms of output format. For a tool that performs external API calls and content fetching, this is a significant gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is perfectly concise and well-structured in just two sentences. The first sentence explains the complete workflow, and the second sentence provides the optimization context. Every word earns its place with no redundancy or unnecessary elaboration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema that performs external API calls and content fetching, the description is incomplete. It doesn't explain what the output looks like (what 'consolidated results' means), doesn't mention authentication requirements, rate limits, or error conditions. The description should provide more context about the tool's behavior and limitations given the complexity of the operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents all three parameters thoroughly. The description doesn't add any meaningful parameter semantics beyond what's in the schema - it mentions the general purpose but doesn't provide additional context about parameter usage, interactions, or best practices. The baseline of 3 is appropriate when the schema does all the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose with specific verbs ('searches for', 'fetches full article content', 'returns consolidated results') and distinguishes it from siblings by specifying 'optimized for news and current events' and mentioning the Google Custom Search API. It goes beyond just restating the name to explain the full workflow.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context about when to use this tool ('optimized for news and current events'), which helps differentiate it from the generic 'deep_search' and 'google_search' siblings. However, it doesn't explicitly state when NOT to use it or provide specific alternatives for non-news searches.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv1.0.1
    • Changeddeep_search2 fields changed
      • removedInput schema / properties / google_api_key
        Removed value: -{
        -  "description": "Google Custom Search API key (optional, uses server default if not provided)",
        -  "type": "string"
        -}
      • removedInput schema / properties / google_cx
        Removed value: -{
        -  "description": "Google Custom Search Engine ID (optional, uses server default if not provided)",
        -  "type": "string"
        -}
    • Addeddeep_search_news
    • Changedgoogle_search2 fields changed
      • removedInput schema / properties / google_api_key
        Removed value: -{
        -  "description": "Google Custom Search API key (optional, uses server default if not provided)",
        -  "type": "string"
        -}
      • removedInput schema / properties / google_cx
        Removed value: -{
        -  "description": "Google Custom Search Engine ID (optional, uses server default if not provided)",
        -  "type": "string"
        -}
  2. 3 tool updates
    • Changeddeep_search2 fields changed
      • addedInput schema / properties / google_api_key
        Added value: +{
        +  "description": "Google Custom Search API key (optional, uses server default if not provided)",
        +  "type": "string"
        +}
      • addedInput schema / properties / google_cx
        Added value: +{
        +  "description": "Google Custom Search Engine ID (optional, uses server default if not provided)",
        +  "type": "string"
        +}
    • Removeddeep_search_news
    • Changedgoogle_search2 fields changed
      • addedInput schema / properties / google_api_key
        Added value: +{
        +  "description": "Google Custom Search API key (optional, uses server default if not provided)",
        +  "type": "string"
        +}
      • addedInput schema / properties / google_cx
        Added value: +{
        +  "description": "Google Custom Search Engine ID (optional, uses server default if not provided)",
        +  "type": "string"
        +}
  3. 3 tool updates
    • First observeddeep_search
    • First observeddeep_search_news
    • First observedgoogle_search

TDQS

A3.6/5.0
Disambiguation2/5

The tools have overlapping purposes that could cause misselection. Both deep_search and deep_search_news perform similar comprehensive searches with full content extraction, differing mainly in search type (general vs. news), while google_search is a simpler alternative. An agent might struggle to choose between deep_search and deep_search_news for news-related queries, as their descriptions suggest functional overlap.

Naming Consistency5/5

The tool names follow a consistent snake_case pattern throughout, with clear and descriptive verbs (deep_search, deep_search_news, google_search). The naming is predictable and readable, making it easy for an agent to understand the tool set's structure without confusion.

Tool Count3/5

With only 3 tools, the server feels thin for a Google Search domain, which typically involves more varied operations like filtering, pagination, or specialized searches (e.g., by date or region). While the tools cover basic search needs, the count is borderline for comprehensive search functionality, potentially limiting agent capabilities.

Completeness2/5

There are significant gaps in the tool surface for a Google Search server. Missing operations include advanced filtering options, image or video search handling beyond basic mentions, pagination support, and error handling tools. The server focuses on content retrieval but lacks tools for refining or managing search results, which could lead to agent failures in complex tasks.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Enables web searching and content scraping through Google Custom Search API. Provides tools to search the internet, extract webpage content, and automatically scrape search results for comprehensive information gathering.
    3
    -
  • A
    license
    B
    quality
    D
    maintenance
    Enables web search through DuckDuckGo and webpage content fetching with intelligent text extraction. Features built-in rate limiting and LLM-optimized result formatting for seamless integration with language models.
    2
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables web searching through Google, DuckDuckGo, and Bing using a headless Chrome browser, returning structured results with titles, URLs, and snippets. Also supports fetching and extracting text content from any webpage.
    13
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables web search and content extraction using Google's search engine, with customizable parameters for result count, content type, time range, and domain filtering.
    -

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/thejusdutt/google-search-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server