This Model Context Protocol (MCP) server provides MCP-compatible access to Primavera P6 XER files. It is described as a “full-featured” solution and is built on the PyP6XER library. The repository indicates Python 3.12+ support and an MIT license, with 13 tools exposed via the server.
🛠️ Key Features
MCP server for Primavera P6 XER files
MCP-compatible integration
Built on PyP6XER
Published as p6xer-mcp-server (PyPI)
🚀 Use Cases
Reading or working with Primavera P6 scheduling export data in XER format
Integrating P6 scheduling content into MCP-based developer workflows
⚡ Developer Benefits
Fits into MCP tooling via a server identified as io.github.osama-ata/p6xer-mcp-server
Provides 13 tools for interacting with XER-related functionality
Uses Python 3.12+
⚠️ Limitations
Source data provided does not list specific tool names, supported operations, or configuration details
Topics
cpmp6schedulingxermcpmcp-serverproject-management
Declared in the repository manifest (mcp.json). Not verified against a live endpoint.
parse_xer_file
Parse a P6 XER file and return project list, activity counts, resources, and calendars
Parameters
No parameters.
get_project_activities
Get activities filtered by project, status, or task type
Parameters
No parameters.
get_critical_path
Find critical path activities with zero or negative total float
Parameters
No parameters.
analyze_resource_utilization
Planned/actual hours and costs per resource with over-allocation flags
Parameters
No parameters.
check_schedule_quality
DCMA-style schedule quality check: missing logic, long durations, high float
Parameters
No parameters.
get_resources
List all resources, optionally filtered by type
Parameters
No parameters.
get_resource_assignments
Resource-activity assignments with enriched names and costs
Parameters
No parameters.
get_wbs
Work Breakdown Structure hierarchy
Parameters
No parameters.
get_relationships
Predecessor/successor relationships enriched with task codes
Parameters
No parameters.
get_calendars
Calendar definitions with hours-per-period data
Parameters
No parameters.
get_schedule_summary
At-a-glance schedule stats, date range, and critical count
Parameters
No parameters.
get_earned_value
EVM metrics: PV, EV, AC, CPI, SPI, EAC per project
Parameters
No parameters.
get_activity_detail
Full detail for a single activity including predecessors, successors, and resources
Exposes 13 Tools, 3 Resources, and 2 Prompts so any MCP-compatible AI client (Claude Desktop, Claude Code, Cursor, etc.) can interactively parse, query, and analyze .xer schedule files.
🚀 Features
🔧 Tools (13)
Tool
Description
parse_xer_file
Parse an XER file — project list, totals, status breakdowns
get_project_activities
Activities with filters: project_id, project_short_name, status, task_type
get_critical_path
Critical path activities (float ≤ 0), sorted by early start
analyze_resource_utilization
Planned/actual hours & costs per resource; over-allocation flags
check_schedule_quality
DCMA-style check: missing logic, long durations, high float, unresourced tasks
get_resources
List resources, optionally filtered by type
get_resource_assignments
Resource–activity assignments with enriched names and costs
get_wbs
Work Breakdown Structure hierarchy
get_relationships
Predecessor/successor relationships enriched with task codes
get_calendars
Calendar definitions with hours-per-period data
get_schedule_summary
At-a-glance stats: counts, date range, critical count
# Clone the repo
git clone https://github.com/osama-ata/p6xer-mcp-server.git
cd p6xer-mcp-server
# Install with uv (recommended)
uv sync# Or with pip
pip install "mcp[cli]>=1.6.0,<2.0.0" pyp6xer
Parse project.xer and give me an overview of all projects
What are all the critical path activities, sorted by start date?
Run a DCMA schedule quality check on project.xer
Calculate earned value metrics — what are the CPI and SPI?
Show all resource assignments for "John Smith"
What are the predecessors and successors of activity A1000?
List all over-allocated labor resources
Generate an executive summary report for project.xer
📊 Tool Reference
Filter parameters (most tools accept)
project_id – numeric P6 project ID (e.g. "1234")
project_short_name – project short name string (e.g. "PROJ1")