Skip to main content
Glama
Eivs

Google Search Engine MCP Server

by Eivs
README.md
# Google Search Engine MCP Server

An MCP (Model Context Protocol) server based on Cloudflare Workers, providing Google search and webpage content extraction functionality with integrated OAuth login.

## Local Development

```bash
# Clone the repository
git clone https://github.com/your-username/google-search-engine-mcp-server.git

# Install dependencies
cd google-search-engine-mcp-server
npm install

# Run locally
npm run dev
```

Visit [`http://localhost:8787/`](http://localhost:8787/) to check the server status

## Connect to MCP Inspector Testing Tool

Use the [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector) to explore and test the API:

- Run `npm run inspector` or `npx @modelcontextprotocol/inspector`
- In the Inspector interface, set the transport type to `SSE`, URL to `http://localhost:8787/sse`, and click "Connect"
- Enter any email and password in the mock login interface
- After logging in, you can view and call all available tools

<div align="center">
  <img src="img/mcp-inspector-sse-config.png" alt="MCP Inspector Configuration Interface" width="600"/>
</div>

## Available Tools

This server provides the following tools:

1. **google_search** - Perform Google searches and return results
2. **extract_webpage_content** - Extract webpage content and convert it to readable text
3. **batch_extract_webpage_content** - Batch extract content from multiple webpages

## Connect to Claude Desktop

To connect Claude to your local MCP server:

1. Follow the [Anthropic Quick Start Guide](https://modelcontextprotocol.io/quickstart/user)
2. In Claude Desktop, go to Settings > Developer > Edit Config
3. Replace the existing content with the following configuration:

```json
{
  "mcpServers": {
    "google-search": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "http://localhost:8787/sse"
      ]
    }
  }
}
```

After launching Claude, a browser window will open allowing you to log in. You can see available tools in the bottom right corner. With appropriate prompts, Claude will call the corresponding tools.

<div align="center">
  <img src="img/available-tools.png" alt="Click the hammer icon to display the list of available tools" width="600"/>
</div>

## Deploy to Cloudflare

1. Create a KV namespace: `npx wrangler kv namespace create OAUTH_KV`
2. Follow the prompts to add the KV namespace ID to `wrangler.jsonc`
3. Set environment variables:
   - `GOOGLE_API_KEY` - Your Google API key
   - `GOOGLE_SEARCH_ENGINE_ID` - Your Google Custom Search Engine ID
4. Deploy: `npm run deploy`

## Connect to Remote MCP Server

After deployment, you can use MCP Inspector to connect to the remote server:

```bash
npx @modelcontextprotocol/inspector@latest
```

Enter your Workers URL (e.g., `your-worker-name.your-account.workers.dev/sse`) as the MCP server address and click "Connect".

## Connect Claude Desktop to Remote Server

Update the Claude configuration file to point to your Workers URL:

```json
{
  "mcpServers": {
    "google-search": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://your-worker-name.your-account.workers.dev/sse"
      ]
    }
  }
}
```

## Troubleshooting

If you encounter issues:

1. Restart Claude
2. Try connecting to the MCP server directly from the command line:
   ```bash
   npx mcp-remote http://localhost:8787/sse
   ```
3. Clear the MCP authentication files:
   ```bash
   rm -rf ~/.mcp-auth
   ```
4. Check console logs for detailed error information

## Developer Notes

- This project is developed using TypeScript
- Based on Cloudflare Workers and Durable Objects
- Integrates OAuth authentication
- Uses Google Custom Search API for search functionality
- Includes webpage content extraction and analysis features