tavily_fastmcp.service

Direct Tavily service layer.

Purpose:

Offer a typed Python API that wraps langchain-tavily while keeping optional third-party imports out of package import time.

Design:
  • Define a protocol so tests can swap in a fake service.

  • Normalize upstream payloads into stable local models.

  • Keep network calls explicit and easy to mock.

Examples

>>> from tavily_fastmcp.models import SearchRequest
>>> callable(SearchRequest)
True

Attributes

Classes

TavilyServiceProtocol

Protocol for Tavily operations used by the MCP server.

LangChainTavilyService

Production Tavily service backed by langchain_tavily.

Module Contents

tavily_fastmcp.service._SEARCH_CONSTRUCTOR_FIELDS[source]
class tavily_fastmcp.service.TavilyServiceProtocol[source]

Bases: Protocol

Protocol for Tavily operations used by the MCP server.

Examples

>>> hasattr(TavilyServiceProtocol, '__class__')
True
search_from_model(request: tavily_fastmcp.models.SearchRequest | None = None, **kwargs: Any) tavily_fastmcp.models.SearchResponse[source]

Execute a Tavily search request.

extract_from_model(request: tavily_fastmcp.models.ExtractRequest | None = None, **kwargs: Any) tavily_fastmcp.models.ExtractResponse[source]

Execute a Tavily extract request.

map_from_model(request: tavily_fastmcp.models.MapRequest | None = None, **kwargs: Any) tavily_fastmcp.models.MapResponse[source]

Execute a Tavily map request.

crawl_from_model(request: tavily_fastmcp.models.CrawlRequest | None = None, **kwargs: Any) tavily_fastmcp.models.CrawlResponse[source]

Execute a Tavily crawl request.

research_from_model(request: tavily_fastmcp.models.ResearchRequest | None = None, **kwargs: Any) tavily_fastmcp.models.ResearchResponse[source]

Execute a Tavily research request.

get_research_from_model(request: tavily_fastmcp.models.GetResearchRequest | None = None, **kwargs: Any) tavily_fastmcp.models.ResearchResponse[source]

Retrieve a Tavily research task.

class tavily_fastmcp.service.LangChainTavilyService(settings: tavily_fastmcp.settings.Settings)[source]

Production Tavily service backed by langchain_tavily.

Parameters:

settings – Package settings containing the Tavily API key and defaults for topic and depth.

Returns:

A service object able to execute Tavily operations.

Raises:

RuntimeError – If langchain_tavily is not installed.

Examples

>>> service = LangChainTavilyService.__new__(LangChainTavilyService)
>>> service is not None
True
settings[source]
_search_tool_cls[source]
_search_tool[source]
_extract_tool[source]
_map_tool[source]
_crawl_tool[source]
_research_tool[source]
_get_research_tool[source]
search_from_model(request: tavily_fastmcp.models.SearchRequest | None = None, **kwargs: Any) tavily_fastmcp.models.SearchResponse[source]

Execute a search request.

Parameters:
  • request – Optional typed request.

  • **kwargs – Alternative field values when no request is supplied.

Returns:

A normalized search response.

Raises:

RuntimeError – If the underlying tool call fails.

Examples

>>> callable(LangChainTavilyService.search_from_model)
True
extract_from_model(request: tavily_fastmcp.models.ExtractRequest | None = None, **kwargs: Any) tavily_fastmcp.models.ExtractResponse[source]

Execute an extract request.

map_from_model(request: tavily_fastmcp.models.MapRequest | None = None, **kwargs: Any) tavily_fastmcp.models.MapResponse[source]

Execute a map request.

crawl_from_model(request: tavily_fastmcp.models.CrawlRequest | None = None, **kwargs: Any) tavily_fastmcp.models.CrawlResponse[source]

Execute a crawl request.

research_from_model(request: tavily_fastmcp.models.ResearchRequest | None = None, **kwargs: Any) tavily_fastmcp.models.ResearchResponse[source]

Execute a research request.

get_research_from_model(request: tavily_fastmcp.models.GetResearchRequest | None = None, **kwargs: Any) tavily_fastmcp.models.ResearchResponse[source]

Retrieve a research task.

static _raise_if_error(raw: dict[str, Any]) None[source]
static _normalize_search_response(raw: dict[str, Any]) tavily_fastmcp.models.SearchResponse[source]
static _normalize_extract_response(raw: dict[str, Any]) tavily_fastmcp.models.ExtractResponse[source]
static _normalize_map_response(raw: dict[str, Any]) tavily_fastmcp.models.MapResponse[source]
static _normalize_crawl_response(raw: dict[str, Any]) tavily_fastmcp.models.CrawlResponse[source]
static _normalize_research_response(raw: dict[str, Any]) tavily_fastmcp.models.ResearchResponse[source]