p6xer MCP Server

io.github.osama-ata由 GitHub 帳號 osama-ata 發布v0.1.3更新於 Oct 24, 2026

An MCP server for Primavera P6 XER files.

已驗證STDIO僅桌面效率與工作流資料與分析

概覽

AI 產生的概覽

讓助理解析與分析 Primavera P6 XER 排程檔案,包括要徑、資源與實獲值。

可以做什麼
以 PyP6XER 為基礎,提供 13 個工具讀取 .xer 排程檔案:解析檔案取得專案清單與狀態分布、列出活動與 WBS 階層、找出要徑活動、依 DCMA 風格規則檢查排程品質,以及檢視資源、指派、行事曆與關聯性。也可計算 PV、EV、AC、CPI、SPI、EAC 等實獲值指標與彙總統計。另有 3 個資源與 2 個提示範本,可產生專案、活動與資源摘要及報告大綱。
適用情境
適合助理需要檢視或彙報以 XER 檔案儲存的 Primavera P6 專案排程時使用,例如排程品質審查、要徑問題、資源使用檢查或實獲值報告。適用於專案控制與規劃管理情境,而非一般檔案處理。
執行需求
以本機 stdio 程序執行,通常透過 uvx 或 pip 啟動,需要 Python 3.10 或更新版本以及 mcp 與 pyp6xer 套件。API 金鑰從環境變數 P6XER_API_KEY 讀取;P6XER_ENDPOINT 為選用,用於指向 p6xer 服務,否則預設使用本機常駐程式。P6XER_LOG_LEVEL 為選用,用於設定日誌等級。僅支援桌面用戶端。
安裝前請注意
此伺服器要求名為 P6XER_API_KEY 的密鑰,請視為敏感資訊,避免在共用設定中外洩。設定 P6XER_ENDPOINT 可能將排程資料傳送到遠端服務,而非保留在本機。這些工具會讀取與分析 XER 檔案;在用於正式排程前,請確認是否有操作會寫入或修改檔案。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 p6xer MCP Server,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

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)

bash
uvx p6xer-mcp-server

Via PyPI (pip)

bash
pip install p6xer-mcp-serverp6xer-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:

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

Claude Desktop config (after PyPI install)

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

�📦 Installation

bash
# Clone the repogit clone https://github.com/osama-ata/p6xer-mcp-server.gitcd p6xer-mcp-server
# Install with uv (recommended)uv sync
# Or with pippip install "mcp[cli]>=1.6.0,<2.0.0" pyp6xer

🏃 Running

Development / MCP Inspector:

bash
uv run mcp dev src/p6xer_mcp_server/server.py

Stdio (Claude Desktop / Claude Code):

bash
uv run p6xer-mcp-server

🔌 Claude Desktop

Add to claude_desktop_config.json:

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)

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

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

4) Release flow

  • Push to main: publishes to TestPyPI
  • Push tag v* (for example v0.1.1): publishes to PyPI
bash
git tag v0.1.1git push origin v0.1.1

來源:README.md,提交 416ec11

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.3最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分