MCP Tavily Search Server

by spences10
Verified

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Enables formatting of search results in Markdown for better readability and presentation.

mcp-tavily-search


⚠️ Notice

This repository is no longer maintained.

The functionality of this tool is now available in mcp-omnisearch, which combines multiple MCP tools in one unified package.

Please use mcp-omnisearch instead.


A Model Context Protocol (MCP) server for integrating Tavily's search API with LLMs. This server provides intelligent web search capabilities optimized for high-quality, factual results, including context 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 are examples 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:

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 topic only). 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 image descriptions. Defaults to false
  • include_raw_content (boolean, optional): Include raw HTML content. Defaults to false
  • include_domains (string[], optional): List of trusted domains to include
  • 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 ignoring cache. 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 generated context. Defaults to 2000
  • search_depth (string, optional): "basic" or "advanced". Defaults to "advanced"
  • topic (string, optional): "general" or "news". Defaults to "general"
  • Other parameters same as tavily_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". Defaults to "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 optional parameters:

  • include_domains: Array of trusted domains to include in search results
  • 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

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Integrates Tavily's search API with LLMs to provide advanced web search capabilities, including intelligent result summaries, domain filtering for quality control, and configurable search parameters.

  1. ⚠️ Notice
    1. Features
      1. Configuration
        1. Cline Configuration
        2. Claude Desktop with WSL Configuration
        3. Environment Variables
      2. API
        1. tavily_search
        2. tavily_get_search_context
        3. tavily_qna_search
      3. Domain Filtering
        1. Development
          1. Setup
          2. Publishing
        2. Contributing
          1. License
            1. Acknowledgments
              ID: 1jcttrux58