PluginBench
MCP Server
Maintained
MIT

p6xer MCP Server MCP Server

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

Parse, query, and analyze Primavera P6 XER schedule files with AI-powered tools.

What is the p6xer MCP Server MCP server?

The P6XER MCP Server is a Model Context Protocol server for Primavera P6 XER files that exposes 13 tools, 3 resources, and 2 prompts for parsing and analyzing project schedules. It enables AI clients like Claude and Cursor to interactively query activities, resources, critical paths, and earned value metrics from .xer files.

This server bridges Primavera P6 scheduling data and AI agents, allowing you to parse XER files, extract project activities and resources, identify critical paths, perform DCMA schedule quality checks, calculate earned value metrics, and generate reports—all conversationally through Claude or Cursor.

How to install p6xer MCP Server

Copy-paste configuration for popular MCP clients.

transport: stdio
Config generated by PluginBench — verify against the source before use.
Environment / auth
  • P6XER_API_KEY
    secret

    API key used to authenticate with p6xer service.

  • P6XER_ENDPOINT

    Optional p6xer endpoint URL (default uses local p6xer daemon).

  • P6XER_LOG_LEVEL

    Optional log verbosity level (e.g., DEBUG, INFO, WARN, ERROR).

~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "p6xer-mcp-server": {
      "command": "uvx",
      "args": [
        "p6xer-mcp-server",
        "p6xer-mcp-server"
      ],
      "env": {
        "P6XER_API_KEY": "<YOUR_P6XER_API_KEY>",
        "P6XER_ENDPOINT": "<YOUR_P6XER_ENDPOINT>",
        "P6XER_LOG_LEVEL": "<YOUR_P6XER_LOG_LEVEL>"
      }
    }
  }
}

Tools & capabilities

Tools this server exposes to the agent.

  • parse_xer_file — Parse an XER file and return project list, totals, and status breakdowns
  • get_project_activities — Retrieve activities with optional filters by project_id, project_short_name, status, or task_type
  • get_critical_path — Identify critical path activities (float ≤ 0), sorted by early start date
  • analyze_resource_utilization — Analyze planned/actual hours and costs per resource, with over-allocation flags
  • check_schedule_quality — Perform DCMA-style schedule quality checks for missing logic, long durations, high float, and unresourced tasks
  • get_resources — List resources, optionally filtered by type (Labor, Material, Equipment)
  • get_resource_assignments — Retrieve resource–activity assignments with enriched names and costs
  • get_wbs — Retrieve the Work Breakdown Structure hierarchy
  • get_relationships — Get predecessor/successor relationships enriched with task codes
  • get_calendars — Retrieve calendar definitions with hours-per-period data
  • get_schedule_summary — Get at-a-glance schedule statistics: counts, date range, and critical activity count
  • get_earned_value — Calculate Earned Value Management metrics: PV, EV, AC, CV, SV, CPI, SPI, EAC per project
  • get_activity_detail — Retrieve full detail for a single activity including predecessors, successors, and resource assignments

Use cases

  • Parse a Primavera P6 XER file and generate an executive summary of all projects and their status
  • Identify critical path activities and activities at risk of delay to prioritize management focus
  • Analyze resource utilization and over-allocation to optimize workforce planning and costs
  • Perform DCMA schedule quality checks to identify missing logic, long durations, and unresourced tasks
  • Calculate earned value metrics (CPI, SPI, EAC) to track project performance and forecast completion

p6xer MCP Server MCP server FAQ

What is the P6XER MCP Server?

It's an MCP server that parses Primavera P6 XER schedule files and exposes 13 tools for querying activities, resources, critical paths, and earned value metrics. It integrates with Claude Desktop, Claude Code, and Cursor to enable conversational schedule analysis.

Is it free?

Yes, the P6XER MCP Server is open-source under the MIT license and free to use.

How do I install it in Claude Desktop?

Install via PyPI (pip install p6xer-mcp-server) or use uvx (uvx p6xer-mcp-server), then add the server to your claude_desktop_config.json with the command and args shown in the README.

How do I install it in Cursor?

The README focuses on Claude Desktop and Claude Code. For Cursor, follow the same MCP server installation pattern: install the package and configure it in Cursor's MCP settings.

Does it require authentication?

No, the server does not require authentication. It works directly with local XER files you provide.

What Python version is required?

Python 3.10 or higher is required. The server is built on PyP6XER and the MCP framework.

README (reference)

Source of truth, from the repository.

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)

ToolDescription
parse_xer_fileParse an XER file — project list, totals, status breakdowns
get_project_activitiesActivities with filters: project_id, project_short_name, status, task_type
get_critical_pathCritical path activities (float ≤ 0), sorted by early start
analyze_resource_utilizationPlanned/actual hours & costs per resource; over-allocation flags
check_schedule_qualityDCMA-style check: missing logic, long durations, high float, unresourced tasks
get_resourcesList resources, optionally filtered by type
get_resource_assignmentsResource–activity assignments with enriched names and costs
get_wbsWork Breakdown Structure hierarchy
get_relationshipsPredecessor/successor relationships enriched with task codes
get_calendarsCalendar definitions with hours-per-period data
get_schedule_summaryAt-a-glance stats: counts, date range, critical count
get_earned_valueEVM: PV, EV, AC, CV, SV, CPI, SPI, EAC per project
get_activity_detailFull detail for one activity (preds + succs + resources)

📋 Resources (3)

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

PromptTypes
analyze_xer_projectgeneral · schedule · resources · progress · quality
xer_reporting_promptexecutive · 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

Related MCP servers

Read-only access to Genie accounts, transactions, investments, and financial summaries.

0
MIT
View repository →
CACanary MCP logo

Read-only IBKR MCP: account, positions, brief, regime, stress, reporting, Edge, and risk.

7
Go
MIT
View repository →

An MCP server that provides tools to author OSCAL security compliance documentation

2
Python
Apache-2.0
View repository →
ANAnamnesis logo

Anamnesis

Active

Cross-machine, file-first memory for Claude Code: markdown + SQLite FTS5, synced with git

0
Python
Apache-2.0
View repository →
ZOZoteus logo

Zoteus

Active

Access your Zotero library inside Claude, ChatGPT, and Cursor—search, cite, extract passages, and manage your research.

26
TypeScript
MIT
View repository →
CHchartlink logo

chartlink

Active

Charts and tables for AI agents with live-updating embed links. No account: signup returns a key.

0
JavaScript
MIT
View repository →