Files
prompts/src/personal_mcp/web/config.py
T
2026-07-02 23:05:05 -05:00

39 lines
974 B
Python

from contextvars import ContextVar
from pathlib import Path
from pydantic import Field
from pydantic_settings import BaseSettings
from pydantic_settings import SettingsConfigDict
DEFAULT_ENV_FILE = Path(".env").resolve()
_REPO_ROOT = Path(__file__).resolve().parents[3]
class Settings(BaseSettings):
"""Runtime settings for the HTTP MCP and docs server."""
model_config = SettingsConfigDict(
env_file=DEFAULT_ENV_FILE,
env_prefix="PERSONAL_MCP_",
extra="ignore",
)
host: str = "127.0.0.1"
port: int = 8000
debug: bool = False
log_level: str = "info"
docs_route: str = "/docs"
mcp_route: str = "/mcp"
site_dir: Path = Field(default=_REPO_ROOT / "site")
_settings: ContextVar[Settings | None] = ContextVar("settings", default=None)
def get_settings() -> Settings:
settings = _settings.get()
if settings is None:
settings = Settings()
_settings.set(settings)
return settings