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:
Build the server:
For development with auto-rebuild:
Run tests:
Environment Variables
Create a `.env` file in the root directory:
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:
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):