|
4 | 4 |
|
5 | 5 | import os |
6 | 6 | from typing import Optional |
7 | | -from pydantic import BaseModel, Field |
| 7 | + |
| 8 | +from pydantic import BaseModel, ConfigDict, Field |
8 | 9 | from pydantic_settings import BaseSettings |
9 | 10 |
|
10 | 11 |
|
11 | 12 | class MCPServerConfig(BaseSettings): |
12 | 13 | """MCP Server configuration.""" |
| 14 | + |
| 15 | + model_config = ConfigDict( |
| 16 | + env_file=".env", |
| 17 | + env_file_encoding="utf-8", |
| 18 | + extra="ignore" # This will ignore extra environment variables |
| 19 | + ) |
13 | 20 |
|
14 | 21 | # Server settings |
15 | | - host: str = Field(default="0.0.0.0", env="MCP_HOST") |
16 | | - port: int = Field(default=9000, env="MCP_PORT") |
17 | | - debug: bool = Field(default=False, env="MCP_DEBUG") |
| 22 | + host: str = Field(default="0.0.0.0") |
| 23 | + port: int = Field(default=9000) |
| 24 | + debug: bool = Field(default=False) |
18 | 25 |
|
19 | 26 | # Authentication settings |
20 | | - tenant_id: Optional[str] = Field(default=None, env="AZURE_TENANT_ID") |
21 | | - client_id: Optional[str] = Field(default=None, env="AZURE_CLIENT_ID") |
22 | | - jwks_uri: Optional[str] = Field(default=None, env="AZURE_JWKS_URI") |
23 | | - issuer: Optional[str] = Field(default=None, env="AZURE_ISSUER") |
24 | | - audience: Optional[str] = Field(default=None, env="AZURE_AUDIENCE") |
| 27 | + tenant_id: Optional[str] = Field(default=None) |
| 28 | + client_id: Optional[str] = Field(default=None) |
| 29 | + jwks_uri: Optional[str] = Field(default=None) |
| 30 | + issuer: Optional[str] = Field(default=None) |
| 31 | + audience: Optional[str] = Field(default=None) |
25 | 32 |
|
26 | 33 | # MCP specific settings |
27 | | - server_name: str = Field(default="MACAE MCP Server", env="MCP_SERVER_NAME") |
28 | | - enable_auth: bool = Field(default=True, env="MCP_ENABLE_AUTH") |
29 | | - |
30 | | - class Config: |
31 | | - env_file = ".env" |
32 | | - env_file_encoding = "utf-8" |
| 34 | + server_name: str = Field(default="MACAE MCP Server") |
| 35 | + enable_auth: bool = Field(default=True) |
| 36 | + |
| 37 | + # Dataset path - added to handle the environment variable |
| 38 | + dataset_path: str = Field(default="./datasets") |
33 | 39 |
|
34 | 40 |
|
35 | 41 | # Global configuration instance |
|
0 commit comments