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
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 requierenconfirm=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-mcpsin 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
| Plataforma | Ubicació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_DIRSa 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-mcpsin 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).
| Variable | Predeterminado | Descripción |
|---|---|---|
P6MCP_WORKSPACE_DIRS | — | Directorios separados por dos puntos que contienen archivos XER. Requerido para el modo XER. |
P6MCP_OUTPUT_DIR | /tmp/p6mcp_output | Dónde se escriben las exportaciones e informes |
P6MCP_ENABLE_MUTATION | false | Establece a true para habilitar herramientas de escritura |
P6MCP_AUTH_TOKEN | — | Token Bearer para transporte HTTP |
P6MCP_CACHE_SIZE | 10 | Número de cronogramas a mantener en memoria |
P6MCP_LOG_JSON | false | Emitir registros JSON estructurados |
Consulta .env.example para una plantilla completa que incluye la configuración de conexión P6 EPPM.
📊 Grupos de Herramientas
| Grupo | Herramientas |
|---|---|
| Archivo y Espacio de Trabajo | list_xer_files, open_schedule, validate_xer, get_file_header, get_table_inventory, get_raw_table, clear_cache |
| Proyectos y EPS | get_projects, get_project_detail, get_project_codes, get_schedule_options, get_data_date |
| WBS | get_wbs, get_wbs_detail, get_wbs_rollup, get_wbs_budgets, get_wbs_notes, get_wbs_steps |
| Actividades | get_activities, search_activities, get_activity_detail, get_milestones, get_constraints, get_udfs, get_expenses |
| Relaciones | get_relationships, get_predecessors, get_successors, get_driving_path, analyze_logic_health |
| Ruta Crítica | get_critical_path, get_near_critical, get_float_paths, get_negative_float, get_float_distribution, recompute_cpm |
| Calidad del Cronograma | run_dcma_assessment, check_schedule_quality, get_schedule_health_score, get_invalid_dates, get_out_of_sequence |
| Progreso | get_progress_summary, get_behind_schedule_activities, get_lookahead, get_activity_variances |
| Recursos y Roles | get_resources, get_roles, get_resource_assignments, analyze_resource_utilization, get_resource_histogram |
| Costo y EVM | get_cost_summary, get_cash_flow, get_earned_value, get_earned_value_curve, get_past_period_actuals |
| Calendarios | get_calendars, get_calendar_detail, calendar_working_days_between, is_working_day, compare_calendars |
| Líneas Base | get_baselines, compare_to_baseline, diff_schedules, get_schedule_trend |
| Exportación | export_data, export_workbook, export_gantt_mermaid, export_network_dot, export_ics_milestones |
| Mutación | update_activity, add/remove_relationship, add/delete_activity, assign_resource, write_xer (opt-in) |
| P6 EPPM en Vivo | p6_list_connections, p6_open_project, p6_run_schedule_job, p6_apply_actuals, p6_create_baseline, +14 más |
| Meta | list_capabilities, explain_field, get_enum_values |
🔌 Soporte de Backend
| Capacidad | Archivos XER | P6 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=truemásconfirm=Truepor 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