https://github.com/marcopesani/mcp-server-serper
Serper MCP Server supporting search and webpage scraping
https://github.com/marcopesani/mcp-server-serper
Last synced: 3 months ago
JSON representation
Serper MCP Server supporting search and webpage scraping
- Host: GitHub
- URL: https://github.com/marcopesani/mcp-server-serper
- Owner: marcopesani
- License: mit
- Created: 2025-02-20T21:19:00.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-03-13T00:28:41.000Z (8 months ago)
- Last Synced: 2025-03-24T18:20:02.088Z (8 months ago)
- Language: TypeScript
- Size: 81.1 KB
- Stars: 5
- Watchers: 1
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- toolsdk-mcp-registry - ✅ serper-search-scrape-mcp-server
- toolsdk-mcp-registry - ✅ serper-search-scrape-mcp-server
- metorial-index - Serper Search and Scrape - Provides web search capabilities and webpage scraping functions utilizing the Serper API, enabling content extraction and rich search result retrieval. (APIs and HTTP Requests)
- awesome-mcp-servers - **mcp-server-serper** - Serper MCP Server supporting search and webpage scraping `typescript` `mcp` `server` `api` `web` `npm install marcopesani/mcp-server-serper` (🌐 Web Development)
README
# 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.
## 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.