web-search-mcp

mrkrsl/web-search-mcp

3.4

If you are the rightful owner of web-search-mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A TypeScript MCP server designed for web searches and content extraction, compatible with local LLMs.

Web Search MCP Server for use with Local LLMs

A TypeScript MCP (Model Context Protocol) server that performs web searches and extracts full page content from search results.

Features

  • Multi-Engine Web Search: Tries Google Search first, and automatically falls back to DuckDuckGo if Google fails (e.g., due to bot detection or no results)
  • Full Page Content Extraction: Fetches and extracts complete page content from search results
  • MCP Protocol Compliance: Implements the Model Context Protocol for seamless integration with AI assistants
  • TypeScript: Built with TypeScript for type safety and better development experience
  • CLI Executable: Can be run as a standalone CLI tool or integrated with MCP clients

How It Works

When a search is requested, the server:

  1. Attempts to fetch results from Google Search.
  2. If Google returns a bot detection page, fails, or returns no results, it automatically retries the search using DuckDuckGo.
  3. Extracts and returns the full content from the top results of whichever engine succeeded.

Compatibility

This MCP server has been developed and tested with LM Studio. It has not been tested with other MCP clients.

Model Compatibility

Important: Prioritise using more recent models designated for tool use.

Older models (even those with tool use specified) may not work and may throw a "Model failed to generate a tool call", "The AI has nothing to say" or a different error.

  • ✅ Works with: Recent Deepseek R1 (e.g 0528 works, older models don't)
  • ✅ Works with: Recent Llama 3.1 (e.g 3.1 swallow-8B works, older models don't)
  • ✅ Works well with: Qwen3
  • ✅ Works well with: Gemma 3
  • ❌ Known issues with: Older versions of Llama 3.1, Llama 3.2 and Deepseek R1

Installation (Recommended)

Requirements:

  • Node.js 18.0.0 or higher
  • npm 8.0.0 or higher
  1. Download the latest release zip file from the Releases page
  2. Extract the zip file to a location on your system (e.g., ~/mcp-servers/web-search-mcp/)
  3. Open a terminal in the extracted folder and run:
    npm install
    npm run build
    
    This will create a node_modules folder with all required dependencies and build the project.
  4. Configure your mcp.json to point to the extracted dist/index.js file:
{
  "mcpServers": {
    "web-search": {
      "command": "node",
      "args": ["/path/to/extracted/web-search-mcp/dist/index.js"]
    }
  }
}

Example paths:

  • macOS/Linux: ~/mcp-servers/web-search-mcp/dist/index.js
  • Windows: C:/mcp-servers/web-search-mcp/dist/index.js

Note: You must run npm install in the root of the extracted folder (not in dist/).

Troubleshooting:

  • If npm install fails, try updating Node.js to version 18+ and npm to version 8+
  • If npm run build fails, ensure you have the latest Node.js version installed
  • For older Node.js versions, you may need to use an older release of this project

For Development

git clone https://github.com/mrkrsl/web-search-mcp.git
cd web-search-mcp
npm install
npm run build

Development

npm run dev    # Development with hot reload
npm run build  # Build TypeScript to JavaScript
npm run lint   # Run ESLint
npm run format # Run Prettier

MCP Integration

LM Studio Configuration

Add to your mcp.json:

{
  "mcpServers": {
    "web-search": {
      "command": "node",
      "args": ["/path/to/web-search-mcp/dist/index.js"]
    }
  }
}

MCP Tool

This server provides a full-web-search tool that:

  1. Takes a search query and optional number of results (1-10, default 5)
  2. Performs a web search (tries Google, then DuckDuckGo if needed)
  3. Fetches full page content from each result URL
  4. Returns structured data with search results and extracted content

Example Usage

{
  "name": "full-web-search",
  "arguments": {
    "query": "TypeScript MCP server",
    "limit": 3,
    "includeContent": true
  }
}

Standalone Usage

You can also run the server directly:

# If running from source
npm start

Documentation

See for complete technical details.

License

MIT License - see for details.

Feedback

This is an open source project and we welcome feedback! If you encounter any issues or have suggestions for improvements, please:

  • Open an issue on GitHub
  • Submit a pull request
  • Share your experience with different models or MCP clients