Tavily Search MCP Agent

by arben-adm
Verified
MIT License
1
  • Apple
  • Linux

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.

🔍 내 태빌리 검색 MCP 에이전트

Tavily API를 기반으로 하는 강력한 모델 컨텍스트 프로토콜(MCP) 서버를 만들었습니다. 이를 통해 비즈니스, 뉴스, 금융, 정치 분야에서 고품질의 신뢰할 수 있는 정보를 얻을 수 있으며, 이 모든 것은 강력하고 개발자 친화적인 인터페이스를 통해 제공됩니다.

🌟 내가 Tavily Search MCP를 만든 이유

오늘날처럼 빠르게 변화하는 디지털 환경에서 저는 정확한 정보에 빠르게 접근할 필요성을 절감했습니다. 순차적 사고를 하는 제 MCP 서버와 호환되는 웹 검색 도구가 필요했습니다. 그래서 저는 다음과 같은 분야에서 탁월한 성능을 발휘하는 Tavily Search MCP를 개발했습니다.

⚡️ 초고속 비동기 검색 응답
🛡️ 자동 재시도를 통한 내장형 장애 허용 기능
🎯 깔끔하고 마크다운 형식의 결과
🔍 스마트 콘텐츠 스니펫
🛠️ 포괄적인 오류 처리
🖼️ 선택적 이미지 결과
📰 전문 뉴스 검색

🚀 빠른 시작

Smithery를 통해 설치

Smithery를 통해 Tavily Search for Claude Desktop을 자동으로 설치하려면:

지엑스피1

수동 설치

몇 분 안에 내 프로젝트를 시작하고 실행하는 방법은 다음과 같습니다.

# 1. Create environment uv venv && .venv\Scripts\activate # Windows # OR uv venv && source .venv/bin/activate # Unix/MacOS # 2. Install dependencies uv pip install -e . # 3. Set up configuration echo TAVILY_API_KEY=your-key-here > .env # 4. Start server cd mcp_tavily_search && uv run server.py

💡 핵심 기능

⚡️ 성능 및 안정성

  • 비동기 요청 처리를 구현했습니다.
  • 내장된 오류 처리 및 자동 재시도
  • 구성 가능한 요청 시간 초과
  • 종합 로깅 시스템

🎯 검색 구성

  • 검색 깊이를 구성 가능하게 만들었습니다(기본/고급)
  • 조정 가능한 결과 제한(1~20개 결과)
  • 깔끔한 마크다운 형식의 출력
  • 소스 URL이 포함된 스니펫 미리보기
  • 선택적 이미지 결과
  • 전문 뉴스 검색 주제

🛡️ 오류 처리

  • API 인증 검증
  • 속도 제한 감지
  • 네트워크 오류 복구
  • 요청 시간 초과 관리

🛠️ 개발자 통합

필수 조건

클로드 데스크탑 설정

이 구성을 통해 Claude Desktop 환경을 최적화했습니다.

{ "mcpServers": { "tavily-search": { "command": "uv", "args": [ "--directory", "/path/to/mcp-tavily-search/mcp_tavily_search", "run", "server.py" ], "env": { "TAVILY_API_KEY": "YOUR-API-KEY" } } } }

📁 구성 경로:

  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Unix/MacOS: ~/.config/Claude/claude_desktop_config.json

프로젝트 아키텍처

개발을 쉽게 하기 위해 깔끔하고 모듈식 구조를 설계했습니다.

mcp-tavily-search/ ├── mcp_tavily_search/ # Core package │ ├── server.py # Server implementation │ ├── client.py # Tavily API client │ ├── test_server.py # Server tests │ ├── test_client.py # Client tests │ └── __init__.py # Package initialization ├── .env # Environment configuration ├── README.md # Documentation └── pyproject.toml # Project configuration

주요 구성 요소

서버(server.py)

  • MCP 프로토콜을 구현했습니다
  • 요청 처리 및 라우팅
  • 오류 복구 및 상태 모니터링

클라이언트(client.py)

  • Tavily API 통합
  • 지수 백오프를 사용한 재시도 메커니즘
  • 결과 형식 지정 및 처리
  • 오류 처리 및 로깅

테스트(test_server.py 및 test_client.py)

  • 서버와 클라이언트 모두에 대한 포괄적인 단위 테스트
  • 구현의 신뢰성과 정확성을 보장합니다.

사용 예

제가 구현한 향상된 검색 기능을 사용하는 방법에 대한 몇 가지 예는 다음과 같습니다.

  1. 기본 검색:
{ "name": "search", "arguments": { "query": "Latest news on artificial intelligence" } }
  1. 이미지를 이용한 고급 검색:
{ "name": "search", "arguments": { "query": "Elon Musk SpaceX achievements", "search_depth": "advanced", "include_images": true, "max_results": 10 } }
  1. 뉴스별 검색:
{ "name": "search", "arguments": { "query": "Climate change impact on agriculture", "topic": "news", "max_results": 5 } }
  1. 원시 콘텐츠로 검색:
{ "name": "search", "arguments": { "query": "Python programming best practices", "include_raw_content": true, "max_results": 3 } }

문제 해결 가이드

연결 문제

예상대로 작동하지 않을 경우, 제가 설명한 다음 단계를 따르세요.

  1. 구성 경로를 확인하세요
  2. Claude Desktop 로그를 확인하세요.
    # Windows type %APPDATA%\Claude\logs\latest.log # Unix/MacOS cat ~/.config/Claude/logs/latest.log
  3. 빠른 시작 명령을 사용하여 서버를 수동으로 테스트합니다.

API 문제 해결

API 문제가 발생하는 경우:

  1. API 키 권한 검증
  2. 네트워크 연결을 확인하세요
  3. 서버 로그에서 API 응답을 모니터링합니다.

테스트 실행

이 프로젝트에 대한 단위 테스트를 실행하려면 다음 단계를 따르세요.

  1. 개발 종속성을 설치합니다.
    uv pip install -e ".[dev]"
  2. pytest를 사용하여 테스트를 실행합니다.
    pytest mcp_tavily_search

이렇게 하면 test_client.pytest_server.py 포함하여 mcp_tavily_search 디렉토리에 있는 모든 테스트가 실행됩니다.

커뮤니티 및 지원

  • 문제를 보고하고 GitHub에 기여해 주시기 바랍니다.
  • 구현 사항과 개선 사항을 공유하세요
  • 토론에 참여하여 다른 사람들을 도와주세요

보안 및 모범 사례

제 구현에서는 보안이 가장 중요합니다. 서버에는 다음이 포함됩니다.

  • 환경 변수를 통한 안전한 API 키 처리
  • 자동 요청 시간 초과 관리
  • 포괄적인 오류 추적 및 로깅

특허

이 프로젝트에는 MIT 라이선스가 적용됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.

감사의 말

특별히 감사드리고 싶은 분들께는 다음과 같습니다.

  • 혁신적인 Tavily API 팀
  • MCP 프로토콜 커뮤니티
ID: p0w4whs3l4