P6-MCP

Analiza archivos de programación XER de Oracle Primavera P6 y controla P6 EPPM en vivo, ruta crítica, DCMA de 14 puntos, valor ganado y 138 herramientas para cualquier cliente de IA.

Documentación

P6-MCP

PyPI Python License: MIT CI Smithery Docker

Servidor MCP de Primavera P6

Un servidor MCP completamente funcional para Oracle Primavera P6. Apunta cualquier cliente de IA compatible con MCP a tus archivos XER o a una instancia P6 EPPM en vivo y comienza a hacer preguntas en lenguaje natural.


✨ Características destacadas

  • 138 herramientas en una superficie unificada — la misma herramienta funciona tanto con archivos XER como con P6 EPPM en vivo sin cambios en tu prompt
  • Parser XER completo — lectura y escritura sin pérdida del formato Oracle Primavera XER, incluyendo todas las tablas, codificación CP1252 y datos de calendario
  • Evaluación de cronograma DCMA de 14 puntos — verificación automatizada de cumplimiento con aprobado/reprobado por métrica y hallazgos accionables
  • Análisis de ruta crítica y flotación — pasada hacia adelante/atrás, ruta conductora, actividades casi críticas, detección de flotación negativa
  • Gestión del Valor Ganado — CPI, SPI, EAC, TCPI, curvas S y rendimiento por período desde XER o P6 en vivo
  • Utilización de recursos — histograma, informe de nivelación, detección de sobreasignación en todas las asignaciones
  • Comparación de líneas base y diff de cronogramas — compara dos instantáneas XER o XER vs proyecto P6 en vivo
  • Mutación segura por defecto — las herramientas de escritura están deshabilitadas hasta que establezcas P6MCP_ENABLE_MUTATION=true; todas las mutaciones requieren confirm=True
  • Tres transportes — stdio para clientes de escritorio, HTTP Streamable y SSE para despliegues remotos/Docker
  • Funciona con todos los clientes MCP principales — Claude Desktop, Cursor, Windsurf, VS Code, Zed, Continue, OpenAI Agents SDK

🚀 Instalación y Configuración

¿Nuevo en MCP? Sigue la guía paso a paso para tu plataforma a continuación. Toda la configuración toma menos de 5 minutos.

Requisitos previos

P6-MCP usa uv para ejecutarse — maneja todo automáticamente sin necesidad de gestionar un entorno Python separado.

Instala uv primero (si no lo tienes):

# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# macOS with Homebrew
brew install uv

# Windows (PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

Una vez que uv esté instalado, puedes ejecutar P6-MCP directamente sin ningún paso de instalación adicional:

uvx p6-mcp

Ejecutar uvx p6-mcp sin subcomando imprimirá la ayuda de uso — eso significa que está funcionando correctamente. Consulta Uso de CLI para los comandos disponibles.


Opción A: Claude Desktop (Recomendado para la mayoría de usuarios)

Paso 1 — Encuentra o crea tu archivo de configuración

PlataformaUbicación del archivo de configuración
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json

En macOS, ábrelo directamente desde Terminal:

open -e ~/Library/Application\ Support/Claude/claude_desktop_config.json

Si el archivo no existe aún:

# macOS
mkdir -p ~/Library/Application\ Support/Claude
touch ~/Library/Application\ Support/Claude/claude_desktop_config.json
open -e ~/Library/Application\ Support/Claude/claude_desktop_config.json

Paso 2 — Agrega el servidor P6-MCP

Agrega el bloque mcpServers a tu configuración. Si el archivo ya tiene otros servidores, solo agrega la entrada "p6-mcp" dentro del objeto "mcpServers" existente.

{
  "mcpServers": {
    "p6-mcp": {
      "command": "uvx",
      "args": ["p6-mcp", "serve", "--transport", "stdio"],
      "env": {
        "P6MCP_WORKSPACE_DIRS": "/path/to/your/xer/files"
      }
    }
  }
}

Importante: Establece P6MCP_WORKSPACE_DIRS a la carpeta que contiene tus archivos .xer, no al archivo en sí. ¿No estás seguro de dónde están tus archivos XER? Ejecuta esto en Terminal para encontrarlos:

find ~ -name "*.xer" 2>/dev/null

Paso 3 — Reinicia Claude Desktop

Cierra y vuelve a abrir Claude Desktop por completo. Las herramientas de P6-MCP se cargarán automáticamente — no se necesitan comandos de Terminal.

Paso 4 — Verifica que funciona

En un nuevo chat de Claude, prueba:

"Lista mis archivos XER"

o arrastra un archivo .xer al chat y pregunta:

"Dame un resumen del proyecto para este cronograma"


Opción B: Cursor / Windsurf / VS Code

{
  "mcp": {
    "servers": {
      "p6-mcp": {
        "command": "uvx",
        "args": ["p6-mcp", "serve", "--transport", "stdio"],
        "env": { "P6MCP_WORKSPACE_DIRS": "/path/to/your/xer/files" }
      }
    }
  }
}

Opción C: Docker (despliegues remotos/servidor)

docker run -p 8000:8000 -v /path/to/xer:/data ghcr.io/shamshirialireza/p6-mcp

Opción D: pip (si prefieres una instalación tradicional)

pip install p6-mcp

# With optional extras (Excel export, charts, HTTP transport)
pip install "p6-mcp[excel,charts,http]"

🖥️ Uso de CLI

Después de instalar, también puedes usar P6-MCP directamente desde la línea de comandos — sin necesidad de un cliente de IA:

p6-mcp inspect schedule.xer       # table inventory and project list
p6-mcp dcma schedule.xer          # DCMA 14-point report
p6-mcp diff old.xer new.xer       # compare two schedules
p6-mcp validate schedule.xer      # structural validation
p6-mcp evm schedule.xer           # earned value summary
p6-mcp export schedule.xer --format xlsx --output report.xlsx

Ejecutar p6-mcp sin subcomando muestra el mensaje de ayuda — esto es esperado y significa que la herramienta está instalada correctamente.


⚙️ Configuración

Toda la configuración se realiza mediante variables de entorno, ya sea en el archivo de configuración de tu cliente MCP o en un archivo .env (consulta .env.example para una plantilla completa).

VariablePredeterminadoDescripción
P6MCP_WORKSPACE_DIRSDirectorios separados por dos puntos que contienen archivos XER. Requerido para el modo XER.
P6MCP_OUTPUT_DIR/tmp/p6mcp_outputDónde se escriben las exportaciones e informes
P6MCP_ENABLE_MUTATIONfalseEstablece a true para habilitar herramientas de escritura
P6MCP_AUTH_TOKENToken Bearer para transporte HTTP
P6MCP_CACHE_SIZE10Número de cronogramas a mantener en memoria
P6MCP_LOG_JSONfalseEmitir registros JSON estructurados

Consulta .env.example para una plantilla completa que incluye la configuración de conexión P6 EPPM.


📊 Grupos de Herramientas

GrupoHerramientas
Archivo y Espacio de Trabajolist_xer_files, open_schedule, validate_xer, get_file_header, get_table_inventory, get_raw_table, clear_cache
Proyectos y EPSget_projects, get_project_detail, get_project_codes, get_schedule_options, get_data_date
WBSget_wbs, get_wbs_detail, get_wbs_rollup, get_wbs_budgets, get_wbs_notes, get_wbs_steps
Actividadesget_activities, search_activities, get_activity_detail, get_milestones, get_constraints, get_udfs, get_expenses
Relacionesget_relationships, get_predecessors, get_successors, get_driving_path, analyze_logic_health
Ruta Críticaget_critical_path, get_near_critical, get_float_paths, get_negative_float, get_float_distribution, recompute_cpm
Calidad del Cronogramarun_dcma_assessment, check_schedule_quality, get_schedule_health_score, get_invalid_dates, get_out_of_sequence
Progresoget_progress_summary, get_behind_schedule_activities, get_lookahead, get_activity_variances
Recursos y Rolesget_resources, get_roles, get_resource_assignments, analyze_resource_utilization, get_resource_histogram
Costo y EVMget_cost_summary, get_cash_flow, get_earned_value, get_earned_value_curve, get_past_period_actuals
Calendariosget_calendars, get_calendar_detail, calendar_working_days_between, is_working_day, compare_calendars
Líneas Baseget_baselines, compare_to_baseline, diff_schedules, get_schedule_trend
Exportaciónexport_data, export_workbook, export_gantt_mermaid, export_network_dot, export_ics_milestones
Mutaciónupdate_activity, add/remove_relationship, add/delete_activity, assign_resource, write_xer (opt-in)
P6 EPPM en Vivop6_list_connections, p6_open_project, p6_run_schedule_job, p6_apply_actuals, p6_create_baseline, +14 más
Metalist_capabilities, explain_field, get_enum_values

🔌 Soporte de Backend

CapacidadArchivos XERP6 EPPM en Vivo
Leer datos del cronograma
Ruta crítica y flotación
Evaluación DCMA de 14 puntos
Valor ganado y costo
Utilización de recursos
Comparación de líneas base
Exportación (xlsx, csv, Gantt)
Escritura / mutación
Trabajos de cronograma y nivelación
Aplicar reales
Almacenar rendimiento por período

🔒 Seguridad

  • El acceso a archivos XER está restringido a P6MCP_WORKSPACE_DIRS — el traversal de rutas está bloqueado
  • La mutación está deshabilitada por defecto; requiere P6MCP_ENABLE_MUTATION=true más confirm=True por llamada
  • El transporte HTTP admite autenticación con token bearer mediante P6MCP_AUTH_TOKEN
  • Las credenciales de P6 EPPM nunca se registran

🛠️ Solución de Problemas

p6-mcp: error: the following arguments are required: command Esto es esperado — significa que P6-MCP está instalado y funcionando. Solo necesitas proporcionar un subcomando como inspect, dcma o serve. Consulta Uso de CLI.

Las herramientas no aparecen en Claude Desktop Asegúrate de haber cerrado y reabierto Claude Desktop por completo después de editar la configuración. También verifica que tu JSON sea válido (sin comas finales) y que P6MCP_WORKSPACE_DIRS apunte a una carpeta existente.

¿No encuentras tus archivos XER? Ejecuta esto en Terminal para localizarlos:

find ~ -name "*.xer" 2>/dev/null

Usando P6-MCP en claude.ai (navegador) La interfaz de claude.ai difiere la carga de herramientas. Si ves un error como has not been loaded yet, esto es normal — las herramientas de P6-MCP se cargan bajo demanda en ese entorno. En Claude Desktop, las herramientas se cargan automáticamente sin pasos adicionales.


📄 Licencia

MIT © Alireza Shamshiri