logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

serper-integration-backend

Facilitates dynamic fetching of current information from Google search results for consumption by Large Language Models via the Serper API gateway.

Author

serper-integration-backend logo

garylab

No License

Quick Info

GitHub GitHub Stars 15
NPM Weekly Downloads 0
Tools 1
Last Updated 2026-02-19

Tags

searchgoogleserpersearch resultsllms serpersearch information

Serper Connector Service

smithery badge

This Model Context Protocol (MCP) backend furnishes live Google query outcomes by leveraging the Serper indexing service. It empowers artificial intelligence agents to procure timely, external data.

Exposed Endpoints (Tools)

Each function maps to a specific Google search capability, with parameters configurable as defined here: Schema Definitions:

  • google_search: General web result retrieval.
  • google_search_images: Image search functionality.
  • google_search_videos: Video result lookup.
  • google_search_places: Local place information querying (See L20).
  • google_search_maps: Map result fetching (See L24).
  • google_search_reviews: Specific business review aggregation (See L34).
  • google_search_news: Current events and news retrieval.
  • google_search_shopping: E-commerce product information (See L45).
  • google_search_lens: Google Lens style visual search (See L50).
  • google_search_scholar: Academic literature search (See L20).
  • google_search_parents: Hierarchical result context (See L56).
  • google_search_autocomplete: Query suggestion functionality (See L20).
  • webpage_scrape: Utility for fetching and parsing arbitrary URL content (See L62).

Deployment Instructions

Installation via Smithery CLI

For automated setup targeting Claude Desktop environments through Smithery:

npx -y @smithery/cli install @garylab/serper-mcp-server --client claude
  1. Ensure the uv package manager is installed on your system.

  2. Configure your MCP client or Claude settings file (claude_desktop_config.json) to reference the serper backend: json { "mcpServers": { "serper": { "command": "uvx", "args": ["serper-mcp-server"], "env": { "SERPER_API_KEY": "<Your Serper API key>" } } } } The uvx utility will autonomously fetch serper-mcp-server from pypi.org and integrate it with your client.

Project Integration (Local Python Environment)

  1. Incorporate the dependency into your client's requirements.txt: txt serper-mcp-server

  2. Execute dependency installation: shell pip install -r requirements.txt

  3. Update your client configuration block: json { "mcpServers": { "serper": { "command": "python3", "args": ["-m", "serper_mcp_server"], "env": { "SERPER_API_KEY": "<Your Serper API key>" } } } }

Global Installation (System-wide)

  1. Verify that pip or pip3 is available in your system path. bash pip install serper-mcp-server # OR pip3 install serper-mcp-server

  2. Update your client configuration or Claude preferences to link the globally installed server: json { "mcpServers": { "serper": { "command": "python3", "args": ["serper-mcp-server"], "env": { "SERPER_API_KEY": "<Your Serper API key>" } } } }

Diagnostic Procedures

Use the MCP inspector tool for troubleshooting. For installations managed by uvx:

npx @modelcontextprotocol/inspector uvx serper-mcp-server

Alternatively, if running from a cloned repository or specific development path:

git clone https://github.com/garylab/serper-mcp-server.git
cd serper-mcp-server
npx @modelcontextprotocol/inspector uv run serper-mcp-server -e SERPER_API_KEY=<the key>

Licensing Information

The serper-mcp-server software is distributed under the permissive MIT License. This grants broad freedoms for usage, modification, and redistribution, contingent upon adherence to the terms outlined in the project's LICENSE file.

WIKIPEDIA: XMLHttpRequest (XHR) is an API in the form of a JavaScript object whose methods transmit HTTP requests from a web browser to a web server. The methods allow a browser-based application to send requests to the server after page loading is complete, and receive information back. XMLHttpRequest is a component of Ajax programming. Prior to Ajax, hyperlinks and form submissions were the primary mechanisms for interacting with the server, often replacing the current page with another one.

== Genesis == The underpinning concept for XMLHttpRequest originated in 2000 via developers at Microsoft Outlook. This idea was subsequently integrated into Internet Explorer 5 (1999). Initially, the syntax did not utilize the XMLHttpRequest identifier; instead, developers employed ActiveXObject("Msxml2.XMLHTTP") and ActiveXObject("Microsoft.XMLHTTP"). By the release of Internet Explorer 7 (2006), native support for the standardized XMLHttpRequest identifier was universal across browsers. The XMLHttpRequest identifier has since solidified its role as the baseline standard across all major browser engines, including Mozilla's Gecko (2002), Safari 1.2 (2004), and Opera 8.0 (2005).

=== Standardization Trajectory === The World Wide Web Consortium (W3C) published the initial Working Draft specification for the XMLHttpRequest object on April 5, 2006. A subsequent Level 2 specification was issued by the W3C on February 25, 2008, introducing features for progress monitoring, enabling cross-site data exchange, and facilitating byte stream handling. By the close of 2011, the Level 2 enhancements were formally merged back into the primary specification. In late 2012, responsibility for maintaining the evolving standard transitioned to the WHATWG, which now manages it as a living document defined using Web IDL.

== Operational Flow == Executing a request via XMLHttpRequest generally involves a sequence of distinct programming actions.

  1. Instantiation: Create an instance of the XMLHttpRequest object by invoking its constructor.
  2. Configuration: Invoke the "open" method to define the request protocol (type), specify the target resource URI, and select between blocking (synchronous) or non-blocking (asynchronous) execution.
  3. Listener Setup: For asynchronous operations, establish an event handler to receive notifications when the request's transactional state evolves.
  4. Transmission: Begin the network operation by calling the "send" method, optionally passing data to be transmitted to the server.
  5. Response Handling: Monitor the event listener. Upon successful completion (state transitions to 4, the "done" state), the server's reply payload is typically accessible via the "responseText" property. Beyond these fundamentals, XMLHttpRequest provides extensive control over request methodology and response processing. Custom HTTP headers can be appended to guide server behavior, and payloads can be uploaded via the argument passed to "send." Furthermore, the received data can be automatically parsed from JSON into native JavaScript objects, or processed incrementally as chunks arrive, avoiding waiting for the full transmission. Operations can also be terminated prematurely or configured with timeout constraints.

== Inter-domain Communication ==

In the formative period of the World Wide Web, limitations existed regarding the ability to initi

See Also

`