Skip to main content
Glama
pgzhang

MCP Google Server

by pgzhang

mcp-google-server A MCP Server for Google Custom Search and Webpage Reading

A Model Context Protocol server that provides web search capabilities using Google Custom Search API and webpage content extraction functionality.

Setup

Getting Google API Key and Search Engine ID

  1. Create a Google Cloud Project:

    • Go to Google Cloud Console

    • Create a new project or select an existing one

    • Enable billing for your project

  2. Enable Custom Search API:

    • Go to API Library

    • Search for "Custom Search API"

    • Click "Enable"

  3. Get API Key:

    • Go to Credentials

    • Click "Create Credentials" > "API Key"

    • Copy your API key

    • (Optional) Restrict the API key to only Custom Search API

  4. Create Custom Search Engine:

    • Go to Programmable Search Engine

    • Enter the sites you want to search (use www.google.com for general web search)

    • Click "Create"

    • On the next page, click "Customize"

    • In the settings, enable "Search the entire web"

    • Copy your Search Engine ID (cx)

Related MCP server: MCP Google Custom Search Server

Development

Install dependencies:

npm install

Build the server:

npm run build

For development with auto-rebuild:

npm run watch

Features

Search Tool

Perform web searches using Google Custom Search API:

  • Search the entire web or specific sites

  • Control number of results (1-10)

  • Get structured results with title, link, and snippet

Webpage Reader Tool

Extract content from any webpage:

  • Fetch and parse webpage content

  • Extract page title and main text

  • Clean content by removing scripts and styles

  • Return structured data with title, text, and URL

Installation

Installing via Smithery

To install Google Custom Search Server for Claude Desktop automatically via Smithery:

npx -y @smithery/cli install @adenot/mcp-google-search --client claude

To use with Claude Desktop, add the server config with your Google API credentials:

On MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json On Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "google-search": {
      "command": "npx",
      "args": [
        "-y",
        "@adenot/mcp-google-search"
      ],
      "env": {
        "SMARTSEARCH_ENDPOINT": "your-endpoint-here",
        "SMARTSEARCH_AK": "your-ak-here"
      }
    }
  }
}

Usage

Search Tool

{
  "name": "search",
  "arguments": {
    "query": "your search query",
    "num": 5  // optional, default is 5, max is 10
  }
}

Webpage Reader Tool

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

Example response from webpage reader:

{
  "title": "Example Domain",
  "text": "Extracted and cleaned webpage content...",
  "url": "https://example.com"
}

Debugging

Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:

npm run inspector

The Inspector will provide a URL to access debugging tools in your browser.

Available Tools

2 tools
read_webpageC

Fetch and extract text content from a webpage

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesURL of the webpage to read

TDQS

C2.9/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. It mentions 'fetch and extract text content,' implying a read-only operation, but doesn't specify details like rate limits, authentication needs, error handling, or output format (e.g., plain text vs. structured data), leaving gaps in understanding how the tool behaves.

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 a single, efficient sentence with no wasted words, clearly front-loading the core functionality. It's appropriately sized for a simple tool, making it easy to parse and understand quickly.

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?

Given the tool's simplicity (1 parameter, no output schema, no annotations), the description is minimal but lacks completeness. It doesn't address behavioral aspects like what happens with invalid URLs or non-text content, and with no output schema, it should ideally hint at the return format. This leaves the agent with insufficient context for robust use.

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?

The input schema has 100% coverage, fully describing the single 'url' parameter. The description adds no additional semantic information beyond what the schema provides, such as URL format constraints or examples. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('fetch and extract text content') and resource ('from a webpage'), making the purpose immediately understandable. It doesn't differentiate from the sibling 'search' tool, which could be for broader web searches versus specific URL fetching, but the core function is well-defined.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus the sibling 'search' tool or other alternatives. It lacks context about prerequisites, such as needing a valid URL or handling errors, which limits its utility for an AI agent in decision-making.

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. 2 tool updates
    • First observedread_webpage
    • First observedsearch

TDQS

B3.1/5.0
Disambiguation5/5

The two tools have clearly distinct purposes: one fetches content from a specific webpage, while the other performs general web searches. There is no overlap or ambiguity between them, making it easy for an agent to select the correct tool.

Naming Consistency5/5

Both tools follow a consistent verb_noun pattern (read_webpage, search), with no deviations or mixed conventions. The naming is straightforward and predictable across the set.

Tool Count2/5

With only 2 tools, the server feels thin for a 'Google Server' domain, which typically involves more operations like email, calendar, or document management. This minimal set may not cover the expected scope adequately.

Completeness2/5

For a server named 'Google Server', there are significant gaps in coverage, such as missing tools for Gmail, Google Drive, Calendar, or authentication. The current tools only handle basic web interactions, leaving core Google services unaddressed.

Maintenance

ActivityInactive
ResponsivenessNo issues

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

  • A
    license
    B
    quality
    D
    maintenance
    Provides web search capabilities using Google Custom Search API, enabling users to perform searches through a Model Context Protocol server.
    2
    213
    68
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that enables LLMs to perform web searches using Google's Custom Search API through a standardized interface.
    1
    47
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables AI assistants to perform web searches using Google Search API, returning up to 20 search results in JSON format.
    2
    Apache 2.0

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/pgzhang/mcp2'

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