Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/lispking/ferris-searchnpx agentmods add skills/lispking/ferris-search/ferris-search-setupWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/lispking/ferris-search/ferris-search-setup)<a href="https://agentmods.dev/skills/lispking/ferris-search/ferris-search-setup"><img src="https://agentmods.dev/badge/skills/lispking/ferris-search/ferris-search-setup/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/lispking/ferris-search/ferris-search-setup"><img src="https://agentmods.dev/badge/skills/lispking/ferris-search/ferris-search-setup.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00120 | $0.01068 |
| Opus 5 | $0.00060 | $0.00534 |
| Sonnet 5 | $0.00024 | $0.00214 |
| Haiku 4.5 | $0.00012 | $0.00107 |
Grade A, and why
ferris-search-setup scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 106 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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 |
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 106 lines · 120 tokens per session scan A d4e37c92a30a
ferris-search-setup is a skill published in the GitHub repository lispking/ferris-search (60 stars, last pushed 5mo ago), licensed Apache-2.0. It adds 120 tokens to every session and 1,068 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
package-release
Prepare, publish, repair, or verify package releases and changelogs. Always use for package/version release, publish, ship, tag, changelog, release notes, registry publication, documentation publication, or GitHub Release work. Distinguish package releases from application deployments before acting.
pr-review
Review GitHub pull requests critically and contextually, including first reviews, re-reviews after requested changes, external reviewer or bot feedback, codebase-fit checks, validation, inline comment drafts, and merge decisions. Use when reviewing a PR, checking whether review comments were addressed, evaluating…
session-reflect
Analyze a user's pi coding-agent session history for recurring behavior, prompting habits, workflow loops, friction, and preferences. Use when the user asks to inspect or reflect on pi sessions, common behavior patterns, agent/user interaction style, prompting habits, or personal pi workflow quality.
twitter-thread-style
Write or revise X/Twitter developer announcement threads in the user's preferred style. Use for technical launch threads, project announcements, release threads, and threads with code screenshots/snippets.
chat-to-skill
Convert current chat session into a reusable skill. Use when user says "/chat-to-skill", "save this as skill", "create skill from chat", "turn this into a skill", or wants to preserve learnings from the conversation as long-term memory.
dont-anger-mario
Prepare concise, high-signal issues or contribution proposals for the pi repository without annoying maintainers. Use when filing issues/PR proposals for earendil-works/pi or mentioning Mario/pi tracker etiquette.