tavily_fastmcp.settings

Settings for the Tavily FastMCP package.

Purpose:

Centralize environment-backed configuration for direct Python use, MCP server startup, and test execution.

Design:
  • Preserve Tavily’s canonical TAVILY_API_KEY environment variable.

  • Namespace local runtime settings under TAVILY_FASTMCP_.

  • Cache the validated settings object for ergonomic reuse.

Examples

>>> from tavily_fastmcp.settings import Settings
>>> settings = Settings.model_construct(
...     tavily_api_key="dummy",
...     transport="stdio",
... )
>>> settings.transport
'stdio'

Classes

Settings

Runtime settings for tavily_fastmcp.

Functions

get_settings(→ Settings)

Return the cached package settings.

Module Contents

class tavily_fastmcp.settings.Settings(_case_sensitive: bool | None = None, _nested_model_default_partial_update: bool | None = None, _env_prefix: str | None = None, _env_prefix_target: pydantic_settings.sources.EnvPrefixTarget | None = None, _env_file: pydantic_settings.sources.DotenvType | None = ENV_FILE_SENTINEL, _env_file_encoding: str | None = None, _env_ignore_empty: bool | None = None, _env_nested_delimiter: str | None = None, _env_nested_max_split: int | None = None, _env_parse_none_str: str | None = None, _env_parse_enums: bool | None = None, _cli_prog_name: str | None = None, _cli_parse_args: bool | list[str] | tuple[str, Ellipsis] | None = None, _cli_settings_source: pydantic_settings.sources.CliSettingsSource[Any] | None = None, _cli_parse_none_str: str | None = None, _cli_hide_none_type: bool | None = None, _cli_avoid_json: bool | None = None, _cli_enforce_required: bool | None = None, _cli_use_class_docs_for_groups: bool | None = None, _cli_exit_on_error: bool | None = None, _cli_prefix: str | None = None, _cli_flag_prefix_char: str | None = None, _cli_implicit_flags: bool | Literal['dual', 'toggle'] | None = None, _cli_ignore_unknown_args: bool | None = None, _cli_kebab_case: bool | Literal['all', 'no_enums'] | None = None, _cli_shortcuts: collections.abc.Mapping[str, str | list[str]] | None = None, _secrets_dir: pydantic_settings.sources.PathType | None = None, _build_sources: tuple[tuple[pydantic_settings.sources.PydanticBaseSettingsSource, Ellipsis], dict[str, Any]] | None = None, **values: Any)[source]

Bases: pydantic_settings.BaseSettings

Runtime settings for tavily_fastmcp.

Parameters:
  • tavily_api_key – Tavily API key read from TAVILY_API_KEY.

  • transport – MCP transport to run when using the CLI.

  • host – Hostname for streamable HTTP or SSE style transports.

  • port – TCP port for HTTP-based transports.

  • log_level – Logging verbosity.

  • default_search_topic – Default Tavily topic.

  • default_search_depth – Default Tavily search depth.

  • enable_live_tests – Whether live integration tests are enabled.

Returns:

A validated settings object.

Raises:

ValueError – If one or more settings values are invalid.

Examples

>>> settings = Settings.model_construct(
...     tavily_api_key="dummy",
...     transport="stdio",
... )
>>> settings.transport
'stdio'
model_config[source]

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

tavily_api_key: pydantic.SecretStr = None[source]
transport: Literal['stdio', 'http', 'sse'] = 'stdio'[source]
host: str = '127.0.0.1'[source]
port: int = 8001[source]
log_level: Literal['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'] = 'INFO'[source]
default_search_topic: Literal['general', 'news', 'finance'] = 'general'[source]
default_search_depth: Literal['basic', 'advanced'] = 'basic'[source]
enable_live_tests: bool = False[source]
tavily_fastmcp.settings.get_settings() Settings[source]

Return the cached package settings.

Returns:

The cached validated settings object.

Raises:

ValueError – If required environment variables are missing.

Examples

>>> from tavily_fastmcp.settings import get_settings
>>> callable(get_settings)
True