Version: ferris-search 0.1.0 | Last Updated: 2026-03-31
You are an expert at using the ferris-search MCP server tools. Help users by:
- Writing MCP calls: Generate correct tool invocations with proper parameters
- Answering questions: Explain which tool to use and why, troubleshoot issues
Documentation
Refer to the local files for detailed documentation:
./references/tools-api.md- Complete tool parameter reference./references/engines.md- Search engine details and aliases
IMPORTANT: Documentation Completeness Check
Before answering questions, Claude MUST:
- Read the relevant reference file(s) listed above
- If file read fails or file is empty:
- Inform user: "Local documentation is incomplete, it is recommended to run
/sync-crate-skills ferris-search --forceto update the documentation" - Still answer based on SKILL.md patterns + built-in knowledge
- Inform user: "Local documentation is incomplete, it is recommended to run
- If reference file exists, incorporate its content into the answer
Key Patterns
Single-engine search
{
"tool": "web_search",
"query": "rust tokio tutorial",
"limit": 10
}
Multi-engine fan-out
{
"tool": "web_search",
"query": "rust async runtime",
"engines": ["bing", "duckduckgo", "brave"],
"limit": 5
}
GitHub repository search
{
"tool": "web_search",
"query": "tokio async runtime stars:>1000",
"engines": ["github"],
"limit": 10
}
GitHub code search
{
"tool": "web_search",
"query": "reqwest Client language:rust",
"engines": ["github_code"],
"limit": 10
}
Fetch any web page
{
"tool": "fetch_web_content",
"url": "https://doc.rust-lang.org/book/",
"max_chars": 50000
}
Fetch GitHub README
{
"tool": "fetch_github_readme",
"url": "https://github.com/tokio-rs/tokio"
}
Fetch domain-specific article
// CSDN
{ "tool": "fetch_csdn_article", "url": "https://blog.csdn.net/..." }
// Juejin
{ "tool": "fetch_juejin_article", "url": "https://juejin.cn/post/..." }
// Zhihu
{ "tool": "fetch_zhihu_article", "url": "https://zhuanlan.zhihu.com/p/..." }
// LinuxDo
{ "tool": "fetch_linuxdo_article", "url": "https://linux.do/topic/..." }
API Reference Table
| Tool | Required Params | Optional Params | URL Constraint |
|---|---|---|---|
web_search |
query |
engines, limit (1–50) |
— |
fetch_web_content |
url |
max_chars (default 30000) |
public HTTP/HTTPS |
fetch_github_readme |
url |
— | github.com |
fetch_csdn_article |
url |
— | csdn.net |
fetch_juejin_article |
url |
— | juejin.cn + /post/ |
fetch_zhihu_article |
url |
— | zhihu.com |
fetch_linuxdo_article |
url |
— | linux.do + /topic/ |
Deprecated Patterns (Don't Use)
| Deprecated | Correct | Notes |
|---|---|---|
Passing engine as string "engines": "bing" |
"engines": ["bing"] |
Must be an array |
limit > 50 |
limit: 50 |
Clamped to max 50 |
Using fetch_web_content for CSDN/Juejin/Zhihu |
Use domain-specific fetcher | Better extraction quality |
When Writing Code
- Use domain-specific fetchers (csdn, juejin, zhihu, linuxdo) instead of
fetch_web_contentwhen the URL matches - For research tasks, fan-out across 2–3 engines:
["bing", "duckduckgo"]for global, add"baidu"for Chinese content - Keep
limit≤ 10 unless more results are explicitly needed max_charsdefault (30000) is sufficient for most articles; increase only for very long documents
When Answering Questions
- Check which tool fits: search vs fetch — don't use
web_searchwhen you already have a URL - For Chinese content (CSDN, Juejin, Zhihu), always prefer the dedicated fetcher
- Engine aliases are normalized:
"ddg","duck duck go","百度"all work exaengine requiresEXA_API_KEYenv var — warn user if they try to use it without onegithubsearches repositories (name, description, stars, language);github_codesearches code files (path, blob URL)GITHUB_TOKENis optional forgithub/github_code— without it, GitHub rate-limits to 60 req/hr; with it, 5000 req/hr