Search the public web through Exa's hosted MCP endpoint without an API key. Use this whenever the user needs discovery rather than direct retrieval: finding relevant documentation, recent announcements, product pages, blog posts, comparisons, or current external context. Prefer this skill when the user does not already have a specific URL, or when you should first identify the best sources before using web-fetch on one of them.
Scanned 9/10/2026
Install to Claude Code
npx -y skills add luokai0/ai-agent-skills-by-luo-kai --skill shikamaru-web-search --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Shikamaru Web Search?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/luokai0-shikamaru-web-search)More formats (shields.io, HTML) on the badges page.
---
name: web-search
description: "Search the public web through Exa's hosted MCP endpoint without an API key. Use this whenever the user needs discovery rather than direct retrieval: finding relevant documentation, recent announcements, product pages, blog posts, comparisons, or current external context. Prefer this skill when the user does not already have a specific URL, or when you should first identify the best sources before using web-fetch on one of them."
compatibility: opencode
metadata:
transport: exa-mcp
runtime: node
---
# Web Search
Use this skill for web discovery.
Typical cases:
- the user wants recent facts, news, releases, or announcements
- you need to find the right docs page, blog post, repo, or product page
- you need multiple external sources before summarizing or comparing them
- the user asks vague things like “find the official docs”, “look up current pricing”, or “see what changed recently”
If the user already gave an exact URL and wants its contents, use `web-fetch` instead.
## Command
Run:
```bash
node ./search.mjs --query "<query>"
```
Optional flags:
- `--numResults <n>`
- `--type auto|fast|deep`
- `--livecrawl fallback|preferred`
- `--contextMaxCharacters <n>`
Example:
```bash
node ./search.mjs \
--query "Anthropic Model Context Protocol latest announcements" \
--numResults 5 \
--type fast
```
## How to form good queries
Turn the user's request into a focused search query before running the tool.
Prefer queries that include:
- the exact product, company, library, framework, or topic name
- the aspect you need, such as pricing, release notes, docs, migration guide, API reference, benchmark, or comparison
- time qualifiers when relevant, like `2026`, `latest`, `recent`, or a version number
- source hints when useful, such as `site:docs.example.com` or `site:github.com`
When needed, do multiple narrower searches instead of one broad search.
Examples:
- `next.js app router caching docs site:nextjs.org`
- `openai responses api pricing 2026`
- `cloudflare workers durable objects migration guide`
- `site:github.com vercel ai sdk tool calling examples`
## Search strategy
1. Start with a tight query.
2. Review the returned sources and snippets.
3. If results are weak, refine the query rather than repeating the same one.
4. If you identify a promising URL that needs close inspection, follow up with `web-fetch`.
5. For comparisons or research summaries, prefer gathering a few solid sources over many noisy ones.
## Choosing options
Use the defaults unless the task clearly calls for something else.
- `--type auto`: good default
- `--type fast`: use for quick fact-finding and straightforward discovery
- `--type deep`: use for harder research tasks where recall matters more than speed
- `--numResults`: lower it for narrow queries, increase it when surveying a space
- `--contextMaxCharacters`: increase only when you truly need more returned context
- `--livecrawl preferred`: use when freshness matters and you want more live data
## How to handle output
The CLI returns raw search context from Exa.
After searching:
- summarize the findings instead of dumping the raw output unless the user asks for it
- cite or mention the most relevant sources clearly
- call out uncertainty, stale-looking results, or conflicts between sources
- if the user asked a precise question and the search output is still ambiguous, fetch one or two authoritative pages and inspect them with `web-fetch`
## Failure handling
If the search fails or returns weak results:
- tighten or reframe the query
- reduce scope to a specific vendor, site, product, or timeframe
- split a compound question into separate searches
- tell the user plainly if the source quality is weak or current information is hard to verify
## Notes
- No API key is required.
- The endpoint mirrors opencode's Exa-backed search flow.
- This skill is for discovery first; pair it with `web-fetch` for detailed page retrieval.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!