Skip to main content
Glama
rendyfebry

Google PSE MCP Server

by rendyfebry
README.md
[![MseeP.ai Security Assessment Badge](https://mseep.net/pr/rendyfebry-google-pse-mcp-badge.png)](https://mseep.ai/app/rendyfebry-google-pse-mcp)

# Google Programmable Search Engine (PSE) MCP Server

A Model Context Protocol (MCP) server for the Google Programmable Search Engine (PSE) API. This server exposes tools for searching the web with Google Custom Search engine, making them accessible to MCP-compatible clients such as VSCode, Copilot, and Claude Desktop.

## Installation Steps

You do NOT need to clone this repository manually or run any installation commands yourself. Simply add the configuration below to your respective MCP client—your client will automatically install and launch the server as needed.

### VS Code Copilot Configuration 

Open Command Palette → Preferences: Open Settings (JSON), then add:

`settings.json`
```jsonc
{
  // Other settings...
  "mcp": {
    "servers": {
      "google-pse-mcp": {
        "command": "npx",
        "args": [
          "-y",
          "google-pse-mcp",
          "https://www.googleapis.com/customsearch",
          "<api_key>",
          "<cx>",
          "<siteRestricted>" // optional: true/false, defaults to true
        ]
      }
    }
  }
}
```

### Cline MCP Configuration Example

If you are using [Cline](https://github.com/saoudrizwan/cline), add the following to your `cline_mcp_settings.json` (usually found in your VSCode global storage or Cline config directory):

- macOS: `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`
- Windows: `%APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json`

```json
{
  "mcpServers": {
    "google-pse-mcp": {
      "disabled": false,
      "timeout": 60,
      "command": "npx",
      "args": [
        "-y",
        "google-pse-mcp",
        "https://www.googleapis.com/customsearch",
        "<api_key>",
        "<cx>",
        "<siteRestricted>" // optional flag, true/false, defaults to true
      ],
      "transportType": "stdio"
    }
  }
}
```


### Important Notes

Don't forget to replace `<api_key>` and `<cx>` with your credentials in the configuration above.
You can also provide an optional `<siteRestricted>` flag (`true` or `false`) as the last argument to control which Google Custom Search endpoint is used. If omitted, it defaults to `true`.


## Available Tools

This MCP server provides the following tool:

1. `search`: Search the web with Google Programmable Search Engine

   - Parameters:
     - `q` (string, required): Search query
     - `page` (integer, optional): Page number
     - `size` (integer, optional): Number of search results to return per page (1-10)
     - `sort` (string, optional): Sort expression (only 'date' is supported)
     - `safe` (boolean, optional): Enable safe search filtering
     - `lr` (string, optional): Restrict search to a particular language (e.g., lang_en)
     - `siteRestricted` (boolean, optional): Use the Site Restricted API endpoint; defaults to true unless overridden via CLI flag

## Example Usage

```python
# Search for "artificial intelligence"
result = await use_mcp_tool(
    server_name="google-pse-mcp",
    tool_name="search",
    arguments={
        "q": "artificial intelligence",
        "size": 5,
        "safe": True
    }
)
```

## Useful Links

- [Model Context Protocol Servers](https://github.com/modelcontextprotocol/servers)
- [Google Programmable Search Engine Intro](https://developers.google.com/custom-search/v1/overview)

TDQS

B3.1/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of confusion or overlap between tools. The tool's purpose is clearly defined as web search, making it perfectly distinct.

Naming Consistency5/5

A single tool inherently has perfect naming consistency, as there are no other tools to compare against. The name 'search' is straightforward and follows a simple verb pattern.

Tool Count2/5

A single tool for a Google search server is too minimal for typical agent workflows. While it covers the core function, it lacks related operations like filtering results, handling pagination, or accessing other Google services, making it feel thin and limiting.

Completeness2/5

The tool set is severely incomplete for a Google search domain. It only provides basic search functionality, missing essential features such as advanced search parameters, result parsing, or integration with other Google APIs (e.g., Maps, Translate), which would be expected in a more comprehensive server.

Maintenance

ActivityInactive
ResponsivenessNo issues