Overview
Integrate with a minimal search chain Context7、Exa、TinyFish, web page body reading,mcp-deepwiki and github-fetcher. For ordinary searches, directly use the tools already available in the current session; when the environment is missing, prompt the user to manually run $search-web setup and restart the code agent.
Principle: use a fixed tool chain for each type of search target; for online searches, prefer Exa, and only use Exa when TinyFish fails, the quota is reached, the service is unavailable, or the result is empty. CLI as a fallback.
Parameter Entry
This skill distinguishes two modes via invocation parameters (i.e., the parameters following /search-web , or the Skill tool's args):
- parameter is
setup(written as$search-web setup): execute the initialization and MCP configuration process, then stop the current search after completion. - Other parameters or no parameters: directly enter the search process, do not run
detect.sh, and do not automatically install MCP.
When to Use
- Query the official documentation of a library, framework, SDK, or language (library docs, API reference, framework guides)
- Find code examples, tutorials, blog posts, or the latest web materials (code examples, npm packages)
- Read the body of a specified web page (only after the URL is known)
- View GitHub repository structure, documentation, and source code entry points (README, source code, directory structure)
- Read specific files or directory structures in a GitHub repository
- When encountering
library not found、rate limit、documentation outdatedand needing to look up the latest information
When Not to Use
- Purely local code retrieval or ordinary Q&A that does not require internet access
- Needing to directly execute code, run tests, or debug business logic
- Complete local documentation already exists and no online verification is needed
- Needing to modify or refactor code (refactoring)
MCP Quick Reference
| Search Target | Tool | Fixed Rule |
|---|---|---|
| Technical Documentation | Context7 | First resolve-library-id then query-docs, ≤3 times per question |
| Web Search | Exa / TinyFish | Exa preferred;Exa use when TinyFish |
| GitHub Repository Documentation | mcp-deepwiki | Repository-level documentation overview and in-depth reading |
| GitHub File/Directory | github-fetcher | Specific file or directory structure |
| Web Page Body | Host reading tool / TinyFish | Use only after the URL is known; when host reading fails, you can use TinyFish to fetch the body |
Core Process
- If the user parameter is
setup, readreferences/setup.md, execute the initialization process, then stop the current search. - Ordinary searches do not run
bash scripts/detect.sh, and directly select tools according to the search target. - For configuration-type questions (threshold, switch, flag, option, parameter, env), first read
references/strategies/config-index-shortcut.md。 - Technical documentation first goes through
Context7(firstresolve-library-idthenquery-docs)。 - Online searches first use
Exa; whenExaWhen it fails, hits a quota limit, is unavailable, or returns empty results, followreferences/tinyfish-fallback.mduseTinyFishCLI as a fallback. - When search hits a GitHub repository, use
mcp-deepwiki; when a specific file or directory needs to be read, usegithub-fetcher。 - Only when the user has already given an explicit URL,
Exaa URL has been located, orTinyFisha URL has been located, is reading the webpage body permitted. - Finally, organize the answer according to
references/rules/output-format.md.
MCP usage boundaries
For the tool mapping, see the "MCP Quick Reference" table above. Fixed prohibitions:
- Do not use
open-websearchor any other unspecified search tool in place ofExa/TinyFish - Do not use
mcp-deepwikiin place ofgithub-fetcherfile reading, or vice versa - In normal search, if
Context7、Exa、mcp-deepwiki、github-fetcherreports not registered, not loaded, connection failure, orserver unavailable, stop the current search, and prompt the user to run$search-web setupand restart the code agent. - Normal search does not automatically execute
setup-mcp.sh, and does not automatically write any MCP configuration. TinyFishis a CLI fallback tool; only try to use it whenExahas been called but failed, hit a quota limit, is unavailable, or returned empty results.- When the host type is unrecognized, normal search proceeds as usual; the user may proactively run
$search-web setupto obtain the generic MCP JSON.
Common errors
- Skipping
resolve-library-idand directly guessinglibraryId(Context7 must be called in two steps) - Calling
libraryNamewhile missing theresolve-library-id - Passing
libraryNametoquery-docs(should uselibraryId) ExaWhen the MCP is not registered or not loaded, directly useTinyFish(should be handled as an MCP missing and prompt a restart; only whenExasearch calls return failure, hit a quota limit, are unavailable, or return empty results shouldTinyFish)- Treating webpage body reading as a search step in place of
Exa - Using
mcp-deepwikiin place ofgithub-fetcherto read files, or vice versa - Continuing to call Context7 after exceeding the 3-call limit (should switch to Exa)
- Repeatedly retrying when the MCP is not loaded (should prompt the user to run
$search-web setupand restart)
Continue loading on demand
Only read examples/usage.md:
- when you need
Context7、Exa、TinyFish, webpage body reading,mcp-deepwikiorgithub-fetcherparameter examples - When you need
Context7error demonstrations, call-order examples, or multi-source integration cases - When you need webpage body reading fallback cases
- When you need common failure scenarios or troubleshooting examples
If the example documents conflict with the main process, this file prevails.
Only when the user calls $search-web setup, or the user explicitly requests configuring/fixing the search environment, read references/setup.md。
When you need standard output templates, source annotation rules, or Markdown structure constraints, read references/rules/output-format.md。
When you need TinyFish installation,TINYFISH_API_KEY writing, fallback search, or webpage body fetching commands, read references/tinyfish-fallback.md。
When encountering questions about exact configuration item names, thresholds, switches,flag、option、parameter、env and similar, read references/strategies/config-index-shortcut.md。
Output requirements
- Before the final answer, you must format according to
references/rules/output-format.mdformat - Clearly annotate the source type:
Context7、Exa、TinyFish, webpage body reading,mcp-deepwiki、github-fetcher - Preserve original links, document entry points, or repository identifiers
- If downgrading from
ExatoTinyFish, you must stateExa's reason for failure - If a downgrade, read failure, or insufficient information occurs, state it directly
- Do not fabricate content that was not read