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
--releasefor production use (~8 MB binary, <10 ms startup) - Set
ALLOWED_SEARCH_ENGINESto 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, orGITHUB_TOKENto source control — use env var injection - For Chinese content workflows, include
baidu,csdn,juejin,zhihuin allow-list
When Answering Questions
claude mcp addis 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_ENGINESacts as an allow-list — engines not listed are silently filtered out
Source: lispking/ferris-search — distributed by TomeVault.