freeWeb MCP Server
Allows searching the web using DuckDuckGo and extracting page content via web_search and web_visit tools.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@freeWeb MCP Serversearch for latest AI research papers"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
freeWeb MCP Server
A lightweight MCP (Model Context Protocol) server providing web search and page content extraction tools powered by DuckDuckGo.
Tools
web_search- Search the web using DuckDuckGo, returning title, URL, and snippet for each result.web_visit- Visit a URL and extract its page content in various formats (markdown, plain text, rich text).
Related MCP server: local-websearch-mcp
Quick Start
1. Create the conda environment
conda create -n mcp python=3.12
conda activate mcp
pip install -r requirements.txt2. Run the server
python main.py # HTTP mode on http://127.0.0.1:8101/mcp
python main.py --stdio # Stdio mode (for MCP clients)3. Run tests
python test_server.pyBrowser-based MCP Clients
MCP 2.x returns a plain Starlette app with no built-in CORS handling. When connecting from a browser-based MCP client (e.g., at http://127.0.0.1:8080), add CORSMiddleware:
from starlette.middleware.cors import CORSMiddleware
app.add_middleware(
CORSMiddleware,
allow_origins=["http://127.0.0.1:8080"],
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
expose_headers=["Mcp-Session-Id", "Mcp-Protocol-Version"],
)The SDK intentionally provides no opinionated middleware — auth, rate limiting, and CORS are left to the user.
Project Structure
freeWeb/
├── main.py # Server entry point (HTTP + stdio modes)
├── test_server.py # Test suite (run with: python test_server.py)
└── tools/
├── __init__.py
├── search.py # web_search tool
└── visit.py # web_visit toolMCP Client Configuration
Stdio transport
{
"mcpServers": {
"freeWeb": {
"command": "conda",
"args": ["run", "-n", "mcp", "python", "/path/to/freeWeb/main.py", "--stdio"]
}
}
}HTTP transport (browser clients)
Connect your browser-based MCP client to http://127.0.0.1:8101/mcp with CORS configured as shown above.
Requirements
See requirements.txt. Test uses starlette (TestClient), which is a transitive dependency of mcp.
Package | Version |
mcp | 2.0.0 |
ddgs | 9.14.4 |
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for Google search results via SERP API
Serper MCP — wraps the Serper Google Search API (serper.dev)
Docs: https://docs.keenable.ai/mcp-server Keenable is a free, remote MCP server that gives agents access to the web index. Search the web with ranked results and date/site filters, then fetch any indexed page as clean markdown. Works out of the box with no account or API key.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceLightweight MCP server for DuckDuckGo search with HTML fallback, safe webpage fetching, caching, and clean text extraction.AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceSmall Python MCP server that provides web search and page fetching tools via DuckDuckGo, requiring no API key.Apache 2.0
- FlicenseNot gradedqualityCmaintenanceMCP server that enables web search via DuckDuckGo and readable content extraction from HTML pages using FastMCP.-
- FlicenseAqualityDmaintenanceA simple MCP server that provides web search functionality via DuckDuckGo, returning titles, URLs, and descriptions for results. Configurable result limit.1-