tavily_fastmcp.models¶
Typed models for Tavily FastMCP.
- Purpose:
Define canonical request, response, catalog, and profile models.
- Design:
Request models are strict and reject unknown fields.
Response models allow extra fields because upstream Tavily payloads may evolve.
Profile and catalog models are shared between direct Python helpers, packaged resources, and MCP prompts.
Examples
>>> SearchRequest(query="FastMCP docs").max_results
5
>>> ProfileSummary(slug="router", title="Router", summary="x").slug
'router'
Attributes¶
Classes¶
Canonical request model for Tavily search. |
|
Canonical request model for Tavily extract. |
|
Canonical request model for Tavily map. |
|
Canonical request model for Tavily crawl. |
|
Canonical request model for Tavily research. |
|
Canonical request model for retrieving a Tavily research task. |
|
Normalized Tavily search hit. |
|
Normalized Tavily search response. |
|
Normalized Tavily extract result item. |
|
Normalized Tavily extract response. |
|
Normalized Tavily map response. |
|
Normalized Tavily crawl result item. |
|
Normalized Tavily crawl response. |
|
Source used by a Tavily research task. |
|
Normalized Tavily research response. |
|
Summary metadata for a packaged prompt profile. |
|
Structured packaged profile with markdown prompt content. |
|
Catalog of server metadata exposed through resources and tools. |
|
Simple health payload. |
Module Contents¶
- class tavily_fastmcp.models.SearchRequest(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelCanonical request model for Tavily search.
- Parameters:
query – Natural-language search query.
max_results – Maximum number of results.
topic – Tavily topic mode.
include_answer – Whether to include Tavily’s answer field.
include_raw_content – Whether to return cleaned page content.
include_images – Whether to include image URLs.
include_image_descriptions – Whether to include image descriptions.
search_depth – Tavily search depth.
time_range – Relative time filter.
start_date – Inclusive start bound in
YYYY-MM-DDformat.end_date – Inclusive end bound in
YYYY-MM-DDformat.include_domains – Domains to include.
exclude_domains – Domains to exclude.
include_usage – Whether to return usage metadata.
- Returns:
A validated request object.
- Raises:
ValueError – If a field is invalid.
Examples
>>> SearchRequest(query="FastMCP resources", max_results=3).max_results 3
- class tavily_fastmcp.models.ExtractRequest(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelCanonical request model for Tavily extract.
- Parameters:
urls – URLs to extract.
extract_depth – Extraction depth.
include_images – Whether to include images.
- Returns:
A validated request object.
- Raises:
ValueError – If a field is invalid.
Examples
>>> ExtractRequest(urls=["https://example.com"]).extract_depth 'basic'
- class tavily_fastmcp.models.MapRequest(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelCanonical request model for Tavily map.
- class tavily_fastmcp.models.CrawlRequest(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelCanonical request model for Tavily crawl.
- class tavily_fastmcp.models.ResearchRequest(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelCanonical request model for Tavily research.
- model_config[source]¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- output_schema: JsonObject | None = None[source]¶
- class tavily_fastmcp.models.GetResearchRequest(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelCanonical request model for retrieving a Tavily research task.
- class tavily_fastmcp.models.SearchHit(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelNormalized Tavily search hit.
- class tavily_fastmcp.models.SearchResponse(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelNormalized Tavily search response.
- model_config[source]¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- usage: JsonObject | None = None[source]¶
- class tavily_fastmcp.models.ExtractHit(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelNormalized Tavily extract result item.
- class tavily_fastmcp.models.ExtractResponse(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelNormalized Tavily extract response.
- model_config[source]¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- results: list[ExtractHit] = None[source]¶
- failed_results: list[JsonObject] = None[source]¶
- class tavily_fastmcp.models.MapResponse(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelNormalized Tavily map response.
- class tavily_fastmcp.models.CrawlHit(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelNormalized Tavily crawl result item.
- class tavily_fastmcp.models.CrawlResponse(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelNormalized Tavily crawl response.
- class tavily_fastmcp.models.ResearchSource(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelSource used by a Tavily research task.
- class tavily_fastmcp.models.ResearchResponse(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelNormalized Tavily research response.
- model_config[source]¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- content: str | JsonObject | None = None[source]¶
- sources: list[ResearchSource] = None[source]¶
- class tavily_fastmcp.models.ProfileSummary(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelSummary metadata for a packaged prompt profile.
- Parameters:
slug – Stable profile slug.
title – Human-readable title.
summary – One-sentence profile summary.
tags – Tags for filtering and discovery.
recommended_tools – Ordered preferred tool names.
prompt_resource_uri – Resource URI for the prompt text.
profile_resource_uri – Resource URI for structured profile metadata.
- Returns:
A reusable profile summary object.
- Raises:
ValueError – If a field is invalid.
Examples
>>> ProfileSummary( ... slug="router", ... title="Router", ... summary="Route tasks", ... prompt_resource_uri="resource://x", ... profile_resource_uri="resource://y", ... ).slug 'router'
- class tavily_fastmcp.models.PromptProfile(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelStructured packaged profile with markdown prompt content.
- Parameters:
slug – Stable profile slug.
title – Human-readable title.
summary – Short description.
use_when – List of ideal use cases.
avoid_when – List of anti-patterns.
recommended_tools – Preferred tool sequence.
tags – Discovery tags.
meta – Arbitrary profile metadata.
prompt_markdown – Full markdown prompt body.
- Returns:
A rich profile object.
- Raises:
ValueError – If a field is invalid.
Examples
>>> profile = PromptProfile( ... slug="router", ... title="Router", ... summary="Route tasks", ... prompt_markdown="# Router", ... ) >>> profile.title 'Router'
- meta: JsonObject = None[source]¶
- class tavily_fastmcp.models.ServerCatalog(/, **data: Any)[source]¶
Bases:
pydantic.BaseModelCatalog of server metadata exposed through resources and tools.
- meta: JsonObject = None[source]¶