SKILL.md
ferris-search MCP Tools Skill
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: "本地文档不完整,建议运行 /sync-crate-skills ferris-search --force 更新文档" - Still answer based on SKILL.md patterns + built-in knowledge
- 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) |
— |
fetchwebcontent |
url |
max_chars (default 30000) |
public HTTP/HTTPS |
fetchgithubreadme |
url |
— | github.com |
fetchcsdnarticle |
url |
— | csdn.net |
fetchjuejinarticle |
url |
— | juejin.cn + /post/ |
fetchzhihuarticle |
url |
— | zhihu.com |
fetchlinuxdoarticle |
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 fetchwebcontent for CSDN/Juejin/Zhihu |
Use domain-specific fetcher | Better extraction quality |
When Writing Code
- Use domain-specific fetchers (csdn, juejin, zhihu, linuxdo) instead of
fetchwebcontentwhen 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 requiresEXAAPIKEYenv var — warn user if they try to use it without onegithubsearches repositories (name, description, stars, language);github_codesearches code files (path, blob URL)GITHUBTOKENis optional forgithub/githubcode— without it, GitHub rate-limits to 60 req/hr; with it, 5000 req/hr