Skip to main content
Glama
vikrambhat2

Web Search Tool

by vikrambhat2
README.md

# ๐Ÿ”Œ MCP Server: Web Search Tool (FastMCP + Serper)

A lightweight, Claude-ready **MCP (Model Context Protocol) server** that wraps the [Serper.dev](https://serper.dev) Google Search API using Python, LangChain, and FastMCP.

This server exposes a structured, LLM-callable tool that performs a Google search and returns a filtered list of results along with a summary answer.



## ๐Ÿš€ Features

- โœ… LLM-ready tool with structured input/output
- โœ… Works out-of-the-box with **Claude Desktop**, **ChatGPT**, or any **MCP-compatible agent**
- โœ… Built using [FastMCP](https://github.com/epfml/fastmcp)
- โœ… Real-world API integration via `GoogleSerperAPIWrapper`
- โœ… Easy to extend with more tools



## ๐Ÿ“ฆ Requirements

- Python 3.10+
- A free [Serper.dev API key](https://serper.dev/)
- Optional: [Claude Desktop](https://www.anthropic.com/index/claude-desktop) for local tool calling
- Optional: [MCP Inspector](https://github.com/epfml/mcp-inspector) for manual testing



## ๐Ÿ”ง Installation

1. Clone the repo:
   ```
   git clone https://github.com/vikrambhat2/mcp-server-web-search.git
   cd mcp-server-web-search
```

2. Install dependencies:

   ```
   pip install -r requirements.txt
   ```

3. Set environment variables in a `.env` file:

   ```
   SERPER_API_KEY=your_serper_api_key_here
   PORT=10000
   ```

4. Run the server:

   ```
   python server.py
   ```

---

## ๐Ÿ” Tool Overview

This MCP server exposes a single tool: `google_search_tool`.

### ๐Ÿ“ค Input

```json
{
  "input": "Your search query string"
}
```

### ๐Ÿ“ฅ Output

```json
{
  "results": [
    {
      "title": "Result Title",
      "link": "https://...",
      "snippet": "Brief description"
    },
    ...
  ],
  "answer": "Concise answer generated by Serper"
}
```

---

## ๐Ÿงช Testing

### โœ… With `curl`

```bash
curl -X POST http://localhost:10000/api/tools/google_search_tool \
     -H "Content-Type: application/json" \
     -d '{"input": "latest AI trends 2025"}'
```

### ๐Ÿงช With Claude Desktop

1. Open **Claude Desktop** โ†’ `Settings โ†’ Toolcalling`

2. Add your MCP server:

   ```json
   {
     "mcpServers": {
       "googleSearch": {
         "url": "http://localhost:10000/mcp",
         "streaming": true
       }
     }
   }
   ```

3. Ask Claude something like:

   > "Use the `google_search_tool` to find top remote AI conferences in 2025."

### ๐Ÿงฐ With MCP Inspector (GUI)

1. Install MCP Inspector:

   ```bash
   pip install mcp-inspector
   mcp-inspector
   ```

2. Visit `http://localhost:8080`

3. Paste in `http://localhost:10000/mcp`

4. Explore your tool, prompt, and test it with real inputs.

---

## ๐ŸŒ Deployment (Optional)

You can deploy this server for free using [Render](https://render.com):

1. Push this project to a GitHub repo
2. Create a new **Web Service** on Render
3. Add build/start commands:

   * Build: `pip install -r requirements.txt`
   * Start: `python app.py`
4. Add environment variables:

   * `SERPER_API_KEY`
   * `PORT=10000`
5. Your server will be live at:
   `https://yourproject.onrender.com/mcp`

You can now plug it into Claude or your agents remotely.

---

## ๐Ÿ“ File Structure

```
โ”œโ”€โ”€ app.py               # Main MCP server script
โ”œโ”€โ”€ .env                 # API key and port config
โ”œโ”€โ”€ requirements.txt     # Python dependencies
โ””โ”€โ”€ README.md            # This file
```

---

## ๐Ÿ“š References

* ๐Ÿ”Œ [FastMCP](https://github.com/epfml/fastmcp)
* ๐Ÿ” [Serper.dev](https://serper.dev/)
* ๐Ÿงช [MCP Inspector](https://github.com/epfml/mcp-inspector)
* ๐Ÿค– [Claude + MCP Guide](https://www.weavely.ai/blog/claude-mcp)



## ๐Ÿ›  Maintainer

Built by [@vikrambhat2](https://github.com/ikrambhat2)
Pull requests and forks welcome!