pmo-planner
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@pmo-plannerlist my authorized plans"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Motor PMO Planner
Motor independiente para interactuar con planes de Microsoft Planner (Standard) y Microsoft Dataverse / Project for the Web (Premium).
Estructura del Proyecto
El proyecto está organizado en tres componentes:
Core (
core/): Lógica de negocio, autenticación OAuth2 y aislamiento de datos.CLI (
pmo-planner.py): Interfaz de línea de comandos para uso directo y automatizaciones.Servidor MCP (
server.py): Servidor Model Context Protocol para integración con asistentes de IA.
Related MCP server: Microsoft Planner MCP Server
Seguridad y Aislamiento por Grupo
El motor requiere configurar la siguiente variable en el archivo .env en la raíz del proyecto:
ALLOWED_GROUP_ID=00000000-0000-0000-0000-000000000000Todas las consultas (CLI y MCP) se validan contra este identificador. Los accesos a grupos distintos son bloqueados localmente.
Requisitos e Instalación
Instalar las dependencias:
pip install -r requirements.txtCrear y configurar el archivo de variables de entorno:
cp .env.template .envCompletar las variables correspondientes a Azure AD / Entra ID (Tenant ID, Client ID y Client Secret).
Uso de la CLI
Consultar Planes
Listar planes en formato tabla:
python pmo-planner.py --planesExportar planes a un archivo JSON en la raíz:
python pmo-planner.py --planes --outExportar planes a una ruta específica:
python pmo-planner.py --planes --out /ruta/al/archivo.jsonVer desglose de tareas (WBS) de un plan específico:
python pmo-planner.py --detalle <PLAN_ID>Exportar todos los planes con sus tareas en formato JSON:
python pmo-planner.py --planes --detalle --formato json
Otras Consultas
Listar Jefes de Proyecto (PM):
python pmo-planner.py --pmListar tareas vencidas y pendientes:
python pmo-planner.py --atrasadas
Integración MCP
Claude Desktop
Añadir la configuración en claude_desktop_config.json:
{
"mcpServers": {
"pmo-planner": {
"command": "python3",
"args": [
"/absolute/path/to/pmo-planner/server.py"
],
"env": {
"PYTHONPATH": "/absolute/path/to/pmo-planner"
}
}
}
}OpenCode
Añadir al bloque "mcp" de ~/.config/opencode/opencode.json:
"pmo-planner": {
"type": "local",
"command": [
"python3",
"/absolute/path/to/pmo-planner/server.py"
],
"cwd": "/absolute/path/to/pmo-planner",
"enabled": true
}Herramientas Disponibles
list_authorized_plans: Lista los planes autorizados del grupo, enriquecidos ahora conestado_base(No Iniciado,En Curso,Finalizado) yestado_nativo(obtenido directamente a través destatecode/statuscodedesde Dataverse para proyectos Premium, o "Active" para Standard).get_plan_detailed_wbs: Obtiene tareas, dependencias, avances y personas asignadas de un plan. En planes Premium resuelve asignados via Dataverse (msdyn_resourceassignments→bookableresources). En planes Standard incluyecompleted_datepara medir tiempos de completación.get_plan_health_metrics: Retorna los indicadores clave de salud de un plan (Avance Real Ponderado, Avance Esperado, Delta y Semáforo).get_overdue_tasks: Escanea tareas vencidas.get_workload_summary: Calcula la carga de trabajo de tareas activas por persona asignada.get_portfolio_macro_roadmap: Analiza el portafolio unificado cruzando iniciativas con el catálogo y configuración corporativa para generar el roadmap macro, densidad de cierres y colisiones.
Changelog
2026-08-12
feat: Resolución de asignados en planes Premium. Nuevo método
_resolve_premium_assignees()que consultamsdyn_resourceassignmentsybookableresourcesen Dataverse para obtener los nombres de las personas asignadas a cada tarea. Antes siempre retornaba un array vacío.feat: Campo
completed_dateen tareas de planes Standard (Graph). ExtraecompletedDateTimepara permitir medir tiempos de completación por persona.impacto:
get_workload_summaryyget_overdue_tasksahora reportan correctamente personas asignadas en planes Premium sin cambios adicionales.
2026-07-22
fix: Usa
msdyn_taskearlieststartcomo fecha de inicio real de proyectos Premium, con fallback amsdyn_scheduledstart. Corrige la visualización en 24 de 35 proyectos que mostraban fecha de inicio incorrecta (2025-10-23 — fecha default del tenant).fix: Resolución de nombres de proyecto con
oren vez de default parameter para manejar strings vacíos en el catálogo.docs: Se agregan las herramientas
get_plan_health_metricsyget_portfolio_macro_roadmapa la documentación de herramientas MCP disponibles.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server for generating rough-draft project plans from natural-language prompts.
Read and write Mission Control state via MCP — projects, tasks, subtasks, templates, status updates.
- TimequipOAuthcom.timequip
Manage Timequip projects, tasks, comments, members, and dashboards through MCP.
Agile project management over MCP: boards, epics, roadmap, retros, whiteboards, wiki, metrics
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAn MCP server that gives LLMs read-only access to Microsoft Project Online (Project for the Web) via the Microsoft Graph API.9 npmMIT
- AlicenseNot gradedqualityBmaintenanceAn unofficial MCP server that connects AI assistants to Microsoft Planner, enabling natural language task management such as creating tasks, organizing plans, and managing buckets.11MIT
- AlicenseNot gradedqualityBmaintenanceA self-hosted MCP server that exposes Microsoft Planner Premium structural writes via Dataverse PSS V2 APIs as MCP tools, running in the signed-in user's delegated context.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to create and manage Microsoft Planner tasks, including comments, subtasks, and bucket operations, via a Node.js MCP server wrapping a Python CLI.5 npm3MIT