WebSearch
The WebSearch server enables you to:
Search: Perform advanced web searches to retrieve up-to-date information
Extract: Obtain specific information from web pages based on natural language prompts, with options to supplement with web searches and include sources
Crawl: Navigate through websites from a starting URL, with configurable depth and page limits
Scrape: Retrieve the full content from specified web pages
Uses .ENV files to manage API keys and configuration settings for the WebSearch server.
Provides integration for repository management, allowing users to fork, clone, and contribute to the WebSearch project.
Supports output of crawled and extracted web content in Markdown format for improved readability and structure.
Leverages OpenAI capabilities for enhanced features in web search and content analysis, requiring an API key for AI-powered functionality.
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., "@WebSearch search for recent advancements in quantum computing"
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.
WebSearch - Advanced Web Search and Content Extraction Tool
A powerful web search and content extraction tool built with Python, leveraging the Firecrawl API for advanced web scraping, searching, and content analysis capabilities.
🚀 Features
Advanced Web Search: Perform intelligent web searches with customizable parameters
Content Extraction: Extract specific information from web pages using natural language prompts
Web Crawling: Crawl websites with configurable depth and limits
Web Scraping: Scrape web pages with support for various output formats
MCP Integration: Built as a Model Context Protocol (MCP) server for seamless integration
Related MCP server: Firecrawl MCP Server
📋 Prerequisites
Python 3.8 or higher
uv package manager
Firecrawl API key
OpenAI API key (optional, for enhanced features)
Tavily API key (optional, for additional search capabilities)
🛠️ Installation
Install uv:
# On Windows (using pip)
pip install uv
# On Unix/MacOS
curl -LsSf https://astral.sh/uv/install.sh | sh
# Add uv to PATH (Unix/MacOS)
export PATH="$HOME/.local/bin:$PATH"
# Add uv to PATH (Windows - add to Environment Variables)
# Add: %USERPROFILE%\.local\binClone the repository:
git clone https://github.com/yourusername/websearch.git
cd websearchCreate and activate a virtual environment with uv:
# Create virtual environment
uv venv
# Activate on Windows
.\.venv\Scripts\activate.ps1
# Activate on Unix/MacOS
source .venv/bin/activateInstall dependencies with uv:
# Install from requirements.txt
uv syncSet up environment variables:
# Create .env file
touch .env
# Add your API keys
FIRECRAWL_API_KEY=your_firecrawl_api_key
OPENAI_API_KEY=your_openai_api_key🎯 Usage
Setting Up With Claude for Desktop
Instead of running the server directly, you can configure Claude for Desktop to access the WebSearch tools:
Locate or create your Claude for Desktop configuration file:
Windows:
%env:AppData%\Claude\claude_desktop_config.jsonmacOS:
~/Library/Application Support/Claude/claude_desktop_config.json
Add the WebSearch server configuration to the
mcpServerssection:
{
"mcpServers": {
"websearch": {
"command": "uv",
"args": [
"--directory",
"D:\\ABSOLUTE\\PATH\\TO\\WebSearch",
"run",
"main.py"
]
}
}
}Make sure to replace the directory path with the absolute path to your WebSearch project folder.
Save the configuration file and restart Claude for Desktop.
Once configured, the WebSearch tools will appear in the tools menu (hammer icon) in Claude for Desktop.
Available Tools
Search
Extract Information
Crawl Websites
Scrape Content
📚 API Reference
Search
query(str): The search queryReturns: Search results in JSON format
Extract
urls(List[str]): List of URLs to extract information fromprompt(str): Instructions for extractionenableWebSearch(bool): Enable supplementary web searchshowSources(bool): Include source referencesReturns: Extracted information in specified format
Crawl
url(str): Starting URLmaxDepth(int): Maximum crawl depthlimit(int): Maximum pages to crawlReturns: Crawled content in markdown/HTML format
Scrape
url(str): Target URLReturns: Scraped content with optional screenshots
🔧 Configuration
Environment Variables
The tool requires certain API keys to function. We provide a .env.example file that you can use as a template:
Copy the example file:
# On Unix/MacOS
cp .env.example .env
# On Windows
copy .env.example .envEdit the
.envfile with your API keys:
# OpenAI API key - Required for AI-powered features
OPENAI_API_KEY=your_openai_api_key_here
# Firecrawl API key - Required for web scraping and searching
FIRECRAWL_API_KEY=your_firecrawl_api_key_hereGetting the API Keys
OpenAI API Key:
Visit OpenAI's platform
Sign up or log in
Navigate to API keys section
Create a new secret key
Firecrawl API Key:
Visit Firecrawl's website
Create an account
Navigate to your dashboard
Generate a new API key
If everything is configured correctly, you should receive a JSON response with search results.
Troubleshooting
If you encounter errors:
Ensure all required API keys are set in your
.envfileVerify the API keys are valid and have not expired
Check that the
.envfile is in the root directory of the projectMake sure the environment variables are being loaded correctly
🤝 Contributing
Fork the repository
Create your feature branch (
git checkout -b feature/AmazingFeature)Commit your changes (
git commit -m 'Add some AmazingFeature')Push to the branch (
git push origin feature/AmazingFeature)Open a Pull Request
📝 License
This project is licensed under the MIT License - see the LICENSE file for details.
🙏 Acknowledgments
Firecrawl for their powerful web scraping API
OpenAI for AI capabilities
MCPThe MCP community for the protocol specification
📬 Contact
José Martín Rodriguez Mortaloni - @m4s1t425 - jmrodriguezm13@gmail.com
Made with ❤️ using Python and Firecrawl
Available Tools
4 toolscrawlB
Crawls a website starting from the specified URL and extracts content from multiple pages. Args: - url: The complete URL of the web page to start crawling from - maxDepth: The maximum depth level for crawling linked pages - limit: The maximum number of pages to crawl
Returns:
- Content extracted from the crawled pages in markdown and HTML format
Inputs: url (required), maxDepth (required), limit (required).
extractB
Extracts specific information from a web page based on a prompt. Args: - url: The complete URL of the web page to extract information from - prompt: Instructions specifying what information to extract from the page - enabaleWebSearch: Whether to allow web searches to supplement the extraction - showSources: Whether to include source references in the response
Returns:
- Extracted information from the web page based on the prompt
Inputs: url (required), prompt (required), enabaleWebSearch (required), showSources (required).
scrapeD
Inputs: url (required).
searchC
Performs web searches and retrieves up-to-date information from the internet. Args: - prompt: Specific query or topic to search for on the internet - limit: Maximum number of results to return (between 1 and 20)
Returns:
- Search results with relevant information about the requested topic
Inputs: query (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
The tools have significant overlap and unclear boundaries. 'crawl' extracts content from multiple pages, 'extract' pulls specific info from a single page, and 'scrape' (with no description) is ambiguous—likely overlapping with both. 'search' is distinct for web searches, but the others could easily be confused for similar web content tasks.
All tool names follow a consistent, simple verb pattern (crawl, extract, scrape, search). They are short, clear, and uniformly styled without mixing conventions, making them predictable and easy to parse.
Four tools is reasonable for a web search domain, allowing coverage of crawling, extraction, scraping, and searching. It's slightly thin but manageable, as each tool addresses a core aspect of web data retrieval without being overly bloated.
There are notable gaps in the tool surface. The server covers basic retrieval (crawl, search) and extraction, but lacks update/delete operations (e.g., no tool to modify or clear cached data) and has a dead tool ('scrape' with no description), which limits functionality. However, agents can work around this for common web search tasks.
Related MCP Connectors
Scrape, crawl, and search the web via Firecrawl’s official hosted MCP.
Firecrawl MCP — wraps the Firecrawl API (firecrawl.dev) for web scraping / crawling / search…
Firecrawl, the context API for AI agents: search, scrape, interact with the web, plus paper search.
Web search API and MCP server for developers building AI agents.
Related MCP Servers
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables web search, scraping, crawling, and content extraction through multiple engines including SearXNG, Firecrawl, and Tavily.4332 npm148MIT
- AlicenseBqualityDmaintenanceA Model Context Protocol server that enables AI assistants to perform advanced web scraping, crawling, searching, and data extraction through the Firecrawl API.9201,139 npmMIT
- AlicenseAqualityDmaintenanceA Model Context Protocol server that enables web scraping, crawling, and content extraction capabilities through integration with Firecrawl.8201,139 npm2MIT
- FlicenseAqualityDmaintenanceA production-ready Model Context Protocol (MCP) server that integrates with the Firecrawl API to give AI assistants the power to scrape, crawl, and search the web.3-
Appeared in Searches
- Web search tools and methods that don't require API keys
- A server for searching research papers, Kaggle datasets, and websites for ML/AI model training data
- iPhone 16e camera review summary and table creation in Italian
- Web scraping and content extraction
- Web scraping tool for extracting content from SearXNG search results