serper-search-scrape-mcp-server
by marcopesani
Verified
# Serper Search and Scrape MCP Server
[](https://smithery.ai/server/@marcopesani/mcp-server-serper)
A TypeScript-based MCP server that provides web search and webpage scraping capabilities using the Serper API. This server integrates with Claude Desktop to enable powerful web search and content extraction features.
<a href="https://glama.ai/mcp/servers/5zk327i0pj">
<img width="380" height="200" src="https://glama.ai/mcp/servers/5zk327i0pj/badge" alt="serper-search-scrape-mcp-server MCP server" />
</a>
## Features
### Tools
- `google_search` - Perform web searches via Serper API
- Rich search results including organic results, knowledge graph, "people also ask", and related searches
- Supports region and language targeting
- Optional parameters for location, pagination, time filters, and autocorrection
- Supports advanced search operators:
- `site`: Limit results to specific domain
- `filetype`: Limit to specific file types (e.g., 'pdf', 'doc')
- `inurl`: Search for pages with word in URL
- `intitle`: Search for pages with word in title
- `related`: Find similar websites
- `cache`: View Google's cached version of a specific URL
- `before`: Date before in YYYY-MM-DD format
- `after`: Date after in YYYY-MM-DD format
- `exact`: Exact phrase match
- `exclude`: Terms to exclude from search results
- `or`: Alternative terms (OR operator)
- `scrape` - Extract content from web pages
- Get plain text and optional markdown content
- Includes JSON-LD and head metadata
- Preserves document structure
## Requirements
- Node.js >= 18
- Serper API key (set as `SERPER_API_KEY` environment variable)
## Development
Install dependencies:
```bash
npm install
```
Build the server:
```bash
npm run build
```
For development with auto-rebuild:
```bash
npm run watch
```
Run tests:
```bash
npm test # Run all tests
npm run test:watch # Run tests in watch mode
npm run test:coverage # Run tests with coverage
npm run test:integration # Run integration tests
```
### Environment Variables
Create a `.env` file in the root directory:
```
SERPER_API_KEY=your_api_key_here
```
### Debugging
Since MCP servers communicate over stdio, debugging can be challenging. We recommend using the [MCP Inspector](https://github.com/modelcontextprotocol/inspector), which is available as a package script:
```bash
npm run inspector
```
The Inspector will provide a URL to access debugging tools in your browser.
## Installation
### Installing via Smithery
To install Serper Search and Scrape for Claude Desktop automatically via [Smithery](https://smithery.ai/server/@marcopesani/mcp-server-serper):
```bash
npx -y @smithery/cli install @marcopesani/mcp-server-serper --client claude
```
### Claude Desktop
Add the server config at:
- MacOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"serper-search": {
"command": "npx",
"args": ["-y", "serper-search-scrape-mcp-server"],
"env": {
"SERPER_API_KEY": "your_api_key_here"
}
}
}
}
```
### Cline
1. Open the Cline extension settings
2. Open "MCP Servers" tab
3. Click on "Configure MCP Servers"
4. Add the server config:
```json
{
"mcpServers": {
"github.com/marcopesani/mcp-server-serper": {
"command": "npx",
"args": ["-y", "serper-search-scrape-mcp-server"],
"env": {
"SERPER_API_KEY": "your_api_key_here"
},
"disabled": false,
"autoApprove": ["google_search", "scrape"]
}
}
}
```
Additional Cline configuration options:
- `disabled`: Set to `false` to enable the server
- `autoApprove`: List of tools that don't require explicit approval for each use
### Cursor
1. Open the Cursor settings
2. Open "Features" settings
3. In the "MCP Servers" section, click on "Add new MCP Server"
4. Choose a name, and select "command" as "Type"
5. In the "Command" field, enter the following:
```
env SERPER_API_KEY=your_api_key_here npx -y serper-search-scrape-mcp-server
```
### Docker
You can also run the server using Docker. First, build the image:
```bash
docker build -t mcp-server-serper .
```
Then run the container with your Serper API key:
```bash
docker run -e SERPER_API_KEY=your_api_key_here mcp-server-serper
```
Alternatively, if you have your environment variables in a `.env` file:
```bash
docker run --env-file .env mcp-server-serper
```
For development, you might want to mount your source code as a volume:
```bash
docker run -v $(pwd):/app --env-file .env mcp-server-serper
```
Note: Make sure to replace `your_api_key_here` with your actual Serper API key.