Web Search MCP Server
Enables AI assistants to search the web, fetch news, and retrieve page content via DuckDuckGo or Brave Search, with domain whitelisting and audit logging.
README
Web Search MCP Server
An Apify Actor that runs a persistent Model Context Protocol (MCP) server, giving AI assistants real-time web search capabilities. Connect Claude Desktop, Cursor, or any MCP-compatible AI client to search the web without leaving your workflow.
Features
- 🔍 search_web — Search the web via DuckDuckGo (free, no key) or Brave Search (higher quality)
- 📰 search_news — Search for recent news articles
- 📄 fetch_page — Fetch and extract clean text content from any URL
- 🔐 Domain whitelist — Restrict
fetch_pageto approved domains - 📊 Audit log — Optionally log all searches to an Apify dataset
- ⚡ Always-on — Runs in Apify Standby mode for persistent 24/7 availability
Quick Start
1. Run on Apify
- Go to the Apify Console and find this actor
- Click Try for free → configure inputs → Start
- Copy the Standby URL from the actor run logs (looks like
https://web-search-mcp.username.apify.actor)
2. Connect to Claude Desktop
Add the following to your Claude Desktop claude_desktop_config.json:
{
"mcpServers": {
"web-search": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://YOUR-STANDBY-URL/sse"]
}
}
}
Restart Claude Desktop and you'll see the tools appear in the interface.
3. Connect to Cursor / other MCP clients
Set the SSE URL to: https://YOUR-STANDBY-URL/sse
Input Configuration
| Parameter | Type | Default | Description |
|---|---|---|---|
defaultMaxResults |
integer | 10 |
Default number of results returned per search |
braveApiKey |
string | — | Optional Brave Search API key for better results |
enableFetchTool |
boolean | true |
Enable the fetch_page tool |
enableNewsTool |
boolean | true |
Enable the search_news tool |
allowedDomains |
string[] | [] |
Whitelist domains for fetch_page (empty = all allowed) |
logSearches |
boolean | false |
Log all queries to the Apify dataset |
MCP Tools Reference
search_web
Search the web and get ranked results.
Parameters:
query(string, required) — The search querymaxResults(integer, optional, default: 10) — Number of results (1–50)safeSearch(enum, optional) —strict,moderate, oroff
Returns: Ranked list of results with title, URL, and snippet.
search_news
Search for recent news articles.
Parameters:
query(string, required) — News search querymaxResults(integer, optional) — Number of articles (1–20)
Returns: List of news articles with publication time when available.
fetch_page
Fetch a web page and return its clean text content.
Parameters:
url(string, required) — Full URL to fetchmaxLength(integer, optional, default: 8000) — Max characters (500–50000)
Returns: Page title, meta description, and extracted body text.
API Endpoints
| Endpoint | Method | Description |
|---|---|---|
/sse |
GET | MCP SSE connection endpoint |
/messages?sessionId=X |
POST | MCP message handler |
/health |
GET | Health check + active sessions |
/ |
GET | Server info and instructions |
Architecture
AI Client (Claude, Cursor, etc.)
│ SSE connection
▼
Express HTTP Server (:3000)
│
MCP Server (McpServer)
│
┌─────┴──────────┐
│ Search Tools │
└─────┬──────────┘
│
┌─────┴─────────────────────┐
│ DuckDuckGo HTML API │ (default, no key needed)
│ Brave Search REST API │ (optional, with API key)
└────────────────────────────┘
Local Development
git clone https://github.com/your-org/web-search-mcp
cd web-search-mcp
npm install
npm start
The server starts on http://localhost:3000. Connect any MCP client to http://localhost:3000/sse.
Example Usage (in Claude)
Once connected, you can ask Claude:
"Search for the latest news about AI regulations in Europe"
"What are the top Python web frameworks in 2025? Search the web and summarize."
"Fetch the content from https://example.com/blog/post and summarize the key points."
License
Apache 2.0 — see LICENSE
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.