spences10

mcp-tavily-search

Community spences10
Updated

MCP server for integrating Tavily search API with LLMs, providing web search, RAG context generation, and QnA capabilities

mcp-tavily-search

A Model Context Protocol (MCP) server for integrating Tavily's searchAPI with LLMs. This server provides intelligent web searchcapabilities optimized for high-quality, factual results, includingcontext generation for RAG applications and direct question answering.

Features

  • ๐Ÿ” Advanced web search capabilities through Tavily API
  • ๐Ÿค– AI-generated summaries of search results
  • ๐ŸŽฏ Domain filtering for higher quality results
  • ๐Ÿ“Š Configurable search depth and parameters
  • ๐Ÿง  Context generation for RAG applications
  • โ“ Direct question answering capabilities
  • ๐Ÿ’พ Response caching with TTL support
  • ๐Ÿ“ Multiple response formats (text, JSON, markdown)
  • ๐Ÿ”„ Structured result formatting optimized for LLMs
  • ๐Ÿ—๏ธ Built on the Model Context Protocol

Configuration

This server requires configuration through your MCP client. Here areexamples for different environments:

Cline Configuration

Add this to your Cline MCP settings:

{
	"mcpServers": {
		"mcp-tavily-search": {
			"command": "npx",
			"args": ["-y", "mcp-tavily-search"],
			"env": {
				"TAVILY_API_KEY": "your-tavily-api-key"
			}
		}
	}
}

Claude Desktop with WSL Configuration

For WSL environments, add this to your Claude Desktop configuration:

{
	"mcpServers": {
		"mcp-tavily-search": {
			"command": "wsl.exe",
			"args": [
				"bash",
				"-c",
				"source ~/.nvm/nvm.sh && TAVILY_API_KEY=your-tavily-api-key /home/username/.nvm/versions/node/v20.12.1/bin/npx mcp-tavily-search"
			]
		}
	}
}

Environment Variables

The server requires the following environment variable:

  • TAVILY_API_KEY: Your Tavily API key (required)

API

The server implements three MCP tools with configurable parameters:

tavily_search

Search the web using Tavily Search API, optimized for high-quality,factual results.

Parameters:

  • query (string, required): Search query
  • search_depth (string, optional): "basic" (faster) or "advanced"(more thorough). Defaults to "basic"
  • topic (string, optional): "general" or "news". Defaults to"general"
  • days (number, optional): Number of days back to search (news topiconly). Defaults to 3
  • time_range (string, optional): Time range for results ('day','week', 'month', 'year' or 'd', 'w', 'm', 'y')
  • max_results (number, optional): Maximum number of results.Defaults to 5
  • include_answer (boolean, optional): Include AI-generated summary.Defaults to true
  • include_images (boolean, optional): Include related images.Defaults to false
  • include_image_descriptions (boolean, optional): Include imagedescriptions. Defaults to false
  • include_raw_content (boolean, optional): Include raw HTML content.Defaults to false
  • include_domains (string[], optional): List of trusted domains toinclude
  • exclude_domains (string[], optional): List of domains to exclude
  • response_format (string, optional): 'text', 'json', or 'markdown'.Defaults to 'text'
  • cache_ttl (number, optional): Cache time-to-live in seconds.Defaults to 3600
  • force_refresh (boolean, optional): Force fresh results ignoringcache. Defaults to false

tavily_get_search_context

Generate context for RAG applications using Tavily search.

Parameters:

  • query (string, required): Search query for context generation
  • max_tokens (number, optional): Maximum length of generatedcontext. Defaults to 2000
  • search_depth (string, optional): "basic" or "advanced". Defaultsto "advanced"
  • topic (string, optional): "general" or "news". Defaults to"general"
  • Other parameters same as tavily_search

tavily_qna_search

Get direct answers to questions using Tavily search.

Parameters:

  • query (string, required): Question to be answered
  • include_sources (boolean, optional): Include source citations.Defaults to true
  • search_depth (string, optional): "basic" or "advanced". Defaultsto "advanced"
  • topic (string, optional): "general" or "news". Defaults to"general"
  • Other parameters same as tavily_search

Domain Filtering

The server supports flexible domain filtering through two optionalparameters:

  • include_domains: Array of trusted domains to include in searchresults
  • exclude_domains: Array of domains to exclude from search results

This allows you to:

  • Target specific trusted sources for academic or technical searches
  • Exclude potentially unreliable or irrelevant sources
  • Customize sources based on your specific needs
  • Access all available sources when no filtering is specified

Example domain filtering:

{
	"include_domains": ["arxiv.org", "science.gov"],
	"exclude_domains": ["example.com"]
}

Development

Setup

  1. Clone the repository
  2. Install dependencies:
pnpm install
  1. Build the project:
pnpm build
  1. Run in development mode:
pnpm dev

Publishing

The project uses changesets for version management. To publish:

  1. Create a changeset:
pnpm changeset
  1. Version the package:
pnpm changeset version
  1. Publish to npm:
pnpm release

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

MIT License - see the LICENSE file for details.

Acknowledgments

MCP Server ยท Populars

MCP Server ยท New