search

Web search with LLM-optimized results, relevance scoring, and flexible filtering. Supports four search depth modes (ultra-fast, fast, basic, advanced) with configurable latency and relevance tradeoffs Includes domain filtering, time range constraints, date ranges, country boosting, and raw content extraction Returns results with title, URL, content snippet, and relevance score; optional image results and favicons Automatic OAuth authentication via Tavily MCP server or API key configuration; no manual token management required

INSTALLATION
npx skills add https://github.com/tavily-ai/skills --skill search
Run in your project or agent environment. Adjust flags if your CLI version differs.

SKILL.md

Search Skill

Search the web and get relevant results optimized for LLM consumption.

Authentication

The script uses OAuth via the Tavily MCP server. No manual setup required - on first run, it will:

  • Check for existing tokens in ~/.mcp-auth/
  • If none found, automatically open your browser for OAuth authentication

Note: You must have an existing Tavily account. The OAuth flow only supports login — account creation is not available through this flow. Sign up at tavily.com first if you don't have an account.

Alternative: API Key

If you prefer using an API key, get one at https://tavily.com and add to ~/.claude/settings.json:

{

  "env": {

    "TAVILY_API_KEY": "tvly-your-api-key-here"

  }

}

Quick Start

Using the Script

./scripts/search.sh '<json>'

Examples:

# Basic search

./scripts/search.sh '{"query": "python async patterns"}'

# With options

./scripts/search.sh '{"query": "React hooks tutorial", "max_results": 10}'

# Advanced search with filters

./scripts/search.sh '{"query": "AI news", "time_range": "week", "max_results": 10}'

# Domain-filtered search

./scripts/search.sh '{"query": "machine learning", "include_domains": ["arxiv.org", "github.com"], "search_depth": "advanced"}'

Basic Search

curl --request POST \

  --url https://api.tavily.com/search \

  --header "Authorization: Bearer $TAVILY_API_KEY" \

  --header 'Content-Type: application/json' \

  --data '{

    "query": "latest developments in quantum computing",

    "max_results": 5

  }'

Advanced Search

curl --request POST \

  --url https://api.tavily.com/search \

  --header "Authorization: Bearer $TAVILY_API_KEY" \

  --header 'Content-Type: application/json' \

  --data '{

    "query": "machine learning best practices",

    "max_results": 10,

    "search_depth": "advanced",

    "include_domains": ["arxiv.org", "github.com"]

  }'

API Reference

Endpoint

POST https://api.tavily.com/search

Headers

Header

Value

Authorization

Bearer <TAVILY_API_KEY>

Content-Type

application/json

Request Body

Field

Type

Default

Description

query

string

Required

Search query (keep under 400 chars)

max_results

integer

10

Maximum results (0-20)

search_depth

string

"basic"

ultra-fast, fast, basic, advanced

topic

string

"general"

Search topic (general only)

time_range

string

null

day, week, month, year

start_date

string

null

Return results after this date (YYYY-MM-DD)

end_date

string

null

Return results before this date (YYYY-MM-DD)

include_domains

array

[]

Domains to include (max 300)

exclude_domains

array

[]

Domains to exclude (max 150)

country

string

null

Boost results from a specific country (general topic only)

include_raw_content

boolean

false

Include full page content

include_images

boolean

false

Include image results

include_image_descriptions

boolean

false

Include descriptions for images

include_favicon

boolean

false

Include favicon URL for each result

Response Format

{

  "query": "latest developments in quantum computing",

  "results": [

    {

      "title": "Page Title",

      "url": "https://example.com/page",

      "content": "Extracted text snippet...",

      "score": 0.85

    }

  ],

  "response_time": 1.2

}

Search Depth

Depth

Latency

Relevance

Content Type

ultra-fast

Lowest

Lower

NLP summary

fast

Low

Good

Chunks

basic

Medium

High

NLP summary

advanced

Higher

Highest

Chunks

When to use each:

  • ultra-fast: Real-time chat, autocomplete
  • fast: Need chunks but latency matters
  • basic: General-purpose, balanced
  • advanced: Precision matters (default recommendation)

Examples

Domain-Filtered Search

curl --request POST \

  --url https://api.tavily.com/search \

  --header "Authorization: Bearer $TAVILY_API_KEY" \

  --header 'Content-Type: application/json' \

  --data '{

    "query": "Python async best practices",

    "include_domains": ["docs.python.org", "realpython.com", "github.com"],

    "search_depth": "advanced"

  }'

Search with Full Content

curl --request POST \

  --url https://api.tavily.com/search \

  --header "Authorization: Bearer $TAVILY_API_KEY" \

  --header 'Content-Type: application/json' \

  --data '{

    "query": "React hooks tutorial",

    "max_results": 3,

    "include_raw_content": true

  }'

Tips

  • Keep queries under 400 characters - Think search query, not prompt
  • Break complex queries into sub-queries - Better results than one massive query
  • **Use include_domains** to focus on trusted sources
  • **Use time_range** for recent information
  • **Filter by score** (0-1) to get highest relevance results
BrowserAct

Let your agent run on any real-world website

Bypass CAPTCHA & anti-bot for free. Start local, scale to cloud.

Explore BrowserAct Skills →

Stop writing automation&scrapers

Install the CLI. Run your first Skill in 30 seconds. Scale when you're ready.

Start free
free · no credit card