Skip to main content
Glama
osama-ata

P6XER MCP Server

by osama-ata

P6XER MCP Server

mcp-name: io.github.osama-ata/p6xer-mcp-server

PyPI version Python 3.12+ License: MIT MCP

A full-featured Model Context Protocol (MCP) server for Primavera P6 XER files, built on PyP6XER.

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

get_earned_value

EVM: PV, EV, AC, CV, SV, CPI, SPI, EAC per project

get_activity_detail

Full detail for one activity (preds + succs + resources)

πŸ“‹ Resources (3)

URI

Description

xer-project://{file_path}/{project_id}

Detailed text summary of a specific project

xer-activities://{file_path}

Activities summary with status breakdown and duration stats

xer-resources://{file_path}

Resources summary with type breakdown and assignment stats

πŸ’¬ Prompts (2)

Prompt

Types

analyze_xer_project

general Β· schedule Β· resources Β· progress Β· quality

xer_reporting_prompt

executive Β· detailed Β· critical_path Β· resource Β· milestone


οΏ½ Install from Store

Via PyPI (uvx β€” no install needed)

uvx p6xer-mcp-server

Via PyPI (pip)

pip install p6xer-mcp-server
p6xer-mcp-server

Via Smithery

Search for p6xer-mcp-server on smithery.ai and click Install. It will generate the correct Claude Desktop config automatically.

Via GitHub MCP Registry

The server is listed in the GitHub MCP Registry. In Claude Code:

claude mcp add p6xer -- uvx p6xer-mcp-server

Claude Desktop config (after PyPI install)

{
  "mcpServers": {
    "p6xer": {
      "command": "uvx",
      "args": ["p6xer-mcp-server"]
    }
  }
}

οΏ½πŸ“¦ Installation

# 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

πŸƒ Running

Development / MCP Inspector:

uv run mcp dev src/p6xer_mcp_server/server.py

Stdio (Claude Desktop / Claude Code):

uv run p6xer-mcp-server

πŸ”Œ Claude Desktop

Add to claude_desktop_config.json:

{
  "mcpServers": {
    "p6xer": {
      "command": "uvx",
      "args": ["p6xer-mcp-server"]
    }
  }
}

Config file locations:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

πŸ”Œ Claude Code (CLI)

claude mcp add p6xer -- uvx p6xer-mcp-server

πŸ’¬ Example Prompts

Once connected:

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")

Status codes

TK_NotStart Β· TK_Active Β· TK_Complete

Task types

TT_Task Β· TT_Mile Β· TT_FinMile Β· TT_WBS

Resource types

RT_Labor Β· RT_Mat Β· RT_Equip


πŸ—‚οΈ Project Structure

p6xer-mcp-server/
β”œβ”€β”€ src/
β”‚   └── p6xer_mcp_server/
β”‚       β”œβ”€β”€ __init__.py
β”‚       └── server.py       # All tools, resources, and prompts
β”œβ”€β”€ manifest.json           # MCPB bundle manifest
β”œβ”€β”€ mcp.json                # MCP registry metadata
β”œβ”€β”€ smithery.yaml           # Smithery registry configuration
β”œβ”€β”€ pyproject.toml
└── README.md

πŸ“‹ Requirements

  • Python β‰₯ 3.10

  • mcp[cli] >= 1.6.0, < 2.0.0

  • pyp6xer >= 1.16.0


πŸ“„ License

MIT


🚒 Publishing to PyPI (GitHub Actions + Trusted Publishing)

This repository includes a release workflow at .github/workflows/publish-to-pypi.yml based on the PyPA guide and pypa/gh-action-pypi-publish.

1) Configure Trusted Publishers

Create trusted publishers for this exact workflow file:

Use these values:

  • Owner: osama-ata

  • Repository: p6xer-mcp-server

  • Workflow file: publish-to-pypi.yml

  • Environment: pypi (for PyPI), testpypi (for TestPyPI)

  • Project name: p6xer-mcp-server

2) Create GitHub Environments

In repository settings, create two environments:

  • pypi

  • testpypi

Recommended security setup:

  • Require manual approval for pypi

  • No approval required for testpypi

3) Build locally (optional sanity check)

python -m pip install --upgrade build twine
python -m build
python -m twine check dist/*

4) Release flow

  • Push to main: publishes to TestPyPI

  • Push tag v* (for example v0.1.1): publishes to PyPI

git tag v0.1.1
git push origin v0.1.1
Install Server
A
license - permissive license
A
quality
C
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

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/osama-ata/p6xer-mcp-server'

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