MCP MixSearch
Provides web search capabilities using Brave's search API as one of the supported search engine backends for multi-engine search functionality.
Enables web search through DuckDuckGo's search engine with support for advanced filtering including time-based, geographic, language, and content type parameters.
Offers web search functionality through Google's search engine as part of the multi-engine search architecture with intelligent backend selection.
Uses Pydantic models for data validation and serialization in the web search feature implementation.
Provides testing framework for the MCP server development and quality assurance.
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., "@MCP MixSearchfind recent AI breakthroughs in the last month from news sources"
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.
MCP MixSearch
A comprehensive Model Context Protocol (MCP) server for advanced web search functionality with multi-engine support and intelligent backend selection.
Features
Multi-Engine Search: Access to multiple search engines (Brave, DuckDuckGo, Google, Bing, Yandex) via DDGS library
Advanced Filtering: Time-based, geographic, language, and content type filtering
Intelligent Backend Selection: Automatically chooses optimal search engine based on parameters
Full Content Extraction: Extract readable content from search results and specific URLs
Dual Interface: Both MCP protocol and REST API with identical functionality
Graceful Fallbacks: Browser-based search for reliability when APIs fail
Related MCP server: Serpex MCP
Quick Start
Install and Run
# Install
uv sync
# Run in MCP stdio mode (default)
uv run mcp-mixsearch
# Run in MCP HTTP mode
uv run mcp-mixsearch --mode mcp
# Or run with REST API
uv run mcp-mixsearch --mode restConfiguration
Set environment variables in a .env file or export them:
# Server Configuration
MCP_HOST=localhost
MCP_PORT=3000
MCP_TRANSPORT=stdio # or 'http'
MCP_AUTH_ENABLED=true
MCP_CORS_ORIGINS="http://localhost:3000,http://localhost:5173"
# Web Search Configuration
BRAVE_API_KEY=your_brave_api_key_here
MAX_CONTENT_LENGTH=500000
MAX_CONCURRENT_REQUESTS=5
# Logging
LOG_LEVEL=INFORunning Modes
mcp-mixsearch supports three distinct running modes:
1. MCP HTTP Mode
Runs MCP server over HTTP without REST API endpoints.
uv run mcp-mixsearch --mode mcp2. MCP Stdio Mode (Default)
Runs MCP server over stdio without REST API endpoints.
uv run mcp-mixsearch --mode stdio
# Or just run without flags (default)
uv run mcp-mixsearch3. REST API + MCP Mode
Runs both REST API endpoints and MCP protocol over HTTP.
uv run mcp-mixsearch --mode restEnvironment Variables
You can also control modes using environment variables:
# MCP over HTTP
MCP_TRANSPORT=http MCP_ONLY=true uv run mcp-mixsearch
# MCP over stdio
MCP_TRANSPORT=stdio MCP_ONLY=true uv run mcp-mixsearch
# REST API + MCP over HTTP
MCP_TRANSPORT=http MCP_ONLY=false uv run mcp-mixsearchIn HTTP modes, the server runs on http://localhost:3000 with:
MCP endpoint:
http://localhost:3000/mcpREST API docs:
http://localhost:3000/docs(when REST API enabled)Health check:
http://localhost:3000/health(when REST API enabled)
Available Tools
MCP Tools
full_web_search
Comprehensive web search with content extraction
Multi-engine search with intelligent backend selection
Advanced filtering: time, language, geographic, content type filters
Args: query, limit (1-10), include_content, max_content_length, top_n, recency_days, source, language, country
get_web_search_summaries
Lightweight search returning only summaries
Same advanced filtering capabilities as full_web_search
Args: query, limit (1-10), top_n, recency_days, source, language, country
get_single_web_page_content
Extract content from a specific URL
Args: url, max_content_length
REST API Endpoints
GET /search/full_web_search- Same asfull_web_searchwith identical parametersGET /search/get_web_search_summaries- Same asget_web_search_summarieswith identical parametersGET /search/get_single_web_page_content- Same asget_single_web_page_content
Advanced Search Features
Multi-Engine Architecture
Primary: DDGS library with multiple backend support (Brave, DuckDuckGo, Google, Bing, Yandex)
Intelligent backend selection: Automatically chooses best engine based on parameters
Fallbacks: Browser-based search for reliability
Supported Parameters
Core:
query(required),limit/top_n,include_content,max_content_lengthTime filtering:
recency_days(1=day, 7=week, 30=month, 365=year)Content type:
source("news", "images", "videos", "web")Language filtering:
language(e.g., "en", "es", "fr", "de")Geographic filtering:
country(e.g., "US", "GB", "FR", "DE")
Usage Examples
Basic search:
# MCP
{"query": "AI developments", "limit": 5}
# REST
GET /search/get_web_search_summaries?query=AI%20developments&limit=5Advanced filtering:
# MCP
{"query": "climate policy", "country": "FR", "language": "fr", "recency_days": 30, "source": "news"}
# REST
GET /search/get_web_search_summaries?query=climate%20policy&country=FR&language=fr&recency_days=30&source=newsProject Structure
mcp-mixsearch/
├── features/ # Feature implementations
│ └── web_search/ # Web search feature
│ ├── __init__.py
│ ├── models.py # Pydantic models
│ ├── service.py # Multi-engine search logic
│ ├── tool.py # MCP tool registrations
│ ├── routes.py # REST API routes
│ ├── instructions.md # Full web search documentation
│ ├── instructions_summaries.md # Search summaries documentation
│ └── instructions_single_page.md # Single page extraction documentation
├── config.py # Configuration management
├── server.py # Main server entry point
├── pyproject.toml # Project configuration
├── uv.lock # Dependency lock file
├── README.md
└── LICENSEDevelopment
Testing
pytestBuilding
uv buildDependencies
mcp-weather: Core MCP infrastructure
fastmcp: MCP protocol implementation
httpx: HTTP client for content extraction
playwright: Browser automation for dynamic content
beautifulsoup4: HTML parsing
fake-useragent: Random user agents
License
See LICENSE file.
Available Tools
3 toolsfull_web_searchA
Get comprehensive web search results with full page content extraction.
Use this when you need detailed content from web sources for comprehensive research and analysis. This searches the web and extracts the full content from each result page.
Use this for comprehensive research or detailed information from web sources.
Args: query: Search query string (1-200 characters) limit: Number of results to return with full content (1-10, default 5) include_content: Whether to extract full page content (default true) max_content_length: Maximum characters per result content (0 = no limit) top_n: Alternative name for limit (for compatibility) recency_days: Days to look back for recent content (time filtering) source: Content type filter ("news", "images", "videos", etc.) language: Language filter (e.g., "en", "es", "fr", "de") country: Geographic filter (e.g., "US", "GB", "FR", "DE")
Returns: Formatted text containing search results with full extracted content
Parameter Usage Guidelines
query (required)
Search query string (1-200 characters)
Use specific, descriptive search terms
limit (optional, default 5)
Range: 1-10 results
Higher limits take longer due to content extraction
include_content (optional, default true)
Set to
truefor full content extraction (default)Set to
falseto get only titles, URLs, and descriptions
max_content_length (optional, default unlimited)
Limits characters per result to manage response size
Common values:
10000(focused content),50000(detailed research),null(no limit)
top_n (optional, compatibility parameter)
Alternative name for
limitparameterRange: 1-10 results
recency_days (optional, time filtering)
Filters results to recent content only
Common values:
1(past day),7(past week),30(past month),365(past year)Use
-1ornullfor no time filter
source (optional, content type filtering)
Filters by content type
Supported values:
"news": News articles and current events"images": Image search results"videos": Video content"web"or null: Regular web search (default)
language (optional, language filtering)
Filters results by language
Supported values: Language codes like
"en","es","fr","de","zh"
country (optional, geographic filtering)
Filters results by geographic region/country
Supported values: Country codes like
"US","GB","FR","DE","CA"
Usage Examples
Basic search with default settings:
{
"query": "sustainable energy solutions 2024"
}Quick overview (smaller limit):
{
"query": "latest AI developments",
"limit": 3
}Recent news search with time filtering:
{
"query": "AI technology breakthroughs",
"source": "news",
"recency_days": 7,
"language": "en"
}Geographic and language filtering:
{
"query": "climate change policy",
"country": "FR",
"language": "fr",
"limit": 5
}Comprehensive research with all parameters:
{
"query": "machine learning frameworks comparison",
"limit": 8,
"include_content": true,
"max_content_length": 25000,
"recency_days": 30,
"language": "en"
}Content type specific search:
{
"query": "python tutorial",
"source": "videos",
"limit": 5,
"include_content": false
}Source identification only:
{
"query": "quantum computing breakthroughs",
"limit": 5,
"include_content": false
}When to Use This
Use when you need detailed content from multiple sources
Use for comprehensive research on complex topics
Use when analyzing and comparing information across sources
Use for gathering supporting evidence or documentation
Use when you need the full context from web pages
Related Functionality
For quick topic exploration without content, use the search summaries functionality
When you have a specific URL to extract, use the single page content extraction functionality
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| limit | No | ||
| include_content | No | ||
| max_content_length | No | ||
| top_n | No | ||
| recency_days | No | ||
| source | No | ||
| language | No | ||
| country | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes key behavioral traits: the tool performs web searches with content extraction, mentions performance implications ('Higher limits take longer due to content extraction'), and explains what happens when include_content is false. However, it doesn't mention rate limits, authentication needs, or error conditions that would be helpful for a comprehensive web search tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While well-structured with clear sections, the description is quite lengthy with redundant information. The initial description repeats similar phrases ('comprehensive research' appears multiple times), and the parameter documentation section is extensive. Some information could be more efficiently presented, though the structure helps with navigation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a 9-parameter web search tool with no annotations, the description provides comprehensive coverage. It explains the tool's purpose, when to use it versus alternatives, detailed parameter semantics, and includes multiple usage examples. The presence of an output schema reduces the need to explain return values, and the description adequately covers the remaining context needed for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for 9 parameters, the description fully compensates by providing extensive parameter documentation. Each parameter gets detailed explanations including purpose, constraints, default values, and usage examples. The description adds significant value beyond the bare schema, explaining what each parameter does and how to use it effectively.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get comprehensive web search results with full page content extraction.' It specifies the verb ('get'), resource ('web search results'), and distinguishing feature ('full page content extraction'). It effectively differentiates from sibling tools by emphasizing comprehensive content extraction versus summaries or single-page extraction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool versus alternatives. It includes a dedicated 'When to Use This' section listing specific scenarios and a 'Related Functionality' section that explicitly names sibling tools (search summaries, single page extraction) and when to use them instead. This gives clear context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_single_web_page_contentA
Extract and return the full content from a single web page URL.
Use this when you have a specific URL and need the full text content for analysis or reference.
Args: url: The URL of the web page to extract content from max_content_length: Maximum characters for the extracted content (0 = no limit)
Returns: Formatted text containing the extracted page content with word count
Parameter Usage Guidelines
url (required)
Must be a valid HTTP or HTTPS URL
Include the full URL with protocol (http:// or https://)
Examples:
max_content_length (optional, default unlimited)
Limits the extracted content to specified character count
Common values:
10000(summaries),50000(full pages),null(no limit)
Usage Examples
Basic content extraction:
{
"url": "https://example.com/blog/ai-trends-2024"
}Extract with content limit:
{
"url": "https://docs.example.com/api-reference",
"max_content_length": 20000
}Extract documentation:
{
"url": "https://github.com/project/docs/installation.md",
"max_content_length": 10000
}Extract complete article:
{
"url": "https://techblog.com/comprehensive-guide"
}Complete parameter example:
{
"url": "https://docs.python.org/3/library/asyncio.html",
"max_content_length": 50000
}When to Choose This Tool
Choose this when you have a specific URL from search results or references
Choose this for extracting content from documentation, articles, or blog posts
Choose this when you need to analyze or reference specific webpage content
Choose this for following up on URLs found in search results
Choose this when extracting content from GitHub README files or documentation
Error Handling
If URL is inaccessible, an error message will be provided
Some sites may block automated access - try alternative URLs
Dynamic content may require multiple attempts
Large pages may timeout - use content length limits
Alternative Tools
Use
full_web_searchwhen you need to find relevant pages firstUse
get_web_search_summariesfor discovering URLs to extract
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| max_content_length | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It effectively describes what the tool does (extracts content), what it returns (formatted text with word count), and includes important behavioral context like error handling (inaccessible URLs, blocked sites, timeouts) and practical constraints (dynamic content may require multiple attempts). The only minor gap is lack of explicit rate limit or authentication information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (description, args, returns, parameter guidelines, examples, when to choose, error handling, alternatives). While comprehensive, some sections like the multiple similar examples could be slightly condensed. However, every section adds value and the core purpose is front-loaded effectively.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (web content extraction with potential errors), no annotations, and an output schema present, the description provides complete context. It covers purpose, usage guidelines, parameter details, behavioral traits, error scenarios, and sibling tool differentiation. The presence of an output schema means the description doesn't need to detail return format, allowing it to focus on operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Despite 0% schema description coverage, the description provides comprehensive parameter documentation that fully compensates. It explains both parameters in detail: url requirements (valid HTTP/HTTPS, full URL with protocol, examples) and max_content_length behavior (optional, default unlimited, common values, practical use cases). The usage examples further clarify parameter semantics beyond what the bare schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verb ('extract and return') and resource ('full content from a single web page URL'). It distinguishes from sibling tools by focusing on content extraction from a specific URL rather than search functionality, with explicit differentiation in the 'Alternative Tools' section.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use this tool ('when you have a specific URL and need the full text content for analysis or reference') and when not to use it (via the 'Alternative Tools' section that names specific sibling tools for different use cases). The 'When to Choose This Tool' section further elaborates with concrete scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_web_search_summariesA
Get lightweight web search results with only result summaries.
Use this when you need a quick overview of available sources without full content. This gets search result titles, URLs, and descriptions for quick research or when you only need an overview of available information.
Use this when you want to quickly understand what information is available on a topic before diving deeper with full content extraction.
Args: query: Search query string (1-200 characters) limit: Number of search result summaries to return (1-10, default 5) top_n: Alternative name for limit (for compatibility) recency_days: Days to look back for recent content (time filtering) source: Content type filter ("news", "images", "videos", etc.) language: Language filter (e.g., "en", "es", "fr", "de") country: Geographic filter (e.g., "US", "GB", "FR", "DE")
Returns: Formatted text containing search result summaries (title, URL, description)
Parameter Usage Guidelines
query (required)
Search query string (1-200 characters)
Use specific, descriptive search terms
limit (optional, default 5)
Range: 1-10 results
Usage Examples
Basic topic exploration:
{
"query": "artificial intelligence ethics"
}Quick source discovery:
{
"query": "kubernetes security best practices",
"limit": 3
}Recent news exploration:
{
"query": "AI developments",
"source": "news",
"recency_days": 7,
"language": "en"
}Geographic research:
{
"query": "renewable energy policies",
"country": "DE",
"language": "en",
"limit": 8
}Content type discovery:
{
"query": "machine learning tutorials",
"source": "videos",
"limit": 5
}Complete parameter example:
{
"query": "climate change adaptation strategies",
"limit": 6,
"recency_days": 30,
"language": "en",
"country": "US"
}When to Choose This Tool
Primary Decision Criteria:
Choose this for initial research phase: Understand what sources are available
Choose this for topic exploration: Get an overview before deep diving
Choose this for source identification: Find relevant URLs for later extraction
Choose this for quick fact-checking: Verify if information sources exist
Choose this for research planning: Identify the scope of available information
Decision Matrix: When to Use Each Tool
Use get_web_search_summaries when:
✅ You need to explore what's available on a topic
✅ You want to identify relevant sources quickly
✅ You're doing preliminary research
✅ You need to validate if sources exist
✅ You want to see search result diversity
✅ Speed is more important than content depth
Use full_web_search when:
✅ You need actual content from sources
✅ You're doing detailed research or analysis
✅ You need to cite or reference specific information
✅ You want to compare information across sources
✅ Content depth is more important than speed
Use get_single_web_page_content when:
✅ You have specific URLs to extract
✅ You found relevant URLs from summaries
✅ You need to extract from known sources
Workflow Patterns
Two-stage research:
Use
get_web_search_summariesto identify sourcesUse
get_single_web_page_contenton promising URLsOr use
full_web_searchwith focused query
Topic mapping:
Use
get_web_search_summarieswith broad termsAnalyze result diversity and topics
Use
full_web_searchfor detailed investigation
Source validation:
Use
get_web_search_summariesto check if sources existEvaluate source quality and relevance
Proceed with content extraction if validated
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| limit | No | ||
| top_n | No | ||
| recency_days | No | ||
| source | No | ||
| language | No | ||
| country | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does well by explaining the tool returns 'lightweight' results with 'only result summaries' for 'quick overview', specifying the output format as 'Formatted text containing search result summaries (title, URL, description)', and providing usage examples. It doesn't mention rate limits or authentication needs, but covers the core behavior thoroughly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is comprehensive but lengthy with multiple sections (Args, Returns, Parameter Usage Guidelines, Usage Examples, When to Choose This Tool, Decision Matrix, Workflow Patterns). While well-structured and front-loaded with the core purpose, it could be more concise by integrating some sections. Every sentence adds value, but the overall length is substantial.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 7-parameter complexity, 0% schema coverage, no annotations, but with an output schema, the description is exceptionally complete. It covers purpose, usage guidelines, parameter semantics, behavioral context, sibling tool comparisons, and workflow patterns. The output schema handles return values, so the description appropriately focuses on usage context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates well by listing all 7 parameters with brief explanations in the Args section, providing a 'Parameter Usage Guidelines' section for the two most important parameters, and showing 6 detailed usage examples that demonstrate how parameters work together. It adds significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Get lightweight web search results with only result summaries' and distinguishes it from siblings by specifying it's for 'quick overview of available sources without full content'. It explicitly contrasts with 'full_web_search' which provides actual content, making the distinction clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides extensive guidance including a 'When to Choose This Tool' section, a detailed decision matrix comparing it to sibling tools, workflow patterns, and explicit criteria like 'Choose this for initial research phase' and 'Speed is more important than content depth'. It clearly states when to use this tool versus 'full_web_search' and 'get_single_web_page_content'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
full_web_search - First observed
get_single_web_page_content - First observed
get_web_search_summaries
TDQS
Scored across 3 tools
The three tools have clearly distinct purposes with no overlap: full_web_search for comprehensive search with content extraction, get_web_search_summaries for lightweight result overviews, and get_single_web_page_content for extracting content from specific URLs. The descriptions explicitly differentiate their use cases, and the decision matrix helps agents choose appropriately.
All tool names follow a consistent snake_case pattern with clear verb_noun structure: full_web_search, get_web_search_summaries, and get_single_web_page_content. The naming is predictable and readable, with 'get' and 'full' prefixes appropriately indicating scope differences.
Three tools is well-scoped for a web search and content extraction server. Each tool earns its place by covering distinct workflow stages: discovery (summaries), comprehensive search (full), and targeted extraction (single page). This minimal set effectively covers the domain without bloat.
The tool set provides complete coverage for web search and content extraction workflows. It supports discovery (summaries), in-depth research (full search with extraction), and follow-up on specific URLs (single page). The descriptions explicitly outline complementary use cases, leaving no obvious gaps for agents.
Maintenance
Related MCP Connectors
Provides AI assistants with access to Seltz's powerful Web Search capabilities.
Web search, URL content extraction to Markdown, site mapping, and recursive web crawler.
Web search, fetch, extract, and research for AI agents. Markdown output + AI-synthesized answers.
Search the agentic web. 4,100+ sites, 11 tools incl. check_url + verify_mcp for probe-before-use.
Related MCP Servers
- FlicenseNot gradedqualityCmaintenanceEnables web search across multiple search engines (DuckDuckGo, Bing, Startpage) with parallel execution and result deduplication. Also provides web page content extraction capabilities.2-
- AlicenseBqualityCmaintenanceEnables multi-engine web search capabilities across Google, Bing, DuckDuckGo, Brave, Yahoo, and Yandex through the Serpex API. Features automatic engine routing, time filtering, and structured JSON results for reliable web search integration.117 npmMIT
- AlicenseBqualityBmaintenanceEnables deep web search across multiple providers including Google, Bing, Brave, DuckDuckGo, and Perplexity, with support for comprehensive AI-powered research using intelligent multi-engine queries.2221 npm9MIT
- AlicenseNot gradedqualityDmaintenanceEnables web searching through Google, DuckDuckGo, and Bing using a headless Chrome browser, returning structured results with titles, URLs, and snippets. Also supports fetching and extracting text content from any webpage.14MIT