From ferris-search
Guides ferris-search MCP server setup including cargo build, claude mcp add registration, Docker runs, and configuration of search engine env vars like DEFAULT_SEARCH_ENGINE, API keys, and proxies.
npx claudepluginhub lispking/ferris-search --plugin ferris-searchThis skill uses the workspace's default tool permissions.
> **Version:** ferris-search 0.1.0 | **Last Updated:** 2026-03-30
Deploys self-hosted SearXNG meta search engine via Docker Compose with Nginx proxy, settings.yml config, engine selection, and persistence. For private tracking-free search aggregating providers.
Configures Paper Search MCP integration and resolves errors like 'Docker not found', 'not running', or connection failures with quick fixes and disable option.
Configures Tavily MCP for Claude Code and fixes errors like invalid API keys, quota limits, or connection failures. Run /tavily-tools:setup or auto-activates on Tavily errors.
Share bugs, ideas, or general feedback.
Version: ferris-search 0.1.0 | Last Updated: 2026-03-30
You are an expert at installing and configuring the ferris-search MCP server. Help users by:
Refer to the local files for detailed documentation:
./references/configuration.md - All environment variables and their effectsBefore answering questions, Claude MUST:
./references/configuration.mdcargo build --release
claude mcp add ferris-search ./target/release/ferris-search
claude mcp add ferris-search ./target/release/ferris-search \
-e DEFAULT_SEARCH_ENGINE=bing \
-e ALLOWED_SEARCH_ENGINES=bing,duckduckgo,brave
{
"mcpServers": {
"ferris-search": {
"command": "/path/to/ferris-search",
"env": {
"DEFAULT_SEARCH_ENGINE": "bing",
"ALLOWED_SEARCH_ENGINES": "bing,duckduckgo,brave,baidu",
"EXA_API_KEY": "your-key-here"
}
}
}
}
claude mcp add ferris-search ./target/release/ferris-search \
-e USE_PROXY=true \
-e PROXY_URL=http://127.0.0.1:7890
docker build -t ferris-search .
docker run -e DEFAULT_SEARCH_ENGINE=bing ferris-search
| Env Var | Default | Description |
|---|---|---|
DEFAULT_SEARCH_ENGINE | bing | Engine used when engines param is omitted |
ALLOWED_SEARCH_ENGINES | all 14 engines | Comma-separated allow-list |
BRAVE_API_KEY | — | Required only for brave engine |
EXA_API_KEY | — | Required only for exa engine |
FIRECRAWL_API_KEY | — | Required only for firecrawl engine |
JINA_API_KEY | — | Required only for jina engine |
TAVILY_API_KEY | — | Required only for tavily engine |
GITHUB_TOKEN | — | Optional for github/github_code engines (60→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 |
--release for production use (~8 MB binary, <10 ms startup)ALLOWED_SEARCH_ENGINES to only the engines you need — reduces attack surfaceEXA_API_KEY, FIRECRAWL_API_KEY, JINA_API_KEY, TAVILY_API_KEY, BRAVE_API_KEY, or GITHUB_TOKEN to source control — use env var injectionbaidu, csdn, juejin, zhihu in allow-listclaude mcp add is the recommended path for Claude Code usersALLOWED_SEARCH_ENGINES acts as an allow-list — engines not listed are silently filtered out