tavily_mcp_server_for_all_tools
Tavily Web Search MCP Server
Tavily 공식 Python SDK를 기반으로 개발된 웹 검색 MCP 서비스로, 표준 MCP Python SDK를 사용하여 구현되었으며, Streamable HTTP 전송 프로토콜을 채택하고 FastAPI + uvicorn을 통해 외부에 서비스를 제공합니다.
기능
서비스는 Tavily 공식 SDK의 주요 기능을 포괄하는 8개의 MCP 도구를 제공합니다:
도구명 | 설명 | 내부 Tavily 인터페이스 |
| 쿼리 키워드에 따라 웹 검색을 실행하고 제목, 링크, 요약, 관련성 점수를 반환하며 선택적으로 요약 답변을 선택적으로 생성합니다 |
|
| 지정된 URL 웹페이지를 가져와 본문 텍스트 콘텐츠(markdown / text)를 반환합니다 |
|
| 루트 URL에서 시작하여 그래프 방식으로 전체 웹사이트를 탐색하고 여러 페이지의 본문을 일괄 수집하며, 특정 사이트 콘텐츠를 체계적으로 수집하는 데 적합합니다 |
|
| 웹사이트 구조를 탐색하여 본문을 가져오지 않고 페이지 URL만 찾아내므로, 사이트 범위를 먼저 파악하는 데 적합합니다 |
|
| 특정 질문에 대해 한 문장 형식의 답변을 직접 반환합니다 |
|
| LLM / RAG 프로세스에 직접 투입하기 적합한 압축된 검색 컨텍스트를 반환합니다(자동으로 token 한도 및 절단 처리) |
|
| 심층 연구 작업을 제출합니다(Tavily 자동 다중 검색 + 종합 보고서 생성). 작업은 비동기적으로 실행되며 즉시 |
|
|
|
|
deep_research_start/deep_research_result에 해당하는 연구 작업은 Tavily 서버 측에서 비동기적으로 실행되며 수 분이 소요될 수 있습니다. 먼저deep_research_start를 호출하여request_id를 받은 다음,deep_research_result로status가completed(또는failed)가 될 때까지 폴링하세요.
Related MCP server: tavily-pool-mcp
디렉터리 구조
tavily-mcp-server/
├── app/
│ ├── config.py # 环境变量配置加载(.env)
│ ├── tavily_tools.py # TavilyToolkit:封装 web_search / web_fetch
│ ├── server.py # FastMCP 实例与工具注册
│ └── main.py # FastAPI 应用 + uvicorn 入口,挂载 Streamable HTTP
├── client/
│ └── test_client.py # 本地测试客户端(连接 MCP 服务并调用工具)
├── deploy/
│ ├── deploy.sh # 一键同步 + 部署到远程服务器
│ └── tavily-mcp.service # systemd 服务单元
├── requirements.txt
├── .env.example
└── .gitignore환경 요구사항
Python 3.12(로컬은 conda 환경
llm_factory_envs에서 개발, 원격 서버는llm_env사용)Tavily API Key(app.tavily.com에서 신청)
로컬 개발 및 테스트
1. 환경 변수 준비
cp .env.example .env
# 编辑 .env,填入 TAVILY_API_KEY;本地测试保持 MCP_HOST=127.0.0.12. 의존성 설치 (conda 환경 llm_factory_envs)
conda activate llm_factory_envs
pip install -r requirements.txt3. MCP 서비스 시작
python -m app.main
# 服务启动后监听 http://127.0.0.1:20260/mcp
# 健康检查: curl http://127.0.0.1:20260/health4. 테스트 클라이언트로 검증
새 터미널을 엽니다:
conda activate llm_factory_envs
python -m client.test_client --url http://127.0.0.1:20260/mcp테스트 클라이언트는 순서대로: 서비스 연결 → 사용 가능한 도구 나열 → web_search / web_fetch / web_crawl / web_map / qna_search / search_context 호출 → 결과 출력을 수행합니다.
심층 연구 작업은 시간이 오래 걸릴 수 있으며(수 분 소요 가능), 기본적으로 테스트되지 않습니다. deep_research_start / deep_research_result도 함께 검증하려면:
python -m client.test_client --url http://127.0.0.1:20260/mcp --deep-research
# 也可自定义研究任务描述:
python -m client.test_client --url http://127.0.0.1:20260/mcp --deep-research "近期国产大模型有哪些重要发布"이 모드는 작업 제출 후 10초마다 deep_research_result를 폴링하여 상태가 completed / failed가 될 때까지 대기합니다.
원격 서버 배포
원격 서버 정보: 101.47.67.15, SSH(비밀번호 없는 로그인 설정 완료)를 통해 배포하며, 원격 conda 환경 llm_env를 사용하고, 서비스 포트는 20260으로 고정됩니다.
1. 원격 .env 구성
로컬 .env에서 MCP_HOST를 0.0.0.0(공용 네트워크 수신)으로 변경하고 MCP_PORT는 20260으로 유지한 후, 배포 스크립트를 실행하면 자동으로 scp를 통해 .env가 동기화됩니다(원격과 로컬에서 다른 키를 사용해야 하는 경우 원격에서 직접 /opt/tavily-mcp-server/.env를 수동으로 관리할 수 있습니다).
2. 원클릭 배포
bash deploy/deploy.sh이 스크립트는 다음 작업을 수행합니다:
프로젝트 파일을
root@101.47.67.15:/opt/tavily-mcp-server에rsync합니다(.git,__pycache__등 제외)로컬에
.env가 있으면 동기화합니다원격
llm_env환경에 의존성을 설치합니다systemd서비스를 설치/업데이트하고 재시작합니다
3. 서버 방화벽 / 보안 그룹
클라우드 서비스 제공업체 콘솔의 보안 그룹 규칙에서 TCP 20260 포트를 허용했는지 확인하세요(deploy.sh는 클라우드 보안 그룹을 자동으로 수정하지 않으므로 제공업체 콘솔에서 수동으로 열어야 합니다). 서버 자체에서 firewalld/ufw가 활성화된 경우에도 해당 포트를 허용해야 합니다. 예:
# firewalld
ssh root@101.47.67.15 "firewall-cmd --permanent --add-port=20260/tcp && firewall-cmd --reload"3. 원격 배포 검증
curl http://101.47.67.15:20260/health
python -m client.test_client --url http://101.47.67.15:20260/mcp일반적인 운영 명령
ssh root@101.47.67.15 "systemctl status tavily-mcp.service --no-pager"
ssh root@101.47.67.15 "journalctl -u tavily-mcp.service -f"
ssh root@101.47.67.15 "systemctl restart tavily-mcp.service"MCP 클라이언트 구성
배포 완료 후, Streamable HTTP를 지원하는 모든 MCP 클라이언트에서 다음 구성을 통해 이 서비스에 연결할 수 있습니다:
{
"mcpServers": {
"tavily-web-search": {
"type": "streamable_http",
"url": "http://101.47.67.15:20260/mcp"
}
}
}로컬 연동이 필요하면 URL을 http://127.0.0.1:20260/mcp로 교체하면 됩니다.
환경 변수 설명
변수명 | 설명 | 기본값 |
| Tavily 공식 API Key(필수) | 없음 |
| 서비스 수신 주소 |
|
| 서비스 포트 |
|
| MCP 서버 이름 |
|
| 상태 비저장 모드 활성화 여부(SSE 재연결 시 메시지 손실 방지) |
|
| HTTP 모드 활성화 여부(SSE 대신 HTTP JSON 응답 선호 시 |
|
| 전송 방식 ( |
|
| SSE 엔드포인트 경로 |
|
| 로그 레벨 |
|
| 검색 결과 개수 |
|
| 검색 포함 도메인(쉼표로 구분, 선택 사항) | 없음 |
| 검색 제외 도메인(쉼표로 구분, 선택 사항) | 없음 |
보안 안내
.env파일은.gitignore에 포함되어 있으며 GitHub 저장소에 커밋하지 마십시오.코드에 키를 하드코딩하지 마십시오. 모든 민감한 정보는 환경 변수를 통해 주입됩니다(
python-dotenv로 로드).
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- FlicenseAqualityDmaintenanceEnables web search capabilities through the Tavily API and serves as a demonstration platform for building custom MCP tools. Designed for educational purposes to showcase MCP server development and LangGraph integration.6
- AlicenseBqualityDmaintenanceA local MCP server that exposes Tavily search as a tool and rotates across multiple API keys for reliability.1MIT
- AlicenseAqualityCmaintenanceMCP server for web page fetching (converting to Markdown/text with automatic fallback between Tavily and Firecrawl) and web search via Tavily.2MIT
- AlicenseBqualityDmaintenanceMCP server providing search, extract, map, and crawl tools powered by Tavily for real-time web data access.414MIT
Related MCP Connectors
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
MCP server exposing the Backtest360 engine API as tools for AI agents.
MCP server for Clipkit — gives AI agents a video toolbox via the Clipkit schema.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/La0bALanG/tavily_mcp_server_for_all_tools'
If you have feedback or need assistance with the MCP directory API, please join our Discord server