[FEATURE]Add AnySearchTool with anonymous mode
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 58.8k
- Forks
- 8.5k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 109
Description
Feature Area
Integration with external tools
Is your feature request related to a an existing bug? Please link it here.
NA
Describe the solution you'd like
Add a native AnySearchTool under lib/crewai-tools/src/crewai_tools/tools/anysearch_tool/, following the existing pattern of brave_search_tool/, tavily_search_tool/, and serper_dev_tool/:
python
from crewai_tools import AnySearchTool
AnySearchTool() # works without an API key
AnySearchTool(api_key="...") # optional
Key point: AnySearch supports an anonymous mode — it can be called without an Authorization header, with a daily free quota. Verified on 2026-09-07: an anonymous call returns HTTP 200 / code: 0.
If accepted, this would be the first zero-config web search tool in the CrewAI ecosystem, so new users can run a crew with web search without signing up for a search API first.
Scope of changes:
New anysearch_tool/ directory (init.py, anysearch_tool.py, README.md)
Register in the two init.py files (alphabetical order)
New tests
New docs in four languages: docs/edge/{en,ar,ko,pt-BR}/
No existing tool logic is touched. No new dependencies (requests is already a core dependency). No changes to tool.specs.json or docs/v*/.
Describe alternatives you've considered
1.MCP approach: MCPServerAdapter already exists, but MCP servers are declared by users in their own projects — zero in-repo code, so there is no PR to submit.
2.Skill approach: Skills Repository is an external marketplace form, which does not meet the "built-in" requirement.
3.No anonymous mode: Match existing tools and require an API key, but that would remove the differentiating value and make the case much weaker.
The native API tool was chosen because it is the only form that lands in the main repo, ships with crewai[tools], and gets listed in the official docs as a default integration.
Additional context
API key requirements of existing tools:
Tool Behavior without a key
BraveSearchTool raises ValueError at construction
TavilySearchTool requires TAVILY_API_KEY + an extra tavily-python package
SerperDevTool requires SERPER_API_KEY
AnySearchTool (proposed) ✅ works anonymously
grep -ri anysearch returns 0 hits across the repo — no naming conflicts.
CrewAI tools are flat and independent; there is no router table and no shared schema, so adding a new tool does not affect any existing tool's behavior.
Prior art: the repo already hosts many third-party search/scraping tools — Brave, Serper, Tavily, Exa, Linkup, Oxylabs, Firecrawl, SerpApi. Vendor tool integrations are a well-established pattern here.
The first PR would cover search only; tag / zone / language / /v1/extract would be left for follow-up PRs.
Willingness to Contribute
Yes, I'd be happy to submit a pull request
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing brave_search_tool/, tavily_search_tool/, and serper_dev_tool/ under lib/crewai-tools/src/crewai_tools/tools/. Add the anysearch_tool/ files, register the tool in both named init.py files, and add tests plus the four-language docs. Done means anonymous and API-key calls are covered, the tool is importable, and the new tests pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- documentation, tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 72/100