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
# 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/
to check the server status
Connect to MCP Inspector Testing Tool
Use the MCP Inspector to explore and test the API:
- Run
npm run inspector
ornpx @modelcontextprotocol/inspector
- In the Inspector interface, set the transport type to
SSE
, URL tohttp://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
Available Tools
This server provides the following tools:
- google_search - Perform Google searches and return results
- extract_webpage_content - Extract webpage content and convert it to readable text
- batch_extract_webpage_content - Batch extract content from multiple webpages
Connect to Claude Desktop
To connect Claude to your local MCP server:
- Follow the Anthropic Quick Start Guide
- In Claude Desktop, go to Settings > Developer > Edit Config
- Replace the existing content with the following configuration:
{
"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.
Deploy to Cloudflare
- Create a KV namespace:
npx wrangler kv namespace create OAUTH_KV
- Follow the prompts to add the KV namespace ID to
wrangler.jsonc
- Set environment variables:
GOOGLE_API_KEY
- Your Google API keyGOOGLE_SEARCH_ENGINE_ID
- Your Google Custom Search Engine ID
- Deploy:
npm run deploy
Connect to Remote MCP Server
After deployment, you can use MCP Inspector to connect to the remote server:
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:
{
"mcpServers": {
"google-search": {
"command": "npx",
"args": [
"mcp-remote",
"https://your-worker-name.your-account.workers.dev/sse"
]
}
}
}
Troubleshooting
If you encounter issues:
- Restart Claude
- Try connecting to the MCP server directly from the command line:
npx mcp-remote http://localhost:8787/sse
- Clear the MCP authentication files:
rm -rf ~/.mcp-auth
- 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