Spaces:
Running
Running
| """Configuration for Healthcare API MCP.""" | |
| import os | |
| from typing import List, Optional | |
| from pydantic import BaseModel, Field | |
| class ProviderConfig(BaseModel): | |
| """Configuration for a provider.""" | |
| name: str | |
| enabled: bool = True | |
| api_key: Optional[str] = None | |
| class MCPConfig(BaseModel): | |
| """Main MCP server configuration.""" | |
| # Enabled providers (comma-separated or list) | |
| enabled_providers: List[str] = Field( | |
| default_factory=lambda: ["openfda", "clinical_guidelines", "cms_pricing"] | |
| ) | |
| # OpenFDA API key (optional but recommended for higher rate limits) | |
| openfda_api_key: Optional[str] = Field(default=None) | |
| # Logging level | |
| log_level: str = Field(default="INFO") | |
| def from_env(cls) -> "MCPConfig": | |
| """Load configuration from environment variables.""" | |
| # Parse enabled providers | |
| enabled_str = os.getenv("ENABLED_PROVIDERS", "") | |
| if enabled_str: | |
| enabled_providers = [p.strip() for p in enabled_str.split(",")] | |
| else: | |
| enabled_providers = ["openfda", "clinical_guidelines", "cms_pricing"] | |
| return cls( | |
| enabled_providers=enabled_providers, | |
| openfda_api_key=os.getenv("OPENFDA_API_KEY"), | |
| log_level=os.getenv("LOG_LEVEL", "INFO") | |
| ) | |