A Model Context Protocol (MCP) server that provides a tool for performing Google searches and retrieving the content of the top results.
- Performs a Google search for a given query.
- Identifies the top 5 non-social media search results.
- Crawls the content of the top results.
- Returns the crawled content as a single string.
- Python 3.13+
- uv: This project uses
uv
for package management. If you don't have it, install it with:curl -LsSf https://astral.sh/uv/install.sh | sh
-
Clone the repository:
git clone https://github.com/hexdecimal16/web-search-mcp cd web-search-mcp
-
Create and activate a virtual environment:
uv venv source .venv/bin/activate
-
Install dependencies: The project's dependencies are defined in
pyproject.toml
. Install them usinguv
:uv sync
This tool is designed to be launched by an MCP client application (e.g., Claude Desktop) using stdio
as the transport mechanism.
You must configure your MCP client to launch the tool. The following JSON configuration uses uv
to run the web_search.py
script.
Note: This configuration is based on the user's specific request. For some MCP client environments that have issues with asyncio
event loop conflicts, a different configuration may be needed.
{
"mcpServers": {
"web-search": {
"command": "uv",
"args": [
"--directory",
"/path/to/your/project/web-search-mcp",
"run",
"web_search.py",
"--timeout=15"
]
}
}
}
Important: Replace /path/to/your/project/web-search-mcp
with the correct absolute path to this project on your filesystem.
To verify that the script is syntactically correct and the tool is functioning, you can run the included tests using pytest
.
-
Install test dependencies:
uv pip install pytest pytest-asyncio
-
Run the tests:
pytest