Skip to main content
Glama
La0bALanG

tavily_mcp_server_for_all_tools

by La0bALanG

Tavily Web Search MCP Server

Ein MCP-Dienst für Websuche, entwickelt auf Basis des offiziellen Tavily Python SDK, implementiert mit dem standardmäßigen MCP Python SDK, unter Verwendung des Streamable HTTP-Übertragungsprotokolls, bereitgestellt über FastAPI + uvicorn.

Funktionen

Der Dienst bietet 8 MCP-Tools, die die Hauptfunktionen des offiziellen Tavily SDK abdecken:

Toolname

Beschreibung

Zugrunde liegende Tavily-Schnittstelle

web_search

Führt eine Websuche basierend auf dem Suchbegriff durch, gibt Titel, Links, Zusammenfassungen, Relevanzwerte zurück und kann optional eine zusammenfassende Antwort generieren.

search

web_fetch

Ruft die Webseite einer bestimmten URL ab und gibt deren Textinhalt (Markdown/Text) zurück.

extract

web_crawl

Durchläuft die gesamte Website ausgehend von der Root-URL, ruft mehrere Seiteninhalte in großen Mengen ab, geeignet für die systematische Sammlung von Inhalten einer Website.

crawl

web_map

Durchläuft die Website-Struktur, entdeckt nur Seiten-URLs ohne Inhalte, geeignet, um zuerst den Umfang der Website zu erfassen.

map

qna_search

Gibt für eine konkrete Frage direkt eine einzeilige Antwort zurück.

qna_search

search_context

Gibt komprimierten Suchkontext zurück, der direkt an LLM-/RAG-Prozesse gefüttert werden kann (automatische Token-Limits und Kürzung).

get_search_context

deep_research_start

Reicht eine Deep-Research-Aufgabe ein (Tavily führt automatisch mehrere Suchrunden durch und generiert einen umfassenden Bericht). Die Aufgabe wird asynchron ausgeführt und gibt sofort request_id zurück.

research

deep_research_result

Fragt den Status und das Endergebnis der Deep-Research-Aufgabe anhand der request_id ab (Berichtstext + Quellenangaben).

get_research

Die Forschungsaufgaben, die deep_research_start / deep_research_result entsprechen, werden asynchron auf dem Tavily-Server ausgeführt und können mehrere Minuten dauern. Rufen Sie zuerst deep_research_start auf, um die request_id zu erhalten, und verwenden Sie dann deep_research_result, um abzufragen, bis der status completed (oder failed) ist.

Related MCP server: tavily-pool-mcp

Verzeichnisstruktur

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

Umgebungsanforderungen

  • Python 3.12 (lokal über die Conda-Umgebung llm_factory_envs entwickelt, auf dem Remote-Server wird llm_env verwendet)

  • Tavily API Key (unter app.tavily.com beantragen)

Lokale Entwicklung und Tests

1. Umgebungsvariablen vorbereiten

cp .env.example .env
# 编辑 .env,填入 TAVILY_API_KEY;本地测试保持 MCP_HOST=127.0.0.1

2. Abhängigkeiten installieren (Conda-Umgebung llm_factory_envs)

conda activate llm_factory_envs
pip install -r requirements.txt

3. MCP-Dienst starten

python -m app.main
# 服务启动后监听 http://127.0.0.1:20260/mcp
# 健康检查: curl http://127.0.0.1:20260/health

4. Mit Testclient verifizieren

Öffnen Sie ein weiteres Terminal:

conda activate llm_factory_envs
python -m client.test_client --url http://127.0.0.1:20260/mcp

Der Testclient führt nacheinander aus: Verbindung zum Dienst herstellen → verfügbare Tools auflisten → web_search / web_fetch / web_crawl / web_map / qna_search / search_context aufrufen und die Ergebnisse ausgeben.

Deep-Research-Aufgaben dauern länger (möglicherweise mehrere Minuten) und werden standardmäßig nicht getestet. Um auch deep_research_start / deep_research_result zu verifizieren:

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 "近期国产大模型有哪些重要发布"

In diesem Modus wird nach dem Einreichen der Aufgabe alle 10 Sekunden deep_research_result abgefragt, bis der Status completed / failed ist.

Bereitstellung auf dem Remote-Server

Remote-Server-Informationen: 101.47.67.15, Bereitstellung über SSH (passwortloses Login bereits konfiguriert), Verwendung der Remote-Conda-Umgebung llm_env, Dienstport fest auf 20260.

1. Remote-.env konfigurieren

In der lokalen .env MCP_HOST auf 0.0.0.0 ändern (für öffentliche Netzwerke), MCP_PORT auf 20260 belassen. Das Bereitstellungsskript synchronisiert die .env automatisch per scp (falls remote und lokal unterschiedliche Keys verwendet werden sollen, kann /opt/tavily-mcp-server/.env direkt auf dem Remote-Server manuell gepflegt werden).

2. Ein-Klick-Bereitstellung

bash deploy/deploy.sh

Das Skript führt Folgendes aus:

  1. rsync der Projektdateien nach root@101.47.67.15:/opt/tavily-mcp-server (unter Ausschluss von .git, __pycache__ usw.)

  2. Synchronisierung der .env (falls lokal vorhanden)

  3. Installation der Abhängigkeiten in der Remote-Umgebung llm_env

  4. Installation/Aktualisierung des systemd-Dienstes und Neustart

3. Server-Firewall / Sicherheitsgruppe

Bitte stellen Sie sicher, dass die Sicherheitsgruppenregeln in der Cloud-Konsole den TCP-Port 20260 freigeben (deploy.sh ändert die Cloud-Sicherheitsgruppe nicht automatisch; dies muss manuell in der Konsole des Anbieters erfolgen). Falls auf dem Server firewalld/ufw aktiviert ist, muss der Port ebenfalls freigegeben werden, z. B.:

# firewalld
ssh root@101.47.67.15 "firewall-cmd --permanent --add-port=20260/tcp && firewall-cmd --reload"

4. Remote-Bereitstellung verifizieren

curl http://101.47.67.15:20260/health
python -m client.test_client --url http://101.47.67.15:20260/mcp

Häufige Betriebsbefehle

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-Client-Konfiguration

Nach der Bereitstellung kann der Dienst in jedem MCP-Client, der Streamable HTTP unterstützt, über die folgende JSON-Konfiguration eingebunden werden:

{
  "mcpServers": {
    "tavily-web-search": {
      "type": "streamable_http",
      "url": "http://101.47.67.15:20260/mcp"
    }
  }
}

Für lokale Tests ersetzen Sie url durch http://127.0.0.1:20260/mcp.

Erläuterung der Umgebungsvariablen

Variablenname

Beschreibung

Standardwert

TAVILY_API_KEY

Offizieller Tavily API Key (erforderlich)

Keiner

MCP_HOST

Adresse, auf der der Dienst lauscht

127.0.0.1 (bei Serverbereitstellung auf 0.0.0.0 ändern)

MCP_PORT

Port, auf dem der Dienst lauscht

20260

MCP_SERVER_NAME

Name des MCP-Servers

tavily-web-search

MCP_STREAMABLE_PATH

Mount-Pfad für Streamable HTTP

/mcp

MCP_STATELESS_HTTP

Ob der zustandslose HTTP-Modus verwendet wird

false

MCP_JSON_RESPONSE

Ob JSON-Antworten erzwungen werden (statt SSE-Stream)

false

TAVILY_REQUEST_TIMEOUT

Timeout (Sekunden) für Aufrufe von Tavily search/extract/qna/context/research usw.

30

TAVILY_CRAWL_TIMEOUT

Timeout (Sekunden) für Aufrufe von Tavily crawl/map, da Site-Traversierung länger dauert

150

LOG_LEVEL

Protokollierungsstufe

INFO

Sicherheitshinweise

  • Die .env-Datei ist in .gitignore ausgeschlossen; niemals in ein GitHub-Repository committen.

  • Keine Schlüssel im Code hartkodieren; alle sensiblen Informationen werden über Umgebungsvariablen injiziert (dynamisch geladen mit python-dotenv).

  • Vor dem Committen von Code erneut prüfen, dass git status keine .env oder andere Dateien mit Schlüsseln enthält.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • F
    license
    A
    quality
    D
    maintenance
    Enables 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
  • A
    license
    B
    quality
    D
    maintenance
    A local MCP server that exposes Tavily search as a tool and rotates across multiple API keys for reliability.
    1
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    MCP server for web page fetching (converting to Markdown/text with automatic fallback between Tavily and Firecrawl) and web search via Tavily.
    2
    MIT

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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