mcp-omnisearch
mcp-omnisearch
Π‘Π΅ΡΠ²Π΅Ρ Model Context Protocol (MCP), ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΡΠΌ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°ΠΌ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΠΌ ΠΠ. ΠΡΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Tavily, Perplexity, Kagi, Jina AI, Brave ΠΈ Firecrawl Π΄Π»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°, ΠΎΡΠ²Π΅ΡΠΎΠ² ΠΠ, ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΈ ΡΡΠ½ΠΊΡΠΈΠΉ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ΅Π· Π΅Π΄ΠΈΠ½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ.
Π€ΡΠ½ΠΊΡΠΈΠΈ
π ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΠΎΠΈΡΠΊΠ°
Tavily Search : ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½ Π΄Π»Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Ρ ΡΠΈΠ»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠΈΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΡ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ API (include_domains/exclude_domains).
Brave Search : ΠΠΎΠΈΡΠΊ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΡ, Ρ Ρ ΠΎΡΠΎΡΠΈΠΌ ΠΏΠΎΠΊΡΡΡΠΈΠ΅ΠΌ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°. ΠΠΌΠ΅Π΅Ρ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΏΠΎΠΈΡΠΊΠ° (site:, -site:, filetype:, intitle:, inurl:, before:, after: ΠΈ ΡΠΎΡΠ½ΡΠ΅ ΡΡΠ°Π·Ρ).
Kagi Search : ΠΡΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠΈΡΠΊΠ° Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π²Π»ΠΈΡΠ½ΠΈΠ΅ΠΌ ΡΠ΅ΠΊΠ»Π°ΠΌΡ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° Π°Π²ΡΠΎΡΠΈΡΠ΅ΡΠ½ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ ΠΏΠΎΠΈΡΠΊΠ° Π² ΡΡΡΠΎΠΊΠ΅ Π·Π°ΠΏΡΠΎΡΠ° (site:, -site:, filetype:, intitle:, inurl:, before:, after: ΠΈ ΡΠΎΡΠ½ΡΠ΅ ΡΡΠ°Π·Ρ).
π― ΠΠΎΠΈΡΠΊΠΎΠ²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ
MCP Omnisearch ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΌΠΎΡΠ½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎΠΈΡΠΊΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²:
ΠΠ±ΡΠΈΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΏΠΎΠΈΡΠΊΠ°
Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ²: Π΄ΠΎΡΡΡΠΏΠ½Π° Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ²
Tavily: Π§Π΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ API (include_domains/exclude_domains)
Brave & Kagi: Π§Π΅ΡΠ΅Π· ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΡ site: ΠΈ -site:
Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΏΠΎ ΡΠΈΠΏΡ ΡΠ°ΠΉΠ»Π°: Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² Brave ΠΈ Kagi (filetype:)
Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΏΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ°ΠΌ ΠΈ URL-Π°Π΄ΡΠ΅ΡΠ°ΠΌ: Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² Brave ΠΈ Kagi (intitle:, inurl:)
Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ ΠΏΠΎ Π΄Π°ΡΠ΅: Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² Brave ΠΈ Kagi (Π΄ΠΎ:, ΠΏΠΎΡΠ»Π΅:)
Π’ΠΎΡΠ½ΠΎΠ΅ ΡΠΎΠ²ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ ΡΡΠ°Π·Ρ: Π΄ΠΎΡΡΡΠΏΠ½ΠΎ Π² Brave ΠΈ Kagi (Β«ΡΡΠ°Π·Π°Β»)
ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
// Using Brave or Kagi with query string operators
{
"query": "filetype:pdf site:microsoft.com typescript guide"
}
// Using Tavily with API parameters
{
"query": "typescript guide",
"include_domains": ["microsoft.com"],
"exclude_domains": ["github.com"]
}ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°
Brave Search : ΠΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π² ΡΡΡΠΎΠΊΠ΅ Π·Π°ΠΏΡΠΎΡΠ°
ΠΠΎΠΈΡΠΊ Kagi : ΠΏΠΎΠ»Π½Π°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π² ΡΡΡΠΎΠΊΠ΅ Π·Π°ΠΏΡΠΎΡΠ°
Tavily Search : Π€ΠΈΠ»ΡΡΡΠ°ΡΠΈΡ Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ API
π€ ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΠ
Perplexity AI : ΡΠ°ΡΡΠΈΡΠ΅Π½Π½Π°Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΎΡΠ²Π΅ΡΠΎΠ², ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½ΡΡΡΠ°Ρ Π²Π΅Π±-ΠΏΠΎΠΈΡΠΊ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Ρ GPT-4 Omni ΠΈ Claude 3
Kagi FastGPT : Π±ΡΡΡΡΡΠ΅ ΠΎΡΠ²Π΅ΡΡ Ρ ΡΠΈΡΠ°ΡΠ°ΠΌΠΈ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠΎΠΌ (ΡΠΈΠΏΠΈΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΡΠ²Π΅ΡΠ° 900 ΠΌΡ)
π ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°
Jina AI Reader : ΡΠΈΡΡΠΎΠ΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΡΠ±ΡΠΈΡΡΠΎΠ² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ PDF
Kagi Universal Summarizer : ΡΠ΅Π·ΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π΄Π»Ρ ΡΡΡΠ°Π½ΠΈΡ, Π²ΠΈΠ΄Π΅ΠΎ ΠΈ ΠΏΠΎΠ΄ΠΊΠ°ΡΡΠΎΠ²
Tavily Extract : ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΡ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΠΎΠΉ Π³Π»ΡΠ±ΠΈΠ½ΠΎΠΉ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ (Β«Π±Π°Π·ΠΎΠ²ΡΠΉΒ» ΠΈΠ»ΠΈ Β«ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΉΒ»). ΠΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ, ΡΠ°ΠΊ ΠΈ ΠΈΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ URL Ρ ΠΌΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠΌΠΈ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»ΠΎΠ² ΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ.
Firecrawl Scrape : ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΡΡΡ Π΄Π°Π½Π½ΡΡ , Π³ΠΎΡΠΎΠ²ΡΡ ΠΊ LLM, ΠΈΠ· ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ URL-Π°Π΄ΡΠ΅ΡΠΎΠ² Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
Firecrawl Crawl : Π³Π»ΡΠ±ΠΎΠΊΠΎΠ΅ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΠΎΠ΄ΡΡΡΠ°Π½ΠΈΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΌΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ Π³Π»ΡΠ±ΠΈΠ½Ρ.
Firecrawl Map : Π±ΡΡΡΡΡΠΉ ΡΠ±ΠΎΡ URL-Π°Π΄ΡΠ΅ΡΠΎΠ² Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΡΠΎΠ²
ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Firecrawl : ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΎΠΊ Π½Π° Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅
ΠΠ΅ΠΉΡΡΠ²ΠΈΡ Firecrawl : ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎ ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΉ (ΡΠ΅Π»ΡΠΊΠΈ, ΠΏΡΠΎΠΊΡΡΡΠΊΠ° ΠΈ Ρ. Π΄.) ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°.
π ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ
API ΠΎΠ±ΠΎΠ³Π°ΡΠ΅Π½ΠΈΡ Kagi : Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΠΈΠ· ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ² (Teclis, TinyGem)
Jina AI Grounding : ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°ΠΊΡΠΎΠ² Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π²Π΅Π±-Π·Π½Π°Π½ΠΈΠΉ
Related MCP server: MCP Search Server
ΠΠΈΠ±ΠΊΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΊΠ»ΡΡΡ API
MCP Omnisearch ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ Π²Π°ΠΌ ΠΊΠ»ΡΡΠ°ΠΌΠΈ API. ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ ΠΊΠ»ΡΡΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠ² β ΡΠ΅ΡΠ²Π΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠ»ΡΡΠΈ API Π΄ΠΎΡΡΡΠΏΠ½Ρ, ΠΈ Π²ΠΊΠ»ΡΡΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠ².
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΡΡ API Tavily ΠΈ Perplexity, Π±ΡΠ΄ΡΡ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΈ.
ΠΡΠ»ΠΈ Ρ Π²Π°Ρ Π½Π΅Ρ ΠΊΠ»ΡΡΠ° API Kagi, ΡΠ΅ΡΠ²ΠΈΡΡ Π½Π° Π±Π°Π·Π΅ Kagi Π±ΡΠ΄ΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ, Π½ΠΎ Π²ΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΈ Π±ΡΠ΄ΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΠΎΠ±ΡΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅.
Π‘Π΅ΡΠ²Π΅Ρ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ, Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π½Π°ΡΡΡΠΎΠ΅Π½Π½ΡΡ Π²Π°ΠΌΠΈ ΠΊΠ»ΡΡΠ΅ΠΉ API.
Π’Π°ΠΊΠ°Ρ Π³ΠΈΠ±ΠΊΠΎΡΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π»Π΅Π³ΠΊΠΎ Π½Π°ΡΠ°ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ»ΠΈ Π΄Π²ΡΠΌΡ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½ΠΎΠ²ΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ
ΠΡΠΎΡ ΡΠ΅ΡΠ²Π΅Ρ ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠ΅ΡΠ΅Π· Π²Π°Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ MCP. ΠΠΎΡ ΠΏΡΠΈΠΌΠ΅ΡΡ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ ΡΡΠ΅Π΄:
ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΠ»Π°ΠΉΠ½Π°
ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠΎ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Cline MCP:
{
"mcpServers": {
"mcp-omnisearch": {
"command": "node",
"args": ["/path/to/mcp-omnisearch/dist/index.js"],
"env": {
"TAVILY_API_KEY": "your-tavily-key",
"PERPLEXITY_API_KEY": "your-perplexity-key",
"KAGI_API_KEY": "your-kagi-key",
"JINA_AI_API_KEY": "your-jina-key",
"BRAVE_API_KEY": "your-brave-key",
"FIRECRAWL_API_KEY": "your-firecrawl-key"
},
"disabled": false,
"autoApprove": []
}
}
}Claude Desktop Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ WSL
ΠΠ»Ρ ΡΡΠ΅Π΄ WSL Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΡΡΠΎ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Claude Desktop:
{
"mcpServers": {
"mcp-omnisearch": {
"command": "wsl.exe",
"args": [
"bash",
"-c",
"TAVILY_API_KEY=key1 PERPLEXITY_API_KEY=key2 KAGI_API_KEY=key3 JINA_AI_API_KEY=key4 BRAVE_API_KEY=key5 FIRECRAWL_API_KEY=key6 node /path/to/mcp-omnisearch/dist/index.js"
]
}
}
}ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΡΠ΅Π΄Ρ
Π‘Π΅ΡΠ²Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΊΠ»ΡΡΠΈ API Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°. ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½Ρ ΠΊΠ»ΡΡΠΈ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ² - Π±ΡΠ΄ΡΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°Π½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π²Π°ΡΠΈΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ ΠΊΠ»ΡΡΠ°ΠΌ API:
TAVILY_API_KEY: ΠΠ»Ρ ΠΏΠΎΠΈΡΠΊΠ° TavilyPERPLEXITY_API_KEY: ΠΠ»Ρ Perplexity AIKAGI_API_KEY: ΠΠ»Ρ ΡΠ»ΡΠΆΠ± Kagi (FastGPT, Summarizer, Enrichment)JINA_AI_API_KEY: ΠΠ»Ρ ΡΠ»ΡΠΆΠ± Jina AI (ΡΡΠΈΡΡΠ²Π°ΡΠ΅Π»Ρ, Π·Π°Π·Π΅ΠΌΠ»Π΅Π½ΠΈΠ΅)BRAVE_API_KEY: ΠΠ»Ρ ΡΠΌΠ΅Π»ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°FIRECRAWL_API_KEY: ΠΠ»Ρ ΡΠ»ΡΠΆΠ± Firecrawl (ΡΠ±ΠΎΡ Π΄Π°Π½Π½ΡΡ , ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅, Π΄Π΅ΠΉΡΡΠ²ΠΈΡ)
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°ΡΠ°ΡΡ Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π΄Π²ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ API ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ. Π‘Π΅ΡΠ²Π΅Ρ Π±ΡΠ΄Π΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅.
API
ΠΠ° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ MCP, ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠΎ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠΌ:
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΏΠΎΠΈΡΠΊΠ°
ΠΏΠΎΠΈΡΠΊ_ΡΠ°Π²ΠΈΠ»ΠΈ
ΠΠΎΠΈΡΠΊ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ API ΠΏΠΎΠΈΡΠΊΠ° Tavily. ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΡΠ΅Π±ΡΡΡΠΈΡ Π½Π°Π΄Π΅ΠΆΠ½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΈ ΡΠΈΡΠ°Ρ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
query(ΡΡΡΠΎΠΊΠ°, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): ΠΠΎΠΈΡΠΊΠΎΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡ
ΠΡΠΈΠΌΠ΅Ρ:
{
"query": "latest developments in quantum computing"
}ΠΏΠΎΠΈΡΠΊ_Ρ ΡΠ°Π±ΡΡΠΉ
ΠΠ΅Π±-ΠΏΠΎΠΈΡΠΊ, ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΊΠΎΠ½ΡΠΈΠ΄Π΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎΡΡΡ ΠΈ Ρ ΠΎΡΠΎΡΠΎ ΠΎΡΠ²Π΅ΡΠ°ΡΡΠΈΠΉ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ΅ΠΌΡ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
query(ΡΡΡΠΎΠΊΠ°, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): ΠΠΎΠΈΡΠΊΠΎΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡ
ΠΡΠΈΠΌΠ΅Ρ:
{
"query": "rust programming language features"
}ΠΏΠΎΠΈΡΠΊ_ΠΊΠ°Π³ΠΈ
ΠΡΡΠΎΠΊΠΎΠΊΠ°ΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠΈΡΠΊΠ° Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π²Π»ΠΈΡΠ½ΠΈΠ΅ΠΌ ΡΠ΅ΠΊΠ»Π°ΠΌΡ. ΠΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ Π΄Π»Ρ ΠΏΠΎΠΈΡΠΊΠ° Π°Π²ΡΠΎΡΠΈΡΠ΅ΡΠ½ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΈ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ².
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
query(ΡΡΡΠΎΠΊΠ°, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): ΠΠΎΠΈΡΠΊΠΎΠ²ΡΠΉ Π·Π°ΠΏΡΠΎΡlanguage(ΡΡΡΠΎΠΊΠ°, Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): Π€ΠΈΠ»ΡΡΡ ΡΠ·ΡΠΊΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β«enΒ»)no_cache(Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): ΠΠ±Ρ ΠΎΠ΄ ΠΊΡΡΠ° Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠ²Π΅ΠΆΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²
ΠΡΠΈΠΌΠ΅Ρ:
{
"query": "latest research in machine learning",
"language": "en"
}ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΠ
ai_perplexity
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΎΡΠ²Π΅ΡΠΎΠ² Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠ° Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠ΅ΠΉ Π²Π΅Π±-ΠΏΠΎΠΈΡΠΊΠ° Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ΅Π°Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
query(ΡΡΡΠΎΠΊΠ°, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): ΠΠΎΠΏΡΠΎΡ ΠΈΠ»ΠΈ ΡΠ΅ΠΌΠ° Π΄Π»Ρ ΠΎΡΠ²Π΅ΡΠ° ΠΠ
ΠΡΠΈΠΌΠ΅Ρ:
{
"query": "Explain the differences between REST and GraphQL"
}ai_kagi_fastgpt
ΠΡΡΡΡΡΠ΅ ΠΎΡΠ²Π΅ΡΡ Ρ ΡΠΈΡΠ°ΡΠ°ΠΌΠΈ, ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΡΠΊΡΡΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΈΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΠΎΠΌ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
query(ΡΡΡΠΎΠΊΠ°, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): ΠΠΎΠΏΡΠΎΡ Π΄Π»Ρ Π±ΡΡΡΡΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΠ° ΠΠ
ΠΡΠΈΠΌΠ΅Ρ:
{
"query": "What are the main features of TypeScript?"
}ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°
ΠΏΡΠΎΡΠ΅ΡΡ_jina_reader
ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠΉΡΠ΅ URL-Π°Π΄ΡΠ΅ΡΠ° Π² ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ, ΠΏΠΎΠ½ΡΡΠ½ΡΠΉ LLM ΡΠ΅ΠΊΡΡ Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΌΠΈ ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
url(ΡΡΡΠΎΠΊΠ°, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): URL Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ
ΠΡΠΈΠΌΠ΅Ρ:
{
"url": "https://example.com/article"
}ΠΏΡΠΎΡΠ΅ΡΡ_ΠΊΠ°Π³ΠΈ_ΡΡΠΌΠΌΠ°ΡΠΎΡ
ΠΠ±ΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ³ΠΎ URL-Π°Π΄ΡΠ΅ΡΠΎΠ².
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
url(ΡΡΡΠΎΠΊΠ°, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): URL Π΄Π»Ρ ΠΏΠΎΠ΄Π²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΡΠΎΠ³ΠΎΠ²
ΠΡΠΈΠΌΠ΅Ρ:
{
"url": "https://example.com/long-article"
}ΠΏΡΠΎΡΠ΅ΡΡ_tavily_extract
ΠΠ·Π²Π»Π΅ΠΊΠ°ΠΉΡΠ΅ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Ρ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Tavily Extract.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
url(string | string[], ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ URL ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² URL Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°extract_depth(ΡΡΡΠΎΠΊΠ°, Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): ΠΠ»ΡΠ±ΠΈΠ½Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ β Β«Π±Π°Π·ΠΎΠ²Π°ΡΒ» (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) ΠΈΠ»ΠΈ Β«ΡΠ°ΡΡΠΈΡΠ΅Π½Π½Π°ΡΒ»
ΠΡΠΈΠΌΠ΅Ρ:
{
"url": [
"https://example.com/article1",
"https://example.com/article2"
],
"extract_depth": "advanced"
}ΠΡΠ²Π΅Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ:
ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΡΠΎ Π²ΡΠ΅Ρ URL-Π°Π΄ΡΠ΅ΡΠΎΠ²
ΠΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠΉ Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ URL
ΠΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅ Ρ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ»ΠΎΠ², ΡΡΠΏΠ΅ΡΠ½ΡΠΌΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ Π»ΡΠ±ΡΠΌΠΈ Π½Π΅ΡΠ΄Π°ΡΠ½ΡΠΌΠΈ URL-Π°Π΄ΡΠ΅ΡΠ°ΠΌΠΈ
ΠΏΡΠΎΡΠ΅ΡΡ_ΠΎΡΠΈΡΡΠΊΠΈ_ΠΎΠ³Π½Ρ
ΠΠ·Π²Π»Π΅ΠΊΠ°ΠΉΡΠ΅ ΡΠΈΡΡΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, Π³ΠΎΡΠΎΠ²ΡΠ΅ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π² LLM, ΠΈΠ· ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ URL-Π°Π΄ΡΠ΅ΡΠΎΠ² Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½Π½ΠΎΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
url(string | string[], ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ URL ΠΈΠ»ΠΈ ΠΌΠ°ΡΡΠΈΠ² URL Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°extract_depth(ΡΡΡΠΎΠΊΠ°, Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): ΠΠ»ΡΠ±ΠΈΠ½Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ β Β«Π±Π°Π·ΠΎΠ²Π°ΡΒ» (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) ΠΈΠ»ΠΈ Β«ΡΠ°ΡΡΠΈΡΠ΅Π½Π½Π°ΡΒ»
ΠΡΠΈΠΌΠ΅Ρ:
{
"url": "https://example.com/article",
"extract_depth": "basic"
}ΠΡΠ²Π΅Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ:
Π§ΠΈΡΡΡΠΉ, ΠΎΡΡΠΎΡΠΌΠ°ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ markdown ΠΊΠΎΠ½ΡΠ΅Π½Ρ
ΠΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅, Π²ΠΊΠ»ΡΡΠ°Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»ΠΎΠ² ΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ
firecrawl_crawl_process
ΠΠ»ΡΠ±ΠΎΠΊΠΎΠ΅ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ ΠΏΠΎΠ΄ΡΡΡΠ°Π½ΠΈΡ Π²Π΅Π±-ΡΠ°ΠΉΡΠ° Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠΌΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ Π³Π»ΡΠ±ΠΈΠ½Ρ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
url(string | string[], ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): ΠΠ°ΡΠ°Π»ΡΠ½ΡΠΉ URL Π΄Π»Ρ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡextract_depth(ΡΡΡΠΎΠΊΠ°, Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): ΠΠ»ΡΠ±ΠΈΠ½Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ β Β«Π±Π°Π·ΠΎΠ²Π°ΡΒ» (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) ΠΈΠ»ΠΈ Β«ΡΠ°ΡΡΠΈΡΠ΅Π½Π½Π°ΡΒ» (ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π³Π»ΡΠ±ΠΈΠ½ΠΎΠΉ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ)
ΠΡΠΈΠΌΠ΅Ρ:
{
"url": "https://example.com",
"extract_depth": "advanced"
}ΠΡΠ²Π΅Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ:
ΠΠ±ΡΠ΅Π΄ΠΈΠ½Π΅Π½Π½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΡΠΎ Π²ΡΠ΅Ρ ΠΏΡΠΎΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΡΡΠ°Π½ΠΈΡ
ΠΠ½Π΄ΠΈΠ²ΠΈΠ΄ΡΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ
ΠΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅, Π²ΠΊΠ»ΡΡΠ°Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ»ΠΎΠ² ΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΡ
ΠΏΡΠΎΡΠ΅ΡΡ_ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ_ΠΊΠ°ΡΡΡ_firecrawl
ΠΡΡΡΡΡΠΉ ΡΠ±ΠΎΡ URL-Π°Π΄ΡΠ΅ΡΠΎΠ² Ρ Π²Π΅Π±-ΡΠ°ΠΉΡΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ°ΠΉΡΠΎΠ².
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
url(string | string[], ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): URL Π΄Π»Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡextract_depth(ΡΡΡΠΎΠΊΠ°, Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): ΠΠ»ΡΠ±ΠΈΠ½Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ β Β«Π±Π°Π·ΠΎΠ²Π°ΡΒ» (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) ΠΈΠ»ΠΈ Β«ΡΠ°ΡΡΠΈΡΠ΅Π½Π½Π°ΡΒ» (ΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π³Π»ΡΠ±ΠΈΠ½ΠΎΠΉ ΠΊΠ°ΡΡΡ)
ΠΡΠΈΠΌΠ΅Ρ:
{
"url": "https://example.com",
"extract_depth": "basic"
}ΠΡΠ²Π΅Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ:
Π‘ΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΡ URL-Π°Π΄ΡΠ΅ΡΠΎΠ²
ΠΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅, Π²ΠΊΠ»ΡΡΠ°Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°ΠΉΡΠ° ΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ URL-Π°Π΄ΡΠ΅ΡΠΎΠ²
firecrawl_extract_process
ΠΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΠ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΎΠΊ Π½Π° Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
url(string | string[], ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): URL Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ·extract_depth(ΡΡΡΠΎΠΊΠ°, Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): ΠΠ»ΡΠ±ΠΈΠ½Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ β Β«Π±Π°Π·ΠΎΠ²Π°ΡΒ» (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) ΠΈΠ»ΠΈ Β«ΡΠ°ΡΡΠΈΡΠ΅Π½Π½Π°ΡΒ»
ΠΡΠΈΠΌΠ΅Ρ:
{
"url": "https://example.com",
"extract_depth": "basic"
}ΠΡΠ²Π΅Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ:
Π‘ΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π½ΡΠ΅ ΡΠΎ ΡΡΡΠ°Π½ΠΈΡΡ
ΠΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅, Π²ΠΊΠ»ΡΡΠ°Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅, ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ
firecrawl_actions_process
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΡΠΎ ΡΡΡΠ°Π½ΠΈΡΠ΅ΠΉ (ΡΠ΅Π»ΡΠΊΠΈ, ΠΏΡΠΎΠΊΡΡΡΠΊΠ° ΠΈ Ρ. Π΄.) ΠΏΠ΅ΡΠ΅Π΄ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ΠΌ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
url(string | string[], ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): URL Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° ΠΈΠ·extract_depth(ΡΡΡΠΎΠΊΠ°, Π½Π΅ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): ΠΠ»ΡΠ±ΠΈΠ½Π° ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ β Β«Π±Π°Π·ΠΎΠ²Π°ΡΒ» (ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ) ΠΈΠ»ΠΈ Β«ΡΠ°ΡΡΠΈΡΠ΅Π½Π½Π°ΡΒ» (ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΠ΅Ρ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΉ)
ΠΡΠΈΠΌΠ΅Ρ:
{
"url": "https://news.ycombinator.com",
"extract_depth": "basic"
}ΠΡΠ²Π΅Ρ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ:
ΠΠΎΠ½ΡΠ΅Π½Ρ, ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½Π½ΡΠΉ ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠΉ
ΠΠΏΠΈΡΠ°Π½ΠΈΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ
Π‘ΠΊΡΠΈΠ½ΡΠΎΡ ΡΡΡΠ°Π½ΠΈΡΡ (Π΅ΡΠ»ΠΈ ΠΈΠΌΠ΅Π΅ΡΡΡ)
ΠΠ΅ΡΠ°Π΄Π°Π½Π½ΡΠ΅, Π²ΠΊΠ»ΡΡΠ°Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ
ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ
enhance_kagi_enrichment
ΠΠΎΠ»ΡΡΠΈΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ ΠΈΠ· ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡΠΎΠ².
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
query(ΡΡΡΠΎΠΊΠ°, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): ΠΠ°ΠΏΡΠΎΡ Π½Π° ΠΎΠ±ΠΎΠ³Π°ΡΠ΅Π½ΠΈΠ΅
ΠΡΠΈΠΌΠ΅Ρ:
{
"query": "emerging web technologies"
}enhance_jina_grounding
Π‘Π²Π΅ΡΡΠΉΡΠ΅ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΈΠ· ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ:
statement(ΡΡΡΠΎΠΊΠ°, ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ): Π·Π°ΡΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ
ΠΡΠΈΠΌΠ΅Ρ:
{
"statement": "TypeScript adds static typing to JavaScript"
}Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ°
ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ
ΠΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ:
pnpm installΠ‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ:
pnpm run buildΠΠ°ΠΏΡΡΡΠΈΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ:
pnpm run devΠΠ·Π΄Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ
ΠΠ±Π½ΠΎΠ²ΠΈΡΡ Π²Π΅ΡΡΠΈΡ Π² package.json
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ:
pnpm run buildΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ Π² npm:
pnpm publishΠΠΎΠΈΡΠΊ Π½Π΅ΠΈΡΠΏΡΠ°Π²Π½ΠΎΡΡΠ΅ΠΉ
API-ΠΊΠ»ΡΡΠΈ ΠΈ Π΄ΠΎΡΡΡΠΏ
ΠΠ°ΠΆΠ΄ΠΎΠΌΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΡ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠ»ΡΡ API ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π΄ΠΎΡΡΡΠΏΡ:
Tavily : Π’ΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡ API Ρ ΠΏΠΎΡΡΠ°Π»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
Perplexity : Π΄ΠΎΡΡΡΠΏ ΠΊ API ΡΠ΅ΡΠ΅Π· ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
Kagi : Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΡΠ°ΡΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΠ»Π°Π½Π° Business (Team)
Jina AI : Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡ API
Brave : API-ΠΊΠ»ΡΡ Ρ ΠΏΠΎΡΡΠ°Π»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ²
Firecrawl : ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΊΠ»ΡΡ API ΠΎΡ ΠΏΠΎΡΡΠ°Π»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°
ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΊΠΎΡΠΎΡΡΠΈ
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° ΡΠ²ΠΎΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ. Π‘Π΅ΡΠ²Π΅Ρ Π±ΡΠ΄Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠΊΠΎΡΠΎΡΡΠΈ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ .
ΠΠ½ΠΎΡΡ Π²ΠΊΠ»Π°Π΄
ΠΠΊΠ»Π°Π΄Ρ ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ! ΠΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π·Π°ΠΏΡΠΎΡ Π½Π° Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅.
ΠΠΈΡΠ΅Π½Π·ΠΈΡ
ΠΠΈΡΠ΅Π½Π·ΠΈΡ MIT β ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠΌ. Π² ΡΠ°ΠΉΠ»Π΅ LICENSE .
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡΠΈ
ΠΠΎΡΡΡΠΎΠ΅Π½ΠΎ Π½Π°:
Available Tools
3 toolsai_searchGet AI-powered answers with citations and reasoning. Use when you need synthesized answers rather than raw search results. Providers: kagi_fastgpt (fast answers), exa_answer (semantic AI), linkup (deep agentic search), tavily_research (asynchronous multi-search reports; resubmit its research_id to retrieve results).BRead-onlyIdempotent
Get AI-powered answers with citations and reasoning. Use when you need synthesized answers rather than raw search results. Providers: kagi_fastgpt (fast answers), exa_answer (semantic AI), linkup (deep agentic search), tavily_research (asynchronous multi-search reports; resubmit its research_id to retrieve results).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (default: 10) | |
| query | Yes | Search query | |
| provider | Yes | AI search provider to use | |
| research_id | No | Existing asynchronous research task ID to retrieve. Supported by Tavily Research. | |
| large_result_mode | No | How to handle oversized responses for this request. Use inline for remote/container transports; file is local shared-filesystem behavior. Defaults to OMNISEARCH_LARGE_RESULT_MODE or file. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent safety, so the description adds value by disclosing asynchronous retrieval behavior for tavily_research ('resubmit its research_id'), provider-specific behaviors, and the output nature (citations and reasoning). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with the purpose front-loaded and provider details compactly listed. Every clause contributes meaning without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers when-to-use, provider differences, and the async resubmission pattern, and annotations cover safety. However, it omits response structure and contains a provider/enum inconsistency, leaving an agent with an ambiguous picture for a 5-parameter tool without an output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description need not repeat parameter details, but it adds provider characteristics that conflict with the enum by naming exa_answer and linkup which are not valid values. It does usefully explain research_id for Tavily, but the misinformation undermines reliability.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use when you need synthesized answers rather than raw search results', giving a clear when-to-use signal. However, it lists exa_answer and linkup as providers even though the schema enum only allows kagi_fastgpt and tavily_research, making the provider-selection guidance partially misleading.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_extractExtract, process, or summarize web content from URLs. Use when you need to read page content, summarize articles, crawl sites, or extract structured data. Providers: tavily (content extraction), kagi (summarization of pages/videos/podcasts), firecrawl (scraping/crawling/mapping/structured extraction/interactive), exa (content retrieval/similar pages).BRead-onlyIdempotent
Extract, process, or summarize web content from URLs. Use when you need to read page content, summarize articles, crawl sites, or extract structured data. Providers: tavily (content extraction), kagi (summarization of pages/videos/podcasts), firecrawl (scraping/crawling/mapping/structured extraction/interactive), exa (content retrieval/similar pages).
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | URL or array of URLs to process | |
| mode | No | Processing mode. Firecrawl: scrape/crawl/map/extract/actions. Exa: contents/similar. Tavily: extract/crawl/map. Kagi: summarize. Defaults to provider default. | |
| query | No | Focus extracted content on information relevant to this query. | |
| format | No | Extracted page format (default: markdown). | |
| provider | Yes | Processing provider to use | |
| extract_depth | No | Extraction depth (default: basic) | |
| chunks_per_source | No | Maximum relevant content chunks per source when a query is provided. | |
| large_result_mode | No | How to handle oversized responses for this request. Use inline for remote/container transports; file is local shared-filesystem behavior. Defaults to OMNISEARCH_LARGE_RESULT_MODE or file. | |
| include_raw_contents | No | Whether extraction responses should include per-URL raw_contents alongside combined content (default: true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds provider capability context (e.g., firecrawl for scraping/crawling/interactive, kagi for summarization). However, the mention of 'exa' as a provider is misleading because the input schema's provider enum omits exa, creating uncertainty about available behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact, front-loads the purpose, and packs useful provider information into a short list. Minor redundancy ('process' with 'extract') and the misleading exa reference are the only blemishes; overall it earns its length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 9-parameter tool with 5 enums and provider-specific modes, the description is too thin. It does not explain how to choose a provider for a given task, what the different modes do relative to providers, or how to handle edge cases like exa's absence from the provider enum. There is no output schema, and the description gives no hint about return value shapes, so an agent would likely need to infer provider-mode compatibility.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are fully documented in the schema. The description adds value by loosely mapping providers to capabilities (e.g., kagi for summarization, firecrawl for scraping), which helps select provider and mode. But it introduces a conflict by listing exa although the provider enum does not include it, and it does not explain the relationship between provider and mode beyond the parentheticals.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit 'Use when...' conditions covering the main scenarios, and the provider list gives a starting point for mode selection. It does not state when not to use this tool or point to alternatives like web_search or ai_search, so it lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
web_searchSearch the web for information. Use when you need to find web pages, articles, or data. Providers: tavily (factual/citations and search controls), brave (privacy/operators), kagi (quality/operators), exa (AI-semantic), kagi_enrichment (specialized indexes). Search depth, topic, time range, safe search, raw content, and automatic parameters apply when supported by the provider.BRead-onlyIdempotent
Search the web for information. Use when you need to find web pages, articles, or data. Providers: tavily (factual/citations and search controls), brave (privacy/operators), kagi (quality/operators), exa (AI-semantic), kagi_enrichment (specialized indexes). Search depth, topic, time range, safe search, raw content, and automatic parameters apply when supported by the provider.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of results (default: 10) | |
| query | Yes | Search query | |
| topic | No | Search topic category. | |
| provider | Yes | Search provider to use | |
| time_range | No | Only return results from this recent time range. | |
| safe_search | No | Enable provider safe-search filtering. | |
| search_depth | No | Search depth. Providers may use this to balance speed, relevance, and cost. | |
| auto_parameters | No | Let supported providers select search settings from the query. This can change cost. | |
| exclude_domains | No | Exclude results from these domains | |
| include_domains | No | Only return results from these domains | |
| large_result_mode | No | How to handle oversized responses for this request. Use inline for remote/container transports; file is local shared-filesystem behavior. Defaults to OMNISEARCH_LARGE_RESULT_MODE or file. | |
| include_raw_content | No | Include full page content when the selected provider supports it. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint, openWorldHint, idempotentHint, destructiveHint=false), lowering the burden on the description. The description adds useful context that search depth, topic, time range, safe search, raw content, and auto_parameters behave conditionally 'when supported by the provider,' but it does not disclose result-format, citation, pagination, or cost behavior, which would add meaningful transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose appears in the first sentence, usage in the second, and the provider rundown is dense but informative. The title is a verbatim duplicate of the description, which is mildly redundant, but no other space is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 12 parameters, 5 enums, and no output schema, the description carries a heavy burden. It covers purpose, usage context, and provider-specific parameter behavior, but it does not describe the result format or return expectations, and the provider list conflicts with the schema enum. For such a configurable tool, these are meaningful gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3, and the description does add meta-information: several parameters (search_depth, topic, time_range, safe_search, raw_content, auto_parameters) are provider-dependent, which is not in the schema. However, the description lists 'exa' as a valid provider while the schema enum omits it, which could mislead an agent into sending an invalid provider value and offset the added value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Tautological: description restates name/title.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit when-to-use directive ('Use when you need to find web pages, articles, or data') and adds provider-selection guidance by use case (e.g., tavily for factual/citations, brave for privacy/operators). It does not mention sibling alternatives or state when not to use this tool, stopping short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
v0.1.0- Changed
ai_search2 fields changed- changed
Input schema / properties / provider / enumPrevious value: -[ - "kagi_fastgpt" -]New value: +[ + "kagi_fastgpt", + "tavily_research" +] - added
Input schema / properties / research_idAdded value: +{ + "description": "Existing asynchronous research task ID to retrieve. Supported by Tavily Research.", + "minLength": 1, + "type": "string" +}
- Changed
web_extract5 fields changed- added
Input schema / properties / chunks_per_sourceAdded value: +{ + "description": "Maximum relevant content chunks per source when a query is provided.", + "maximum": 5, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / formatAdded value: +{ + "description": "Extracted page format (default: markdown).", + "enum": [ + "markdown", + "text" + ], + "type": "string" +} - changed
Input schema / properties / mode / descriptionPrevious value: -"Processing mode. Firecrawl: scrape/crawl/map/extract/actions. Exa: contents/similar. Tavily: extract. Kagi: summarize. Defaults to provider default."New value: +"Processing mode. Firecrawl: scrape/crawl/map/extract/actions. Exa: contents/similar. Tavily: extract/crawl/map. Kagi: summarize. Defaults to provider default." - changed
Input schema / properties / mode / enumPrevious value: -[ - "extract", - "summarize", - "scrape", - "crawl", - "map", - "actions", - "contents", - "similar" -]New value: +[ + "extract", + "crawl", + "map", + "summarize", + "scrape", + "actions", + "contents", + "similar" +] - added
Input schema / properties / queryAdded value: +{ + "description": "Focus extracted content on information relevant to this query.", + "minLength": 1, + "pattern": "\\S", + "type": "string" +}
- Changed
web_search6 fields changed- added
Input schema / properties / auto_parametersAdded value: +{ + "description": "Let supported providers select search settings from the query. This can change cost.", + "type": "boolean" +} - added
Input schema / properties / include_raw_contentAdded value: +{ + "description": "Include full page content when the selected provider supports it.", + "type": "boolean" +} - added
Input schema / properties / safe_searchAdded value: +{ + "description": "Enable provider safe-search filtering.", + "type": "boolean" +} - added
Input schema / properties / search_depthAdded value: +{ + "description": "Search depth. Providers may use this to balance speed, relevance, and cost.", + "enum": [ + "basic", + "advanced", + "fast", + "ultra-fast" + ], + "type": "string" +} - added
Input schema / properties / time_rangeAdded value: +{ + "description": "Only return results from this recent time range.", + "enum": [ + "day", + "week", + "month", + "year" + ], + "type": "string" +} - added
Input schema / properties / topicAdded value: +{ + "description": "Search topic category.", + "enum": [ + "general", + "news", + "finance" + ], + "type": "string" +}
3 tool updates
v0.0.29- Changed
ai_search7 fields changed- added
Input schema / properties / large_result_modeAdded value: +{ + "description": "How to handle oversized responses for this request. Use inline for remote/container transports; file is local shared-filesystem behavior. Defaults to OMNISEARCH_LARGE_RESULT_MODE or file.", + "enum": [ + "inline", + "file" + ], + "type": "string" +} - added
Input schema / properties / limit / maximumAdded value: +50 - added
Input schema / properties / limit / minimumAdded value: +1 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - changed
Input schema / properties / query / descriptionPrevious value: -"Question or search query"New value: +"Search query" - added
Input schema / properties / query / minLengthAdded value: +1 - added
Input schema / properties / query / patternAdded value: +"\\S"
- Changed
web_extract3 fields changed- added
Input schema / properties / include_raw_contentsAdded value: +{ + "description": "Whether extraction responses should include per-URL raw_contents alongside combined content (default: true).", + "type": "boolean" +} - added
Input schema / properties / large_result_modeAdded value: +{ + "description": "How to handle oversized responses for this request. Use inline for remote/container transports; file is local shared-filesystem behavior. Defaults to OMNISEARCH_LARGE_RESULT_MODE or file.", + "enum": [ + "inline", + "file" + ], + "type": "string" +} - changed
Input schema / properties / url / anyOfPrevious value: -[ - { - "type": "string" - }, - { - "items": { - "type": "string" - }, - "type": "array" - } -]New value: +[ + { + "format": "uri", + "pattern": "^https?:\\/\\/", + "type": "string" + }, + { + "items": { + "format": "uri", + "pattern": "^https?:\\/\\/", + "type": "string" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + } +]
- Changed
web_search10 fields changed- added
Input schema / properties / exclude_domains / items / patternAdded value: +"^(?:\\*\\.)?(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}$" - added
Input schema / properties / exclude_domains / maxItemsAdded value: +20 - added
Input schema / properties / include_domains / items / patternAdded value: +"^(?:\\*\\.)?(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?\\.)+[a-zA-Z]{2,63}$" - added
Input schema / properties / include_domains / maxItemsAdded value: +20 - added
Input schema / properties / large_result_modeAdded value: +{ + "description": "How to handle oversized responses for this request. Use inline for remote/container transports; file is local shared-filesystem behavior. Defaults to OMNISEARCH_LARGE_RESULT_MODE or file.", + "enum": [ + "inline", + "file" + ], + "type": "string" +} - added
Input schema / properties / limit / maximumAdded value: +50 - added
Input schema / properties / limit / minimumAdded value: +1 - changed
Input schema / properties / limit / typePrevious value: -"number"New value: +"integer" - added
Input schema / properties / query / minLengthAdded value: +1 - added
Input schema / properties / query / patternAdded value: +"\\S"
8 tool updates
v0.0.4- Changed
ai_search6 fields changed- changed
Input schema / properties / limit / descriptionPrevious value: -"Result limit"New value: +"Maximum number of results (default: 10)" - removed
Input schema / properties / provider / anyOfRemoved value: -[ - { - "const": "perplexity" - }, - { - "const": "kagi_fastgpt" - }, - { - "const": "exa_answer" - } -] - changed
Input schema / properties / provider / descriptionPrevious value: -"AI provider"New value: +"AI search provider to use" - added
Input schema / properties / provider / enumAdded value: +[ + "kagi_fastgpt" +] - added
Input schema / properties / provider / typeAdded value: +"string" - changed
Input schema / properties / query / descriptionPrevious value: -"Query"New value: +"Question or search query"
- Removed
firecrawl_process - Removed
jina_grounding_enhance - Removed
kagi_enrichment_enhance - Removed
kagi_summarizer_process - Removed
tavily_extract_process - Added
web_extract - Changed
web_search8 fields changed- changed
Input schema / properties / exclude_domains / descriptionPrevious value: -"Domains to exclude"New value: +"Exclude results from these domains" - changed
Input schema / properties / include_domains / descriptionPrevious value: -"Domains to include"New value: +"Only return results from these domains" - changed
Input schema / properties / limit / descriptionPrevious value: -"Result limit"New value: +"Maximum number of results (default: 10)" - removed
Input schema / properties / provider / anyOfRemoved value: -[ - { - "const": "tavily" - }, - { - "const": "brave" - }, - { - "const": "kagi" - }, - { - "const": "exa" - } -] - changed
Input schema / properties / provider / descriptionPrevious value: -"Search provider"New value: +"Search provider to use" - added
Input schema / properties / provider / enumAdded value: +[ + "tavily", + "brave", + "kagi", + "kagi_enrichment" +] - added
Input schema / properties / provider / typeAdded value: +"string" - changed
Input schema / properties / query / descriptionPrevious value: -"Query"New value: +"Search query"
18 tool updates
v1.0.0- Added
ai_search - Removed
brave_search - Removed
firecrawl_actions_process - Removed
firecrawl_crawl_process - Removed
firecrawl_extract_process - Removed
firecrawl_map_process - Added
firecrawl_process - Removed
firecrawl_scrape_process - Changed
jina_grounding_enhance2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / content / descriptionPrevious value: -"Content to enhance"New value: +"Content"
- Removed
jina_reader_process - Changed
kagi_enrichment_enhance2 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - changed
Input schema / properties / content / descriptionPrevious value: -"Content to enhance"New value: +"Content"
- Removed
kagi_fastgpt_search - Removed
kagi_search - Changed
kagi_summarizer_process9 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / extract_depth / anyOfAdded value: +[ + { + "const": "basic" + }, + { + "const": "advanced" + } +] - removed
Input schema / properties / extract_depth / defaultRemoved value: -"basic" - changed
Input schema / properties / extract_depth / descriptionPrevious value: -"The depth of the extraction process. \"advanced\" retrieves more data but costs more credits."New value: +"Extraction depth" - removed
Input schema / properties / extract_depth / enumRemoved value: -[ - "basic", - "advanced" -] - removed
Input schema / properties / extract_depth / typeRemoved value: -"string" - added
Input schema / properties / url / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - added
Input schema / properties / url / descriptionAdded value: +"URL(s)" - removed
Input schema / properties / url / oneOfRemoved value: -[ - { - "description": "Single URL to process", - "type": "string" - }, - { - "description": "Multiple URLs to process", - "items": { - "type": "string" - }, - "type": "array" - } -]
- Removed
perplexity_search - Changed
tavily_extract_process9 fields changed- added
Input schema / $schemaAdded value: +"http://json-schema.org/draft-07/schema#" - added
Input schema / properties / extract_depth / anyOfAdded value: +[ + { + "const": "basic" + }, + { + "const": "advanced" + } +] - removed
Input schema / properties / extract_depth / defaultRemoved value: -"basic" - changed
Input schema / properties / extract_depth / descriptionPrevious value: -"The depth of the extraction process. \"advanced\" retrieves more data but costs more credits."New value: +"Extraction depth" - removed
Input schema / properties / extract_depth / enumRemoved value: -[ - "basic", - "advanced" -] - removed
Input schema / properties / extract_depth / typeRemoved value: -"string" - added
Input schema / properties / url / anyOfAdded value: +[ + { + "type": "string" + }, + { + "items": { + "type": "string" + }, + "type": "array" + } +] - added
Input schema / properties / url / descriptionAdded value: +"URL(s)" - removed
Input schema / properties / url / oneOfRemoved value: -[ - { - "description": "Single URL to process", - "type": "string" - }, - { - "description": "Multiple URLs to process", - "items": { - "type": "string" - }, - "type": "array" - } -]
- Removed
tavily_search - Added
web_search
15 tool updates
- First observed
brave_search - First observed
firecrawl_actions_process - First observed
firecrawl_crawl_process - First observed
firecrawl_extract_process - First observed
firecrawl_map_process - First observed
firecrawl_scrape_process - First observed
jina_grounding_enhance - First observed
jina_reader_process - First observed
kagi_enrichment_enhance - First observed
kagi_fastgpt_search - First observed
kagi_search - First observed
kagi_summarizer_process - First observed
perplexity_search - First observed
tavily_extract_process - First observed
tavily_search
TDQS
Scored across 3 tools
Each tool has a clearly distinct job: web_search returns raw search results, ai_search returns synthesized answers with citations, and web_extract processes specific URLs. There is no meaningful overlap or ambiguity between them.
All tool names follow a consistent snake_case pattern combining a domain prefix with an action: web_search, ai_search, web_extract. The naming style is uniform and predictable.
Three tools is well-scoped for an omnisearch server covering the core needs of searching, getting AI answers, and extracting web content. Each tool earns its place without redundancy.
The toolset covers the full search-to-insight workflow: finding sources, getting synthesized answers, and extracting or summarizing content from URLs. There are no obvious dead ends or missing core operations for the stated purpose.
Maintenance
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yoβ¦
Jina AI Reader/Search MCP β turn any URL into clean LLM-ready markdown, plus web search.
Multi-engine search for AI agents. Trust scoring, local corpus, MCP-native. Self-hostable, BYOK.
MCP server for Firecrawl β web search, scraping, and biomedical/arXiv paper search.
Related MCP Servers
- AlicenseAqualityCmaintenanceA Model Context Protocol server that enables web search, scraping, crawling, and content extraction through multiple engines including SearXNG, Firecrawl, and Tavily.4338 npm143MIT
- -licenseNot gradedqualityNot gradedmaintenanceA unified Model Context Protocol server that integrates multiple search providers including Brave, Tavily, Exa, Semantic Scholar, and arXiv. It enables users to perform web, news, and image searches alongside academic research and citation analysis through a single interface.-
- AlicenseBqualityAmaintenanceA Model Context Protocol server that gives AI assistants access to 7 search providers with intelligent auto-routing. Analyzes query intent and picks the best provider automatically β no manual switching needed. Install, configure your keys, and go.2417 PyPI5MIT
- AlicenseNot gradedqualityDmaintenanceA unified MCP server aggregating 15 web search and extraction tools across 5 providers (Jina, Tavily, Exa, Firecrawl, Bocha) with automatic API key validation and plugin architecture.MIT