Implement complete MCP server for parsing Primavera P6 XER files and exposing schedule data through MCP tools. All 4 user stories complete. Tools implemented: - load_xer: Parse XER files into SQLite database - list_activities: Query activities with pagination and filtering - get_activity: Get activity details by ID - list_relationships: Query activity dependencies - get_predecessors/get_successors: Query activity relationships - get_project_summary: Project overview with counts - list_milestones: Query milestone activities - get_critical_path: Query driving path activities Features: - Tab-delimited XER format parsing with pluggable table handlers - In-memory SQLite database for fast queries - Pagination with 100-item default limit - Multi-project file support with project selection - ISO8601 date formatting - NO_FILE_LOADED error handling for all query tools Test coverage: 81 tests (contract, integration, unit)
24 lines
574 B
Python
24 lines
574 B
Python
"""Activity data model."""
|
|
|
|
from dataclasses import dataclass
|
|
from datetime import datetime
|
|
|
|
|
|
@dataclass
|
|
class Activity:
|
|
"""A unit of work in the schedule."""
|
|
|
|
task_id: str
|
|
proj_id: str
|
|
task_code: str
|
|
task_name: str
|
|
task_type: str
|
|
wbs_id: str | None = None
|
|
target_start_date: datetime | None = None
|
|
target_end_date: datetime | None = None
|
|
act_start_date: datetime | None = None
|
|
act_end_date: datetime | None = None
|
|
total_float_hr_cnt: float | None = None
|
|
driving_path_flag: bool = False
|
|
status_code: str | None = None
|