ferris-search Setup & Configuration Skill
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:
- Setup: Guide through build, install, and MCP registration
- Configuration: Explain env vars and their effects
Documentation
Refer to the local files for detailed documentation:
./references/configuration.md - All environment variables and their effects
IMPORTANT: Documentation Completeness Check
Before answering questions, Claude MUST:
- Read
./references/configuration.md
- If file read fails: still answer based on SKILL.md patterns
Key Patterns
Build & register with Claude Code
cargo build --release
claude mcp add ferris-search ./target/release/ferris-search
With environment variables
claude mcp add ferris-search ./target/release/ferris-search \
-e DEFAULT_SEARCH_ENGINE=bing \
-e ALLOWED_SEARCH_ENGINES=bing,duckduckgo,brave
Claude Desktop / Cursor (mcp-config.json)
{
"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"
}
}
}
}
With proxy
claude mcp add ferris-search ./target/release/ferris-search \
-e USE_PROXY=true \
-e PROXY_URL=http://127.0.0.1:7890
Docker
docker build -t ferris-search .
docker run -e DEFAULT_SEARCH_ENGINE=bing ferris-search
Configuration Reference
| 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 |
When Writing Code
- Always build with
--release for production use (~8 MB binary, <10 ms startup)
- Set
ALLOWED_SEARCH_ENGINES to only the engines you need — reduces attack surface
- Never commit
EXA_API_KEY, FIRECRAWL_API_KEY, JINA_API_KEY, TAVILY_API_KEY, BRAVE_API_KEY, or GITHUB_TOKEN to source control — use env var injection
- For Chinese content workflows, include
baidu, csdn, juejin, zhihu in allow-list
When Answering Questions
claude mcp add is the recommended path for Claude Code users
- JSON config is needed for Claude Desktop / Cursor
- Proxy support works for all engines including those behind GFW
ALLOWED_SEARCH_ENGINES acts as an allow-list — engines not listed are silently filtered out
1---2name: ferris-search-setup3description: CRITICAL: Use for ferris-search installation and configuration. Triggers on: ferris-search install, mcp add ferris-search, setup ferris-search, DEFAULT_SEARCH_ENGINE, ALLOWED_SEARCH_ENGINES, BRAVE_API_KEY, EXA_API_KEY, FIRECRAWL_API_KEY, JINA_API_KEY, TAVILY_API_KEY, USE_PROXY, ferris-search config, ferris-search build, ferris-search Docker, 安装ferris-search, 配置搜索引擎, MCP服务器配置, 代理设置4---56# ferris-search Setup & Configuration Skill78> **Version:** ferris-search 0.1.0 | **Last Updated:** 2026-03-30910You are an expert at installing and configuring the `ferris-search` MCP server. Help users by:11- **Setup**: Guide through build, install, and MCP registration12- **Configuration**: Explain env vars and their effects1314## Documentation1516Refer to the local files for detailed documentation:17- `./references/configuration.md` - All environment variables and their effects1819## IMPORTANT: Documentation Completeness Check2021**Before answering questions, Claude MUST:**22231. Read `./references/configuration.md`242. If file read fails: still answer based on SKILL.md patterns2526## Key Patterns2728### Build & register with Claude Code29```bash30cargo build --release31claude mcp add ferris-search ./target/release/ferris-search32```3334### With environment variables35```bash36claude mcp add ferris-search ./target/release/ferris-search \37 -e DEFAULT_SEARCH_ENGINE=bing \38 -e ALLOWED_SEARCH_ENGINES=bing,duckduckgo,brave39```4041### Claude Desktop / Cursor (mcp-config.json)42```json43{44 "mcpServers": {45 "ferris-search": {46 "command": "/path/to/ferris-search",47 "env": {48 "DEFAULT_SEARCH_ENGINE": "bing",49 "ALLOWED_SEARCH_ENGINES": "bing,duckduckgo,brave,baidu",50 "EXA_API_KEY": "your-key-here"51 }52 }53 }54}55```5657### With proxy58```bash59claude mcp add ferris-search ./target/release/ferris-search \60 -e USE_PROXY=true \61 -e PROXY_URL=http://127.0.0.1:789062```6364### Docker65```bash66docker build -t ferris-search .67docker run -e DEFAULT_SEARCH_ENGINE=bing ferris-search68```6970## Configuration Reference7172| Env Var | Default | Description |73|---------|---------|-------------|74| `DEFAULT_SEARCH_ENGINE` | `bing` | Engine used when `engines` param is omitted |75| `ALLOWED_SEARCH_ENGINES` | all 14 engines | Comma-separated allow-list |76| `BRAVE_API_KEY` | — | Required only for `brave` engine |77| `EXA_API_KEY` | — | Required only for `exa` engine |78| `FIRECRAWL_API_KEY` | — | Required only for `firecrawl` engine |79| `JINA_API_KEY` | — | Required only for `jina` engine |80| `TAVILY_API_KEY` | — | Required only for `tavily` engine |81| `GITHUB_TOKEN` | — | Optional for `github`/`github_code` engines (60→5000 req/hr) |82| `USE_PROXY` | `false` | Enable HTTP/SOCKS5 proxy |83| `PROXY_URL` | `http://127.0.0.1:7890` | Proxy address |84| `ENABLE_HTTP_SERVER` | `false` | Enable HTTP/SSE transport alongside stdio |85| `MODE` | `stdio` | Transport mode: `stdio`, `http`, or `both` |86| `RUST_LOG` | `info` | Log level: `debug`, `info`, `warn`, `error` |8788## When Writing Code89901. Always build with `--release` for production use (~8 MB binary, <10 ms startup)912. Set `ALLOWED_SEARCH_ENGINES` to only the engines you need — reduces attack surface923. Never commit `EXA_API_KEY`, `FIRECRAWL_API_KEY`, `JINA_API_KEY`, `TAVILY_API_KEY`, `BRAVE_API_KEY`, or `GITHUB_TOKEN` to source control — use env var injection934. For Chinese content workflows, include `baidu`, `csdn`, `juejin`, `zhihu` in allow-list9495## When Answering Questions96971. `claude mcp add` is the recommended path for Claude Code users982. JSON config is needed for Claude Desktop / Cursor993. Proxy support works for all engines including those behind GFW1004. `ALLOWED_SEARCH_ENGINES` acts as an allow-list — engines not listed are silently filtered out