"""Configuration management for OpenProject MCP server."""
from pydantic import Field
from pydantic_settings import BaseSettings, SettingsConfigDict
class OpenProjectConfig(BaseSettings):
"""OpenProject MCP Server Configuration.
Configuration is loaded from environment variables with OPENPROJECT_ prefix.
"""
model_config = SettingsConfigDict(
env_file=".env",
env_file_encoding="utf-8",
case_sensitive=False,
extra="ignore"
)
# Required configuration
openproject_url: str = Field(
...,
description="OpenProject instance URL (e.g., https://community.openproject.org)",
)
openproject_api_key: str = Field(
...,
description="OpenProject API key from user account settings",
)
# Optional configuration
openproject_timeout: int = Field(
default=30,
description="HTTP request timeout in seconds",
ge=1,
le=300
)
openproject_max_retries: int = Field(
default=3,
description="Maximum number of retry attempts for failed requests",
ge=0,
le=10
)