# lennney/agent-search-mcp [Health: Active]

**Category:** 🔎 Search & Data Extraction  
**Repository:** https://github.com/lennney/agent-search-mcp  
**GitHub Stars:** 108  
**npm Downloads (last month):** 2124  
**Views:** 4  
**Installs:** 0  
**Upvotes:** 0  
**Directory Page:** https://allmcps.com/mcp/lennney-agent-search-mcp

## Description
Free multi-engine MCP search server — 8 free engines (DDG, Sogou, Bing, Baidu, Wikipedia, Startpage, Yandex, Mojeek), waterfall progressive search, multi-source verification, content enrichment, news search, language auto-detection, CLI. Zero API keys needed. npx agent-search-mcp

## Tools
Capabilities this server exposes over MCP:

- **free_search** — Search the web with an explicit adapter set and bounded fallback.

Best for: Quick fact-finding, general search, when date/domain filters are not needed.
Not recommended for: Filtered or verified-only results — use free_search_advanced. For full page content — use free_extract.

Twelve adapters are selectable; the default request uses DuckDuckGo + Sogou only. Adapters that share one upstream family are tried sequentially on failure and never double-count as corroboration. Explicitly requested optional API adapters run only when credentials are present and the free basket is short or below the quality gate.
Results are deduplicated and include separate confidence, relevance, and source-count signals.

@readOnly true @idempotent true — makes outbound HTTP requests to configured search engines. Injection detection and SSRF protection active.
- **free_search_advanced** — Advanced search with filters and quality control.

Best for: Domain filtering, high-confidence only, Chinese content.
Not recommended for: Simple queries — use free_search instead.

@readOnly true @idempotent true — runs waterfall progressive search across policy-allowed engines. Makes outbound HTTP requests to search engines and optionally to Jina Reader for content enrichment.
- **free_extract** — Extract full content from a URL. Returns clean markdown text.

Best for: Reading a specific page found in search results to get full context.
Not recommended for: Bulk extraction — use free_search first to find relevant pages.

Behavior: Makes an outbound HTTP request to Jina Reader (r.jina.ai) which fetches and converts the page to markdown. Has SSRF protection: blocks private IPs, localhost, and metadata endpoints. 10s request timeout — pages exceeding this will fail with a timeout error. HTTP errors (4xx, 5xx) are returned as structured error responses.
- **fetch_github_readme** — Fetch README content from a GitHub repository.

Best for: Getting project documentation quickly.
Not recommended for: Non-GitHub URLs — use free_extract instead.

@readOnly true @idempotent true — makes outbound HTTP requests to raw.githubusercontent.com.
- **fetch_csdn_article** — Fetch content from a CSDN blog article.

Best for: Chinese developer blog content on CSDN.
Not recommended for: Other Chinese sites — use free_extract instead.

@readOnly true @idempotent true — makes outbound HTTP requests to the CSDN article URL.
- **fetch_juejin_article** — Fetch content from a Juejin article.

Best for: Chinese developer articles on Juejin.
Not recommended for: Non-Juejin content — use free_extract instead.

@readOnly true @idempotent true — makes outbound HTTP requests to juejin.cn API.
- **search_with_synthesis** — Deep search with waterfall multi-engine verification. Returns structured results plus a prompt_hint for the agent to synthesize its own answer. No external LLM call or model API key is required; search and enrichment still make outbound network requests.

Best for: Complex queries needing multi-source verification and LLM synthesis.
Not recommended for: Simple fact-finding — use free_search instead.

@readOnly true @idempotent true — runs waterfall search across free+paid engines with content enrichment.

## Claude Desktop Quick Installation
Install path detected from listing signals. Uses `npx` (confidence: high):

```json
"mcpServers": {
  "agent-search-mcp": {
    "command": "npx",
    "args": ["-y","agent-search-mcp"]
  }
}
```

## Documentation

## What lennney/agent-search-mcp MCP server does

The lennney/agent-search-mcp MCP server exposes web research capabilities for English and Chinese queries. Its tools cover several levels of work:

- `free_search` performs general search with a chosen adapter set and bounded fallback.
- `free_search_advanced` adds domain filters and quality controls, including high-confidence and Chinese-content use cases.
- `free_extract` retrieves a page through Jina Reader and returns cleaned Markdown.
- `fetch_github_readme` reads a repository README from GitHub.
- `fetch_csdn_article` and `fetch_juejin_article` retrieve content from named Chinese developer-content platforms.
- `search_with_synthesis` performs deeper, multi-engine verification and returns structured evidence plus a `prompt_hint`; it does not call an external language model.

The project also provides a command-line interface. The default runtime is free to use without a search API account, browser, database, or Python installation. Optional commercial providers may be enabled with their own credentials, but they are not needed for the zero-key search path.

## How it works

The lennney/agent-search-mcp MCP server uses a waterfall search strategy. It tries policy-allowed adapters progressively rather than treating every adapter as an independent source. Adapters connected to the same upstream provider family are attempted sequentially and do not inflate corroboration counts.

Search results are deduplicated and ranked with separate relevance, confidence, and provider-family source counts. The router can stop after result, relevance, confidence, and source-coverage gates pass. Request budgets limit adapter attempts, elapsed time, and admitted results, while an evidence budget limits the amount of query-relevant material returned. Compact output preserves provenance while reducing detail in later results.

Provider problems remain visible in `partialFailures`, including conditions such as timeouts, challenges, rate limits, permission failures, and budget limits. Search responses also expose execution information such as searched engines, the stop reason, quality-gate status, and budget state. Outbound requests include injection detection and SSRF protections where applicable.

`free_extract` sends the target URL to Jina Reader at `r.jina.ai`, which fetches and converts the page. Private addresses, localhost, and metadata endpoints are blocked, and the request timeout is 10 seconds. GitHub, CSDN, and Juejin tools make requests to their respective remote content endpoints.

## Setup and configuration

Install the lennney/agent-search-mcp MCP server with Node.js 18.17 or newer:

```bash
npx -y agent-search-mcp
```

MCP clients that accept `mcpServers` JSON can launch it over stdio:

```json
{
  "mcpServers": {
    "agent-search": {
      "command": "npx",
      "args": ["-y", "agent-search-mcp"]
    }
  }
}
```

The documented client examples include Claude Desktop, Cursor, and Windsurf. The same stdio command can also be registered in Claude Code and Codex. No credential is required for the default free-first configuration. Optional provider API keys are used only when the relevant provider and routing policy permit escalation; the supplied material specifically names `BRAVE_API_KEY`, `TAVILY_API_KEY`, and `EXA_API_KEY` among optional provider credentials.

## Tools and capabilities

Use `free_search` for quick discovery when domain and date filters are unnecessary. Use `free_search_advanced` when filtering or stricter evidence quality matters. Use `search_with_synthesis` for complex questions that need multi-source checking before an agent writes its own answer.

Use `free_extract` after finding a relevant URL and needing the page’s full context. It is not intended as a bulk-extraction workflow. The specialized fetchers are more direct choices for GitHub READMEs, CSDN articles, and Juejin articles.

The project supports free search adapters including DuckDuckGo, Sogou, Bing, Baidu, Wikipedia, Startpage, Yandex, Mojeek, and Wiby. The README also documents optional API-backed adapters. Chinese queries can use Chinese-oriented sources without requiring a translation layer.

## Limitations and notes

Simple searches should use `free_search`; advanced filtering and verified-only requirements belong with `free_search_advanced`. Search availability and quality depend on the upstream engines, and failures are reported rather than hidden. `free_extract` can fail when a page exceeds the 10-second timeout or returns an HTTP error. It also depends on Jina Reader fetching the target page successfully.

The project’s evidence and token measurements are based on checked-in fixtures and do not establish live engine availability or search quality. Installing the optional Agent Skill does not start or configure the MCP server; it provides routing guidance for compatible Agent Skills clients instead.

_Full upstream README: https://allmcps.com/mcp/lennney-agent-search-mcp/readme_

