Skip to main content
Glama
by zachegner
compliance.py2.65 kB
"""Compliance-related data models.""" from pydantic import BaseModel, Field from typing import List, Optional from enum import Enum from datetime import date from .facility import FacilityInfo class ComplianceStatus(str, Enum): """Compliance status enumeration.""" COMPLIANT = "compliant" VIOLATION = "violation" UNKNOWN = "unknown" class ViolationInfo(BaseModel): """Information about a compliance violation.""" violation_id: Optional[str] = Field(None, description="Unique violation identifier") violation_type: str = Field(..., description="Type of violation") violation_date: Optional[date] = Field(None, description="Date of violation") status: str = Field(..., description="Current violation status") description: Optional[str] = Field(None, description="Description of violation") enforcement_action: Optional[str] = Field(None, description="Enforcement action taken") penalty_amount: Optional[float] = Field(None, description="Penalty amount in dollars") class ComplianceRecord(BaseModel): """Compliance record for a specific EPA program.""" program: str = Field(..., description="EPA program (TRI, RCRA, etc.)") status: ComplianceStatus = Field(..., description="Overall compliance status") violations: List[ViolationInfo] = Field(default_factory=list, description="List of violations") last_inspection_date: Optional[date] = Field(None, description="Date of last inspection") last_enforcement_date: Optional[date] = Field(None, description="Date of last enforcement action") total_penalties: Optional[float] = Field(None, description="Total penalties in dollars") violation_count: int = Field(0, description="Number of violations") class FacilityComplianceHistory(BaseModel): """Complete compliance history for a facility.""" facility_info: FacilityInfo = Field(..., description="Facility information") compliance_records: List[ComplianceRecord] = Field(default_factory=list, description="Compliance records by program") overall_status: ComplianceStatus = Field(..., description="Overall facility compliance status") total_violations: int = Field(0, description="Total violations across all programs") total_penalties: Optional[float] = Field(None, description="Total penalties across all programs") years_analyzed: int = Field(..., description="Number of years analyzed") last_updated: Optional[date] = Field(None, description="Date of last compliance update") def __str__(self) -> str: return f"Compliance History for {self.facility_info.name} ({self.facility_info.registry_id})"

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zachegner/envirofacts-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server