Google Search
A lightweight Model Context Protocol (MCP) server that allows AI models to search the web using the Google Custom Search API.
Install
Install and configure the MCP from https://github.com/hasinduudara/Google-Search-MCP.git now. Follow the repository's installation instructions, ask me for anything you can't complete yourself, and verify its tools load.๐ An MCP server that lets any MCP-compatible AI client search the live web through Google's Custom Search JSON API โ over stdio, plug-and-play.
๐งญ Table of Contents
- ๐งญ Table of Contents
- โจ Overview
- โ๏ธ Requirements
- ๐ง Google Custom Search Setup
- โ ๏ธ Rate Limits & Quota
- ๐ฆ Installation
- โถ๏ธ Run
- ๐ณ Run with Docker
- ๐ MCP Client Configuration
- ๐งฉ Using This Server in Your Own Project
- ๐ ๏ธ Available Tool
- ๐งช Test with MCP Inspector
- ๐ Project Structure
- ๐ค Contributing
- ๐ License
- ๐ค Author
โจ Overview
This server bridges the gap between AI agents and real-time web knowledge. It speaks the Model Context Protocol (MCP) over stdio, so any compatible client can call a single tool โ
search_googleโ and get back clean, structured search results straight from Google.
โโโโโโโโโโโโโโโโโโโ stdio (MCP) โโโโโโโโโโโโโโโโโโโโโโโโ HTTPS โโโโโโโโโโโโโโโโโโโโโ
โ MCP Client โ โโโโโโโโโโโโโโโโโโโโโโโโถ โ Google Search MCP โ โโโโโโโโโโโโโโโโโโโถ โ Google Custom โ
โ (Claude, etc.) โ โโโโโโโโโโโโโโโโโโโโโโโโ โ Server โ โโโโโโโโโโโโโโโโโโโ โ Search JSON API โ
โโโโโโโโโโโโโโโโโโโ results โโโโโโโโโโโโโโโโโโโโโโโโ results โโโโโโโโโโโโโโโโโโโโโ
โ๏ธ Requirements
| Requirement | Details |
|---|---|
| ๐ข Node.js | v18 or newer |
| ๐ Google API Key | With access to the Custom Search JSON API |
| ๐ Search Engine ID | From a Google Programmable Search Engine (cx) |
๐ง Google Custom Search Setup
- Create a project in the Google Cloud Console
- Enable the
Custom Search APIfor that project - Generate an API key
- Create a Programmable Search Engine and copy its Search Engine ID
โ ๏ธ Rate Limits & Quota
The Google Custom Search JSON API's free tier allows 100 queries per day. Once that limit is hit, the API returns a 429 error and search_google will respond with an error message instead of results.
- Need more? You can enable billing on your Google Cloud project for up to 10,000 queries/day (paid, per-query pricing).
- Check your current usage in the Google Cloud Console under APIs & Services โ Custom Search API โ Quotas.
๐ฆ Installation
npm install
Create a .env file in the project root:
GOOGLE_API_KEY=your_google_api_key
SEARCH_ENGINE_ID=your_search_engine_id
โ ๏ธ
Never commit
.envor expose your API key in source control.
โถ๏ธ Run
Development (run TypeScript directly):
npm start
Production (build then run compiled output):
npm run build
node build/index.js
โน๏ธ The server logs status and errors to
stderr, keepingstdoutclean for MCP protocol messages.
๐ณ Run with Docker
Prefer containers? You can build and run this server without installing Node.js locally.
Build the image:
docker build -t google-search-mcp .
Run it (make sure your .env file is set up first โ see Installation):
docker run -i --rm --env-file .env google-search-mcp
โ ๏ธ
The
-iflag is required โ this is a stdio-based MCP server and needs an interactive stream to communicate with the client.
Or use Docker Compose:
services:
google-search-mcp:
build: .
stdin_open: true
tty: true
env_file:
- .env
docker compose up --build
Point your MCP client to Docker
{
"mcpServers": {
"google-search": {
"command": "docker",
"args": ["run", "-i", "--rm", "--env-file", ".env", "google-search-mcp"]
}
}
}
๐ MCP Client Configuration
After building the project, register the server with an MCP-compatible client using the compiled entry point:
{
"mcpServers": {
"google-search": {
"command": "node",
"args": ["/absolute/path/to/Google-Search-MCP/build/index.js"],
"env": {
"GOOGLE_API_KEY": "your_google_api_key",
"SEARCH_ENGINE_ID": "your_search_engine_id"
}
}
}
}
Or keep credentials in the project's .env and launch from the project directory:
{
"mcpServers": {
"google-search": {
"command": "node",
"args": ["/absolute/path/to/Google-Search-MCP/build/index.js"]
}
}
}
๐งฉ Using This Server in Your Own Project
This server isn't tied to any single client โ any MCP-compatible host can spawn it and call search_google. To use it elsewhere:
- Clone and build this repo (or pull the Docker image โ see Run with Docker).
- Point your MCP client's config at the built entry point (
build/index.js) or the Docker command, using the same JSON shown in MCP Client Configuration. - Supported clients โ any tool that speaks MCP over stdio works, including:
- Calling it programmatically โ if you're building your own MCP client/agent in code, connect an MCP
ClientoverStdioClientTransportpointed atbuild/index.js, then call thesearch_googletool like any other MCP tool. See the MCP TypeScript SDK docs for client-side examples.
Each client has its own config file location and format for
mcpServersโ check that client's docs for exactly where to paste the JSON block.
๐ ๏ธ Available Tool
search_google
Searches Google Custom Search for the supplied query and returns the top 3 results.
Input
{
"query": "latest TypeScript release"
}
Output
Each result includes:
- ๐
title - ๐
link - ๐
snippet
If nothing is found, the tool responds with No results found.
๐งช Test with MCP Inspector
npm run build
npx @modelcontextprotocol/inspector node build/index.js
Make sure your environment variables are set before launching the inspector.
๐ Project Structure
๐ฆ Google-Search-MCP
โโโ ๐ src
โ โโโ index.ts # MCP server implementation
โโโ ๐ build # Compiled JavaScript and type declarations
โโโ .env # Local environment config (not committed)
โโโ README.md
๐ค Contributing
Contributions, bug reports, and feature requests are welcome!
- Found a bug or have an idea? Open an issue describing it.
- Want to contribute code?
- Fork the repo
2. Create a branch (
git checkout -b feature/your-feature) 3. Make your changes and test locally (npm startordocker compose up --build) 4. Commit and push, then open a Pull Request
- Fork the repo
2. Create a branch (
Please keep PRs focused โ one feature or fix per PR makes review easier.
๐ License
This project is licensed under the MIT License.
