Custom Search MCP Server
Provides access to Google's Custom Search API, allowing searches to be performed programmatically across the web or specific sites using Google's search technology.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Custom Search MCP Serversearch for recent advancements in quantum computing"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Server
This project is an MCP (Multi-Agent Conversation Protocol) Server for the given OpenAPI URL - https://api.apis.guru/v2/specs/googleapis.com/customsearch/v1/openapi.json, auto-generated using AG2's MCP builder.
Prerequisites
Python 3.9+
pip and uv
Related MCP server: Custom Search MCP Server
Installation
Clone the repository:
git clone <repository-url> cd mcp-serverInstall dependencies: The .devcontainer/setup.sh script handles installing dependencies using
pip install -e ".[dev]". If you are not using the dev container, you can run this command manually.pip install -e ".[dev]"Alternatively, you can use
uv:uv pip install --editable ".[dev]"
Development
This project uses ruff for linting and formatting, mypy for static type checking, and pytest for testing.
Linting and Formatting
To check for linting issues:
ruff checkTo format the code:
ruff formatThese commands are also available via the scripts/lint.sh script.
Static Analysis
To run static analysis (mypy, bandit, semgrep):
./scripts/static-analysis.shThis script is also configured as a pre-commit hook in .pre-commit-config.yaml.
Running Tests
To run tests with coverage:
./scripts/test.shThis will run pytest and generate a coverage report. For a combined report and cleanup, you can use:
./scripts/test-cov.shPre-commit Hooks
This project uses pre-commit hooks defined in .pre-commit-config.yaml. To install the hooks:
pre-commit installThe hooks will run automatically before each commit.
Running the Server
The MCP server can be started using the mcp_server/main.py script. It supports different transport modes (e.g., stdio, sse, streamable-http).
To start the server (e.g., in stdio mode):
python mcp_server/main.py stdioThe server can be configured using environment variables:
CONFIG_PATH: Path to a JSON configuration file (e.g., mcp_server/mcp_config.json).CONFIG: A JSON string containing the configuration.SECURITY: Environment variables for security parameters (e.g., API keys).
Refer to the if __name__ == "__main__": block in mcp_server/main.py for details on how these are loaded.
The tests/test_mcp_server.py file demonstrates how to start and interact with the server programmatically for testing.
Building and Publishing
This project uses Hatch for building and publishing. To build the project:
hatch buildTo publish the project:
hatch publishThese commands are also available via the scripts/publish.sh script.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for Google search results via SERP API
Serper MCP — wraps the Serper Google Search API (serper.dev)
Docs: https://docs.keenable.ai/mcp-server Keenable is a free, remote MCP server that gives agents access to the web index. Search the web with ranked results and date/site filters, then fetch any indexed page as clean markdown. Works out of the box with no account or API key.
Related MCP Servers
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables LLMs to perform web searches using Google's Custom Search API through a standardized interface.147MIT
- -licenseNot gradedqualityNot gradedmaintenanceAn MCP (Multi-Agent Conversation Protocol) Server that enables interaction with Google's Custom Search API, allowing agents to perform customized web searches through natural language requests.-
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server for integrating Google Search capabilities into AI applications.-
- AlicenseNot gradedqualityDmaintenanceMCP server for internet search via direct Google and DuckDuckGo HTML scraping with AI-powered result normalization and optional summarization, requiring no API keys for search.MIT