1. Conduid
  2. Search
  3. Ferris Search
MCP server · Search

Ferris Search

A blazing-fast MCP (Model Context Protocol) server for multi-engine web search, written in Rust.

39Low

Scored 5 months ago · breakdown

About Ferris Search

Ferris Search is an MCP server in the Search category: a blazing-fast MCP (Model Context Protocol) server for multi-engine web search, written in Rust. It has been installed 0 times through Conduid.

Install

Clone
git clone https://github.com/lispking/ferris-search

This server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.

Ask AI

Ask AI about Ferris Search

Powered by Claude · Grounded in docs

I know everything about Ferris Search. Ask me about installation, configuration, usage, or troubleshooting.

Security checks

  • ·README presentNot checked yet.
  • ·License declaredNot checked yet.
  • ·Tests presentNot checked yet.
  • ·Dependencies pinnedNot checked yet.
  • ·No dynamic code executionNot checked yet.
  • ·Scoped permissionsNot checked yet.

README

ferris-search 🦀

A blazing-fast MCP server for multi-engine web search, written in Rust.

Why ferris-search?

Claude Code's built-in web search works great in ideal network conditions — but in practice, many developers run into environments where it's unreliable or unavailable: corporate networks, restricted regions, air-gapped setups, or simply spotty connectivity.

While looking for a workaround, I came across open-webSearch, a Node.js MCP server that routes search queries through multiple engines. It solved the problem well. But I have a thing for Rust — and spinning up a Node.js runtime just to proxy a few HTTP requests felt heavier than it needed to be.

So I rewrote the same idea in Rust:

  • No Node.js runtime — single self-contained binary, ~8 MB
  • Lower latency — Rust async I/O, concurrent fan-out across engines
  • Smaller footprint — negligible memory usage
  • Proxy support — HTTP/SOCKS5 proxy via env var, for networks that need it

If Claude Code's search isn't working in your environment, this is for you.

Enterprise & Internal Use

ferris-search is also a good foundation for enterprise internal search scenarios. Since it's a standard MCP server written in Rust, you can fork it and add custom search engines that connect to your internal knowledge bases — Confluence, Notion, internal wikis, code repositories, or proprietary document stores.

Some ideas:

  • Add an engine that searches your internal Elasticsearch or OpenSearch cluster
  • Integrate with your company's Confluence or GitLab search API
  • Connect to a private RAG (Retrieval-Augmented Generation) service
  • Route queries to different backends based on query language or topic

With Claude Code as the AI layer and ferris-search as the search backbone, your team gets a local AI coding assistant that can actually find and reference internal documentation — without sending anything to external search engines.

Features

  • Multi-engine fan-out — search across multiple engines simultaneously with a single call
  • 14 search engines — Bing, DuckDuckGo, Brave, Baidu, CSDN, Juejin, Exa, Firecrawl, Zhihu, LinuxDo, Jina, Tavily, GitHub (repo search), GitHub Code (code search)
  • 7 MCP toolsweb_search + 6 article/content fetchers
  • No API keys required for most engines (Brave, Exa, Firecrawl, Jina, and Tavily require API keys)
  • Single binary — ~8 MB, no runtime dependencies
  • Proxy support — HTTP/SOCKS5 proxy via env var

Quick Install

Linux / macOS (one-liner)

curl -fsSL https://raw.githubusercontent.com/lispking/ferris-search/main/install.sh | bash

Or from a local clone:

bash install.sh

The script will:

  1. Build and install the binary via cargo install
  2. Register the MCP server with Claude Code (claude mcp add -s user) if the CLI is found
  3. Install Claude Code skills for ferris-search

Windows (PowerShell)

irm https://raw.githubusercontent.com/lispking/ferris-search/main/install.ps1 | iex

Or from a local clone:

.\install.ps1

Prerequisite: Rust must be installed before running either script.


Quick Start

Install from source

cargo install --path .

This installs the ferris-search binary to ~/.cargo/bin/ferris-search. Make sure ~/.cargo/bin is in your PATH.

To find the installed binary path:

which ferris-search
# or
echo "$(cargo home 2>/dev/null || echo $HOME/.cargo)/bin/ferris-search"

Claude Desktop / Cursor configuration

{
  "mcpServers": {
    "ferris-search": {
      "command": "/Users/<you>/.cargo/bin/ferris-search",
      "env": {
        "DEFAULT_SEARCH_ENGINE": "bing"
      }
    }
  }
}

Replace the path with the output of which ferris-search.

Claude Code (claude mcp add)

Add for the current project only:

claude mcp add ferris-search $(which ferris-search)

Add globally for all projects (-s user):

claude mcp add -s user ferris-search $(which ferris-search)

With environment variables:

claude mcp add -s user ferris-search $(which ferris-search) \
  -e DEFAULT_SEARCH_ENGINE=bing \
  -e ALLOWED_SEARCH_ENGINES=bing,duckduckgo,brave

-s user registers the server in your user-level config (~/.claude.json) so it is available across all projects, not just the current one.

Behind the GFW (proxy setup)

claude mcp add -s user ferris-search $(which ferris-search) \
  -e USE_PROXY=true \
  -e PROXY_URL=http://127.0.0.1:7890 \
  -e DEFAULT_SEARCH_ENGINE=bing

MCP Tools

web_search

Search the web using one or more engines simultaneously.

{
  "query": "rust async runtime",
  "engines": ["bing", "duckduckgo"],
  "limit": 10
}
Parameter Type Default Description
query string required Search query
engines string[] server default Engines to search (fan-out if multiple)
limit number 10 Max results per engine (1–50)

Supported engines: bing, duckduckgo, brave, baidu, csdn, juejin, exa, firecrawl, zhihu, linuxdo, jina, tavily, github, github_code

fetch_web_content

Fetch and extract text content from any public URL.

Parameter Type Default Description
url string required Public HTTP/HTTPS URL
max_chars number 30000 Max characters to return

fetch_github_readme

Fetch the README from a GitHub repository.

Parameter Type Description
url string GitHub repository URL

fetch_csdn_article / fetch_juejin_article / fetch_zhihu_article / fetch_linuxdo_article

Domain-specific fetchers with better content extraction than the generic fetch_web_content.

Tool URL Constraint
fetch_csdn_article must contain csdn.net
fetch_juejin_article must contain juejin.cn and /post/
fetch_zhihu_article must contain zhihu.com
fetch_linuxdo_article must contain linux.do and /topic/

Configuration

All configuration is done via environment variables.

Env Var Default Description
DEFAULT_SEARCH_ENGINE bing Engine used when engines param is omitted
ALLOWED_SEARCH_ENGINES all engines Comma-separated allow-list
BRAVE_API_KEY Required for brave engine
EXA_API_KEY Required for exa engine
FIRECRAWL_API_KEY Required for firecrawl engine
JINA_API_KEY Required for jina engine
TAVILY_API_KEY Required for tavily engine
GITHUB_TOKEN Optional for github / github_code engines (raises rate limit from 60 to 5000 req/hr)
USE_PROXY false Enable HTTP/SOCKS5 proxy
PROXY_URL http://127.0.0.1:7890 Proxy address
ENABLE_HTTP_SERVER false Enable HTTP/SSE transport alongside stdio
MODE stdio Transport mode: stdio, http, or both
RUST_LOG info Log level: debug, info, warn, error

Common configurations

Privacy-focused:

claude mcp add -s user ferris-search $(which ferris-search) \
  -e DEFAULT_SEARCH_ENGINE=duckduckgo \
  -e ALLOWED_SEARCH_ENGINES=duckduckgo,brave

Chinese developer workflow:

claude mcp add -s user ferris-search $(which ferris-search) \
  -e DEFAULT_SEARCH_ENGINE=bing \
  -e ALLOWED_SEARCH_ENGINES=bing,baidu,csdn,juejin,zhihu

With Exa AI search:

claude mcp add -s user ferris-search $(which ferris-search) \
  -e DEFAULT_SEARCH_ENGINE=exa \
  -e EXA_API_KEY=exa-xxxx \
  -e ALLOWED_SEARCH_ENGINES=exa,bing,duckduckgo

Acknowledgements

Inspired by open-webSearch — this project reimplements the same idea in Rust for performance and portability.

License

Apache-2.0

README mirrored from the source repository 5 months ago. The original is authoritative.

Questions

About Ferris Search

How do I install Ferris Search?

Run git clone https://github.com/lispking/ferris-search, then add the server to your MCP client's configuration. Conduid has recorded 0 installs, so the command is known to work with current clients.

Is Ferris Search safe to use with an AI agent?

Its trust score is 39 out of 100 (low). Conduid hasn't run static security checks on this repository yet, so review the source yourself before granting it credentials. It has no ConduID identity yet, so agent calls to it are not receipted.

Is Ferris Search still maintained?

Conduid hasn't recorded a commit date for this repository yet. Check the repository directly for recent activity.