tavily-search-mcp-server
Tavily Search MCP 서버
LLM에 최적화된 검색 기능을 제공하는 Tavily Search API를 통합한 MCP 서버 구현입니다.
특징
웹 검색: LLM에 최적화된 웹 검색을 수행하고 검색 깊이, 주제, 시간 범위를 제어합니다.
콘텐츠 추출: 검색 결과에서 가장 관련성 있는 콘텐츠를 추출하여 품질과 크기를 최적화합니다.
선택 기능: 이미지, 이미지 설명, LLM에서 생성된 짧은 답변, 원시 HTML 콘텐츠를 포함합니다.
도메인 필터링: 검색 결과에 특정 도메인을 포함하거나 제외합니다.
Related MCP server: metasearch-mcp
도구
타빌리_서치
Tavily Search API를 사용하여 웹 검색을 실행합니다.
입력:
query(문자열, 필수): 검색 쿼리.search_depth(문자열, 선택 사항): "기본" 또는 "고급"(기본값: "기본").topic(문자열, 선택 사항): "일반" 또는 "뉴스"(기본값: "일반").days(숫자, 선택 사항): 뉴스 검색을 위한 지난 일 수(기본값: 3).time_range(문자열, 선택 사항): 시간 범위 필터("일", "주", "월", "년" 또는 "일", "수", "월", "년").max_results(숫자, 선택 사항): 최대 결과 수(기본값: 5).include_images(부울, 선택 사항): 관련 이미지를 포함합니다(기본값: false).include_image_descriptions(부울, 선택 사항): 이미지에 대한 설명을 포함합니다(기본값: false).include_answer(부울, 선택 사항): LLM에서 생성된 짧은 답변을 포함합니다(기본값: false).include_raw_content(부울, 선택 사항): 원시 HTML 콘텐츠를 포함합니다(기본값: false).include_domains(문자열[], 선택 사항): 포함할 도메인입니다.exclude_domains(문자열[], 선택 사항): 제외할 도메인입니다.
설정 가이드 🚀
1. 필수 조건
Claude Desktop 이 컴퓨터에 설치되었습니다.
Tavily API 키: a. Tavily API 계정 에 가입합니다. b. 플랜을 선택합니다(무료 티어 이용 가능). c. Tavily 대시보드에서 API 키를 생성합니다.
2. 설치
컴퓨터의 어딘가에 이 저장소를 복제하세요.
지엑스피1
종속성을 설치하고 프로젝트를 빌드합니다.
cd tavily-search-mcp-servernpm installnpm run build
3. Claude Desktop과의 통합
Claude Desktop 구성 파일을 엽니다.
# On Mac: ~/Library/Application\ Support/Claude/claude_desktop_config.json # On Windows: %APPDATA%\Claude\claude_desktop_config.jsonnpm이나docker사용하여 서버를 실행할지 여부에 따라 config의mcpServers개체에 다음 중 하나를 추가합니다.옵션 A: NPM(stdio 전송) 사용
{ "mcpServers": { "tavily-search-server": { "command": "node", "args": [ "/Users/<username>/<FULL_PATH...>/tavily-search-mcp-server/dist/index.js" ], "env": { "TAVILY_API_KEY": "your_api_key_here" } } } }옵션 B: NPM(SSE 전송) 사용
{ "mcpServers": { "tavily-search-server": { "command": "node", "args": [ "/Users/<username>/<FULL_PATH...>/tavily-search-mcp-server/dist/sse.js" ], "env": { "TAVILY_API_KEY": "your_api_key_here" }, "port": 3001 } } }옵션 C: Docker 사용
{ "mcpServers": { "tavily-search-server": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "TAVILY_API_KEY", "-v", "/Users/<username>/<FULL_PATH...>/tavily-search-mcp-server:/app", "tavily-search-mcp-server" ], "env": { "TAVILY_API_KEY": "your_api_key_here" } } } }중요 단계:
/Users/<username>/<FULL_PATH...>/tavily-search-mcp-server저장소를 복제한 실제 전체 경로로 바꾸세요.env섹션에 Tavily API 키를 추가하세요. API 키와 같은 비밀 정보는 환경 변수로 저장하는 것이 좋습니다.Windows에서도 경로에 슬래시(
/)를 꼭 사용하세요.docker를 사용하는 경우
docker build -t tavily-search-mcp-server:latest .
변경 사항을 적용하려면 Claude Desktop을 다시 시작하세요.
Smithery를 통해 설치
Smithery를 통해 Tavily Search for Claude Desktop을 자동으로 설치하려면:
npx -y @smithery/cli install @apappascs/tavily-search-mcp-server --client claude환경 설정(npm용)
.env.example``.env로 복사합니다.cp .env.example .env실제 Tavily API 키로
.env파일을 업데이트하세요.TAVILY_API_KEY=your_api_key_here참고: 실제 API 키를 버전 관리 시스템에 커밋하지 마세요. 보안상의 이유로
.env파일은 git에서 무시됩니다.
NPM으로 실행
Node.js를 사용하여 서버를 시작합니다.
node dist/index.jsSSE 운송의 경우:
node dist/sse.jsDocker로 실행
Docker 이미지를 빌드합니다(아직 빌드하지 않았다면):
docker build -t tavily-search-mcp-server:latest .다음을 사용하여 Docker 컨테이너를 실행합니다.
stdio 전송의 경우:
docker run -it --rm -e TAVILY_API_KEY="your_api_key_here" tavily-search-mcp-server:latestSSE 운송의 경우:
docker run -it --rm -p 3001:3001 -e TAVILY_API_KEY="your_api_key_here" -e TRANSPORT="sse" tavily-search-mcp-server:latest쉘의 환경 변수를 직접 활용할 수도 있는데, 이는 보안 측면에서 더 안전한 방법입니다.
docker run -it --rm -p 3001:3001 -e TAVILY_API_KEY=$TAVILY_API_KEY -e TRANSPORT="sse" tavily-search-mcp-server:latest참고: 두 번째 명령은
-e TAVILY_API_KEY=$TAVILY_API_KEY사용하여TAVILY_API_KEY환경 변수 값을 Docker 컨테이너에 전달하는 권장 방식을 보여줍니다. 이렇게 하면 API 키가 명령 기록에 표시되지 않으며, 명령에 하드코딩된 비밀보다 일반적으로 선호됩니다.도커 컴포즈 사용하기
달리다:
docker compose up -d서버를 중지하려면:
docker compose down
특허
이 MCP 서버는 MIT 라이선스에 따라 라이선스가 부여됩니다. 즉, MIT 라이선스의 약관에 따라 소프트웨어를 자유롭게 사용, 수정 및 배포할 수 있습니다. 자세한 내용은 프로젝트 저장소의 LICENSE 파일을 참조하세요.
Available Tools
1 tooltavily_searchA
Performs a web search using the Tavily Search API, optimized for LLMs. Use this for broad information gathering, recent events, or when you need diverse web sources. Supports search depth, topic selection, time range filtering, and domain inclusion/exclusion.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search query. | |
| search_depth | No | The depth of the search. It can be "basic" or "advanced". | basic |
| topic | No | The category of the search. Currently: only "general" and "news" are supported. | general |
| days | No | The number of days back from the current date to include in the search results (for news topic). | |
| time_range | No | The time range back from the current date to include in the search results. Accepted values include "day","week","month","year" or "d","w","m","y". | |
| max_results | No | The maximum number of search results to return. | |
| include_images | No | Include a list of query-related images in the response. | |
| include_image_descriptions | No | When include_images is set to True, this option adds descriptive text for each image. | |
| include_answer | No | Include a short answer to original query, generated by an LLM based on Tavily's search results. | |
| include_raw_content | No | Include the cleaned and parsed HTML content of each search result. | |
| include_domains | No | A list of domains to specifically include in the search results. | |
| exclude_domains | No | A list of domains to specifically exclude from the search results. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the tool is 'optimized for LLMs' and supports various features like search depth and filtering, which adds useful context. However, it doesn't cover important behavioral aspects such as rate limits, authentication needs, error handling, or what the output looks like (especially since there's no output schema).
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 appropriately sized and front-loaded: the first sentence states the core purpose, followed by usage guidelines and key features. Every sentence earns its place by adding value without redundancy, making it efficient and well-structured.
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?
Given the complexity (12 parameters, no annotations, no output schema), the description is somewhat complete but has gaps. It covers purpose and usage well, but lacks details on output format, error cases, or operational constraints like rate limits. For a tool with rich input schema but no output schema, more behavioral context would be beneficial.
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?
The description mentions that the tool 'supports search depth, topic selection, time range filtering, and domain inclusion/exclusion,' which aligns with some parameters in the schema. However, with 100% schema description coverage, the schema already documents all 12 parameters thoroughly. The description adds minimal value beyond what the schema provides, meeting the baseline for high coverage.
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?
The description clearly states the tool 'performs a web search using the Tavily Search API, optimized for LLMs,' which specifies the verb (performs web search), resource (Tavily Search API), and target audience (LLMs). It distinguishes itself by mentioning optimization for LLMs, though without sibling tools, full differentiation cannot be assessed.
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 provides clear context for when to use the tool: 'for broad information gathering, recent events, or when you need diverse web sources.' This gives explicit guidance on appropriate use cases. However, it lacks exclusions or alternatives, which would be needed for a perfect score.
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.
1 tool update
v1.0.0- First observed
tavily_search
TDQS
Scored across 1 tool
With only one tool, there is no possibility of ambiguity or overlap between tools. The single tool 'tavily_search' has a clear, distinct purpose focused on web search functionality.
A single tool inherently has perfect naming consistency, as there are no other tools to compare it against. The name 'tavily_search' follows a clear and descriptive pattern.
One tool is too few for a server with a broad purpose like web search, as it lacks complementary operations such as filtering results, managing search history, or handling different search types. This minimal scope limits agent workflows and feels incomplete.
The tool surface is severely incomplete for a web search domain; it only provides a basic search function without supporting operations like refining searches, saving results, or accessing search metadata. This creates significant gaps that will hinder agent effectiveness.
Maintenance
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
Related MCP Servers
- FlicenseCqualityDmaintenanceAn MCP protocol server that enables web search functionality using the Tavily API, allowing AI assistants to perform internet searches in real-time.44-
- AlicenseNot gradedqualityDmaintenanceMCP server for using various search tools like Tavily API. Planning to support various search tools (i.e. wiki search, searxng, etc)3MIT
- FlicenseNot gradedqualityDmaintenanceAn MCP server that enables web search and document retrieval capabilities through Tavily API and LangConnect vector database, supporting AI agents in gathering information for comprehensive report generation.23-
- FlicenseBqualityDmaintenanceMCP server using Tavily API for web search, enabling web search queries via stdio transport.5-