Do these 3 things before closing this tab:
1Scan for outdated or missing drivers - takes under a minute2Clear out junk files and repair common Windows errors3Fix the driver behind crashes, sound loss and screen glitchesSome links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
There is no single canonical Google Search MCP server on GitHub. The repositories covered here are community implementations that connect an MCP-compatible client to Google Custom Search, while a separate hosted option uses a provider’s Google SERP service. To choose and set one up, compare its runtime, credentials, transport, and client configuration—and verify the repository’s latest instructions before installing it.
What a Google Search MCP server does
Model Context Protocol (MCP) lets a compatible AI application call tools exposed by a server. A Google Search MCP server makes a search capability available to the client; it is not itself the AI application or a general replacement for one. The examples here are different community projects, not official interchangeable implementations.
The self-hosted repositories described below use Google Custom Search credentials. Google documents managed remote MCP servers for supported Google and Google Cloud services, and a Developer Knowledge MCP server for searching Google developer documentation. Those documented offerings do not establish a Google-managed general web-search MCP server. See Google Cloud’s managed MCP documentation and Google Developer Knowledge MCP documentation for their stated scopes.
Choose a GitHub implementation
Start from the repository’s own current README, then confirm its license, recent commits, issue activity, releases, dependencies, and compatibility with your MCP client. The available descriptions do not establish a universally best-maintained or most reliable project.
#1 Best Overall
| Option | What its documentation describes | What to check |
|---|---|---|
| gradusnikov/google-search-mcp-server | Python server using Google Custom Search. Its README describes installing fastmcp, google-api-python-client, and python-dotenv, setting GOOGLE_API_KEY and GOOGLE_CSE_ID in .env, then running mcp run google_search_mcp_server.py. It also shows a Smithery installation example for Claude Desktop. |
Confirm the README’s current launch instructions and whether its client example matches your installed Claude Desktop version. |
| hunter-arton/google_search_mcp_server | Node.js server documenting web and image search tools. The README lists Node.js v18 or newer, npm, a Google Cloud Platform account, a Google Custom Search API key, a Search Engine ID, and an MCP-compatible client. It describes dependency installation, environment variables, a build step, and launching the built server from Claude Desktop. | Use the repository’s actual clone instructions; its displayed yourusername clone URL is a template, not a confirmed canonical address. |
| artryazanov/google-search-mcp | Python server using Google Custom Search JSON API. Its README describes stdio and SSE/HTTP modes, credentials supplied through environment variables or command-line options, and Docker examples. | Choose the transport your client supports and follow the matching README section rather than combining snippets from different modes. |
| HasData hosted Google Search/SERP MCP | The repository documents a hosted service using streamable HTTP and an x-api-key header, along with client snippets and local stdio launchers for clients that cannot connect directly to its remote endpoint. Its README claims 1,000 free credits per month, equated there to 100 full-SERP calls or 200 calls costing five credits. |
This is a provider-run service with its own account, API key, terms, and trust model. The credit allowance and call equivalences are vendor claims that may change. |
For a local server, you operate the code and its dependencies and provide Google credentials. A hosted endpoint can avoid running the server yourself, but moves the connection and credentials into a provider-specific arrangement. In either case, check the repository and client documentation for current transport and configuration syntax.
Prepare Google Custom Search credentials
The reviewed self-hosted examples distinguish two values: a Google API key and a Custom Search Engine ID. The repository instructions call these GOOGLE_API_KEY and GOOGLE_CSE_ID; another describes the latter as a Search Engine ID. They are not interchangeable. Follow Google’s current console and Programmable Search Engine setup instructions for your account, and confirm API availability and terms before relying on a key.
Rank #2
- Keep keys private. Do not commit a populated
.envfile, place secrets in shared client configuration, or paste them into a public issue. - Use the exact variable names expected by the selected repository; a similarly named variable will not necessarily be read.
- Check the selected server’s README for required API permissions, engine configuration, and any account-specific limitations.
Set up the Python repository locally
The following flow reflects the README-described setup for gradusnikov/google-search-mcp-server. Clone using the repository’s current clone URL shown on GitHub; do not copy a placeholder URL from an example.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
- Clone and enter the repository. Use the HTTPS or SSH clone address displayed by GitHub, then
cdinto the cloned directory. - Install the documented dependencies. In the repository environment, install
fastmcp,google-api-python-client, andpython-dotenv, following any virtual-environment guidance in its README. - Configure credentials. Create a local
.envfile in the location the README expects and setGOOGLE_API_KEY=your_keyandGOOGLE_CSE_ID=your_search_engine_id. Replace the example values; do not include quotes unless the repository’s parser instructions require them. - Start the server. From the directory and environment specified by the README, run
mcp run google_search_mcp_server.py. - Connect your client. Configure an MCP-compatible application to launch or connect to the server as its current documentation specifies. The repository includes a Claude Desktop/Smithery example, but verify current client configuration syntax before copying it.
When the client launches a local server over stdio, it generally manages that process as part of its own MCP configuration. Do not assume that a server command intended for a terminal is also the correct client entry: working directory, executable path, environment, and arguments may need to be expressed separately in the client’s configuration.
Rank #3
Set up the Node.js repository locally
The hunter-arton/google_search_mcp_server README documents Node.js v18 or newer and npm. It also calls for a Google Cloud Platform account, a Custom Search API key, a Search Engine ID, and an MCP-compatible client.
- Clone the actual repository. Copy its clone URL from GitHub, then move into the project directory.
- Install packages. Use the package installation command provided by the repository README; the precise dependency list can change.
- Set both Google values. Configure the environment variables with the names required by the README. Keep the API key and Search Engine ID distinct and private.
- Build the server. Run
npm run buildas documented. - Point the client at the built server. The README shows a Claude Desktop configuration that launches the server with Node. Use the built file path and environment configuration from the current README, adjusted to your local paths and your client’s current configuration guide.
The repository’s README includes a placeholder-style clone URL containing yourusername; that is not a reliable clone address. The repository page is the safer place to obtain the current URL and instructions.
Rank #4
Use the Python server with another transport
If you need a mode other than a locally launched stdio process, the artryazanov/google-search-mcp README describes both stdio and SSE/HTTP operation, plus Docker examples. It documents credentials through environment variables or command-line options. Use the README section matching your chosen mode, and check the exact command, exposed endpoint, and client connection fields there. The available documentation summary does not establish one universal endpoint or command that applies across all transports and client versions.
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →- stdio: appropriate when the MCP client starts a local process and communicates with it directly.
- SSE/HTTP: appropriate only when both server and client support the documented network transport and configuration.
- Docker: useful if you prefer containerized operation, but the image, environment forwarding, port exposure, and persistence details must come from the repository’s current instructions.
Connect through a hosted service
HasData’s repository describes remote streamable HTTP setup using an x-api-key header, as well as local stdio launchers for clients that cannot connect directly to its remote endpoint. Follow its current client-specific snippet rather than assuming that every MCP application accepts the same remote transport or header configuration.
Best Value
With a hosted route, the API key authenticates to the provider rather than directly configuring a local Google-backed server. Review the provider’s terms, data handling, rate limits, and pricing before sending search requests. The repository’s claim of 1,000 free credits monthly—and its stated equivalence to 100 full-SERP calls or 200 five-credit calls—is specific to that offering and can change.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Verify the connection and diagnose failures
After setup, ask the client to invoke the search tool and confirm that it returns results rather than merely showing the server as configured. If it fails, inspect the client logs and the server process output, then isolate the layer that is failing.
| Symptom | Likely cause | What to do |
|---|---|---|
| Server fails immediately at startup | Wrong working directory, missing dependency, unsupported runtime, or incorrect command/path in client configuration. | Run the documented command from the repository directory in the intended environment. For the Node repository, verify Node.js is v18 or newer and that the build completed. |
| Missing or invalid credential error | One of the two Google values is absent, misspelled, or loaded from the wrong environment or .env location. |
Check exact variable names and file location. Confirm API key and Search Engine ID are both configured; never substitute one for the other. |
| Client cannot connect although the server starts | Transport mismatch, incorrect executable or arguments, or stale client configuration syntax. | Match stdio, SSE/HTTP, or streamable HTTP to both sides. Recheck the selected client’s current setup guide and the repository’s corresponding example. |
| Search tool appears but requests fail | Google API/account configuration, key restrictions, engine setup, or provider authentication may be wrong. | Validate the key and engine in the relevant Google configuration, then check server output for the underlying API response. For a hosted service, check its own API key and account status. |
| Works in terminal but not in the AI client | The client may run with a different working directory, PATH, environment, or permissions than your interactive shell. | Use absolute paths where the client guide recommends them and define required environment values in the client configuration without exposing secrets. |
| Remote endpoint is rejected | The client may not support the provider’s transport or custom header mechanism. | Use a documented local launcher if the provider supplies one, or choose a server and transport that your client supports. |
Operational and security considerations
- Repository trust: inspect code and dependency changes before running third-party server code with credentials. Check license, maintenance signals, open issues, and releases; the reviewed project descriptions do not prove security or reliability.
- Credential scope: use appropriately restricted credentials where available and rotate any key that is exposed. Avoid committing secrets or sharing logs that contain them.
- Client compatibility: MCP transport and client configuration details can vary by application and release. A README example is evidence of its documented setup, not a guarantee for every current client version.
- Cost and availability: self-hosted repositories depend on Google Custom Search configuration and any applicable Google account/API terms. Hosted services add provider pricing and limits. The project descriptions do not establish a common cost, quota, latency, uptime, or result coverage across implementations.
Or skip the browser setup
If you need screenshots of pages returned by a search workflow rather than a search MCP server itself, ScreenshotNeo is a separate website screenshot API and MCP server. One GET request can return a PNG, JPEG, WebP, or PDF. Its cookie-consent handling accepts banners like a visitor and removes 60+ known consent platforms, newsletter popups, and chat widgets before capture; each step can be disabled. Bot checks/CAPTCHAs, blank pages, timeouts, failed loads, and cache hits are not billed, and response headers report the page verdict and billing status. Its MCP tools include take_screenshot, get_page_info, and capture_pdf.
Recommended Free Tools
For example, replace the URL with a page you want to capture and supply your API key:
curl -G "https://api.screenshotneo.com/v1/shot" -d access_key=YOUR_API_KEY --data-urlencode url=https://stripe.com -o shot.webp
See the ScreenshotNeo API documentation for the parameters and response details. ScreenshotNeo is not a Google Search MCP server; it is an option for capturing pages after you have a URL. It includes 1,000 screenshots a month free with no card, and paid plans start at $5 for 3,000. An MCP server lets AI agents use its screenshot tools directly. Sign up for ScreenshotNeo and start with 1,000 free screenshots a month, no card required.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

