# p6xer MCP Server

This MCP server reads Primavera P6 XER files and lets an agent inspect schedules, resources, critical paths, and earned-value metrics.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 12
- Author: osama-ata
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/osama-ata/p6xer-mcp-server
- Updated: 2026-03-25
- HTML: https://affpapa.org/en/nevibecode/mcp/p6xer-mcp-server

## What it does

p6xer MCP Server works with Primavera P6 `.xer` files. Its 13 tools parse projects and activities, find critical-path work, inspect resources and relationships, check schedule quality, and return WBS and calendar data. It also calculates earned-value measures such as CPI and SPI and can return the full record for one activity.

The package exposes 3 resources for project, activity, and resource summaries, plus 2 prompts for project analysis and reporting. It can run through `uvx p6xer-mcp-server`. A local setup requires Python ≥ 3.10, `mcp[cli] >= 1.6.0, < 2.0.0`, and `pyp6xer >= 1.16.0`; the supplied setup commands use `P6XER_API_KEY`, `P6XER_ENDPOINT`, and `P6XER_LOG_LEVEL`.

## Requirements
- Needs: Python and uv (commands run via uvx)
- Environment variables: `P6XER_API_KEY`, `P6XER_ENDPOINT`, `P6XER_LOG_LEVEL` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env P6XER_API_KEY=<P6XER_API_KEY> --env P6XER_ENDPOINT=<P6XER_ENDPOINT> --env P6XER_LOG_LEVEL=<P6XER_LOG_LEVEL> --transport stdio p6xer-mcp-server -- uvx p6xer-mcp-server
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from p6xer-mcp-server <command>

### Codex

**Platform CLI**
```bash
codex mcp add p6xer-mcp-server --env P6XER_API_KEY=<P6XER_API_KEY> --env P6XER_ENDPOINT=<P6XER_ENDPOINT> --env P6XER_LOG_LEVEL=<P6XER_LOG_LEVEL> -- uvx p6xer-mcp-server
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from p6xer-mcp-server <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "p6xer-mcp-server": {
            "command": "uvx",
            "args": [
                "p6xer-mcp-server"
            ],
            "env": {
                "P6XER_API_KEY": "<P6XER_API_KEY>",
                "P6XER_ENDPOINT": "<P6XER_ENDPOINT>",
                "P6XER_LOG_LEVEL": "<P6XER_LOG_LEVEL>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from p6xer-mcp-server <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "p6xer-mcp-server": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "p6xer-mcp-server"
            ],
            "env": {
                "P6XER_API_KEY": "<P6XER_API_KEY>",
                "P6XER_ENDPOINT": "<P6XER_ENDPOINT>",
                "P6XER_LOG_LEVEL": "<P6XER_LOG_LEVEL>"
            }
        }
    }
}
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from p6xer-mcp-server <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e P6XER_API_KEY=<P6XER_API_KEY> -e P6XER_ENDPOINT=<P6XER_ENDPOINT> -e P6XER_LOG_LEVEL=<P6XER_LOG_LEVEL> p6xer-mcp-server uvx p6xer-mcp-server
```
Replace <…> with your own values. uvx runs the command named after the package; if the README names another one, use uvx --from p6xer-mcp-server <command>

## When to use it
- parse a Primavera P6 XER file
- trace activities on the critical path
- run a DCMA-style schedule check
- calculate earned-value metrics
- find over-allocated resources and assignments

## Example prompts
- Parse `project.xer` and summarize every project.
- List the critical-path activities in `project.xer`, ordered by start date.
- Run a schedule quality check on `project.xer` and report CPI and SPI.

## Similar
- [xlsx](https://affpapa.org/en/nevibecode/skills/xlsx.md) — skill · 187223 installs
- [gws-sheets](https://affpapa.org/en/nevibecode/skills/gws-sheets.md) — skill · 58900 installs
- [gws-sheets-read](https://affpapa.org/en/nevibecode/skills/gws-sheets-read.md) — skill · 50700 installs
- [pdf-extraction](https://affpapa.org/en/nevibecode/skills/pdf-extraction.md) — skill · 9300 installs
- [power-bi-performance-troubleshooting](https://affpapa.org/en/nevibecode/skills/power-bi-performance-troubleshooting.md) — skill · 8900 installs
- [data-analysis](https://affpapa.org/en/nevibecode/skills/data-analysis.md) — skill · 7900 installs

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
