LF

lispking/ferris-search

开发工具

本页由 AI 翻译,技术细节请以原文为准。 查看原文

61 stars 18 forks 质量 64 趋势 13Apache-2.0

一个极其高速的MCP(模型上下文协议)服务器,用于多引擎网页搜索,使用Rust编写。

概览

一个极其快速的多引擎网页搜索MCP服务器,用Rust编写。 Claude Code 内置的网页搜索在理想的网络条件下表现良好——但实际上,许多开发者会遇到不可靠或无法使用的环境:企业网络、受限区域、空屏设置,或连接断断续续。 在寻找变通方法时,我发现了open-webSearch,一个Node.js MCP服务器,可以通过多个引擎路由搜索查询。它很好地解决了这个问题。但我对Rust很感兴趣——而为了代理几个HTTP请求而启动一个Node.js运行时,感觉比必要的还要繁重。 所以我在 Rust 里重写了同样的想法:- — 单一自包含二进制,~8 MB - — Rust 异步输入输出,跨引擎并发输出 - — 内存使用极低 - — 通过 env var 实现 HTTP/SOCKS5 代理,适用于需要的网络 如果你的环境中Claude Code的搜索不起作用,这个就是为你准备的。 Ferris-Search 也是场景的良好基础。

概述(AI 翻译)

一个极速的多引擎网页搜索MCP服务器,用Rust编写。

为什么要做铁丝搜索?

Claude Code 内置的网页搜索在理想的网络条件下表现良好——但实际上,许多开发者会遇到不可靠或无法使用的环境:企业网络、受限区域、空屏设置,或连接断断续续。

在寻找变通方法时,我发现了open-webSearch,一个Node.js MCP服务器,可以通过多个引擎路由搜索查询。它很好地解决了这个问题。但我对Rust很感兴趣——而为了代理几个HTTP请求而启动一个Node.js运行时,感觉比必要的还要繁重。

所以我在Rust里重写了同样的想法:

  • 无Node.js运行时 — 单一自包含二进制,~8 MB
  • 延迟更低 — Rust异步输入输出,跨引擎同步扇出
  • 更小的占用 — 内存占用可忽略不计
  • 代理支持 — 通过env var支持HTTP/SOCKS5代理,适用于需要的网络

如果你的环境中Claude Code的搜索不起作用,这个就是为你准备的。

企业与内部使用

Ferris-Search 也是企业内部搜索场景的良好基础。

本页由 AI 翻译,技术细节请以原文为准。

README

以下为原文 README 节选,完整内容请查看原文。

ferris-search 🦀

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

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 tools — web_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)

在 GitHub 查看完整 README

安装

This server does not publish a one-line install command.

Open the repository installation guide 新手?先看 mcpskill.org 教程 →

配置

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