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
-
Create a Google Cloud Project:
- Go to Google Cloud Console
- Create a new project or select an existing one
- Enable billing for your project
-
Enable Custom Search API:
- Go to API Library
- Search for "Custom Search API"
- Click "Enable"
-
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
-
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)
Development
Install dependencies:
1npm install
Build the server:
1npm run build
For development with auto-rebuild:
1npm 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:
1npx -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
1{ 2 "mcpServers": { 3 "google-search": { 4 "command": "npx", 5 "args": [ 6 "-y", 7 "@adenot/mcp-google-search" 8 ], 9 "env": { 10 "GOOGLE_API_KEY": "your-api-key-here", 11 "GOOGLE_SEARCH_ENGINE_ID": "your-search-engine-id-here" 12 } 13 } 14 } 15}
Usage
Search Tool
1{ 2 "name": "search", 3 "arguments": { 4 "query": "your search query", 5 "num": 5 // optional, default is 5, max is 10 6 } 7}
Webpage Reader Tool
1{ 2 "name": "read_webpage", 3 "arguments": { 4 "url": "https://example.com" 5 } 6}
Example response from webpage reader:
1{ 2 "title": "Example Domain", 3 "text": "Extracted and cleaned webpage content...", 4 "url": "https://example.com" 5}
Debugging
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the MCP Inspector, which is available as a package script:
1npm run inspector
The Inspector will provide a URL to access debugging tools in your browser.