PM Governance MCP Server
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., "@PM Governance MCP ServerShow me all open risks for project Alpha"
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.
PM Governance MCP Server v3
A complete Model Context Protocol (MCP) server implementation for AI-assisted project management governance across 8 domains: Projects, Governance (RAID), Scope (Goals→KPIs), People (Teams & Availability), Time (Milestones & Demand Planning), Cost (Procurement & Contracts), Meetings, and Administration.
Architecture
MCP Layer (51 tools)
↓
Services Layer (10 services + dashboard)
↓
Repository Layer (8 typed protocols + base class)
↓
Cache Layer (memory, Redis, tiered)
↓
HTTP Client Layer (httpx with retries, auth, error mapping)
↓
REST Backend (JSON Server-compatible API)Related MCP server: Lazy LLMs Project Management MCP Server
Quick Start
Install dependencies:
pip install -e .Configure environment:
cp .env.example .env # Edit .env with your API credentialsRun the server:
# Stdio transport (default) python main.py # Or SSE transport (for web clients) python main.py --transport sse --port 8080
Key Features
51 MCP Tools across 8 domains (project, governance, scope, people, time, cost, meeting, admin, dashboard)
Typed Repository Protocols — inject test mocks without subclassing
Multi-tier Caching — memory L1 + Redis L2 with TTL per data type
Input Guardrails — prompt injection detection, validation bounds
Structured Logging — JSON output via structlog + stdlib
Telemetry Integration — W&B Weave + OpenTelemetry (optional, no-op if disabled)
Full DI Container — Settings → ApiClient → Repos → Services → Tools
MCP Resources — 4 markdown guides embedded in context (API overview, portfolio, governance, scope)
MCP Prompts — 4 reusable prompt templates (project report, executive briefing, RAID escalation, scope progress)
Domain Model
Projects
RAG status (overall, schedule, budget, risk)
Budget baseline / actual / forecast
Ownership and methodology
Governance (RAID + Change)
Risks — probability, impact, mitigation, escalation
Issues — severity, resolution, escalation
Dependencies — incoming/outgoing/external
Decisions — meeting log, impact
Actions — score-based (probability × impact), category, approval gates
Change Requests — workflow (Submitted → Approved → Implemented)
Scope (Goal Hierarchy)
Goals — strategic, with status
Objectives — measurable outcomes per goal
Benefits — business value per objective
KPIs — baseline/target/current per benefit
Stories — Functional or Technical, linked to objectives
Tasks — estimated hours per story/scope item
Scope Items — deliverables with status and priority
People (Teams & Availability)
Teams — named groups with metadata
Members — hourly rate, weekly availability, role
Roles — catalogue entries (PM, BA, Developer, etc.)
Absences — vacation, sick, training, personal with approval status
Time (Schedule & Effort)
Milestones — with status (On Track, At Risk, Delayed, Completed)
Demand Planning — hours grid (taskId → {memberKey: hours})
Timesheets — actual hours + ETC grid
Cost
Procurement — invoices, vendor spend, cost categories
Contracts — vendor agreements, lifecycle (Draft → Active → Expired)
Meetings
Meetings — steering committee, weekly status, stakeholder review
Reports — published governance documents
Lessons Learned — approved post-project retrospectives
Admin
Roles — platform and project roles
Privileges — granular permission catalogue
Audit Logs — immutable operation history
Testing
Run the test suite:
pytest tests/ -vKey fixtures:
test_settings— test-mode configuration (null cache, fake backend)mock_api_client— httpx client for testingnull_cache— deterministic NullCacheBackend
Environment Variables
See .env.example for all options. Key variables:
Variable | Default | Purpose |
|
| PM Governance REST backend |
| (empty) | Bearer token + X-Api-Key header |
|
| Cache strategy (memory / redis / tiered) |
|
| Logging verbosity |
|
| Console renderer (true) vs JSON (false) |
| (empty) | W&B Weave tracing (optional) |
|
| OpenTelemetry tracing (optional) |
File Structure
pm-governance-mcp/
├── main.py # Entry point
├── pyproject.toml # Package metadata
├── .env.example # Environment template
├── README.md # This file
├── src/pm_mcp/
│ ├── __init__.py
│ ├── container.py # DI container
│ ├── config/
│ │ └── settings.py # Pydantic-settings
│ ├── client/
│ │ └── api_client.py # httpx with retry
│ ├── cache/
│ │ └── ttl_cache.py # Memory / Redis / Tiered
│ ├── exceptions/
│ │ ├── base.py
│ │ ├── infrastructure.py
│ │ ├── domain.py
│ │ ├── validation.py
│ │ └── mcp.py
│ ├── guardrails/
│ │ └── input_guard.py # Injection detection
│ ├── models/
│ │ ├── common.py
│ │ ├── projects.py
│ │ ├── governance.py
│ │ ├── scope.py
│ │ ├── people.py
│ │ ├── time_.py
│ │ ├── cost.py
│ │ ├── meetings.py
│ │ └── admin.py
│ ├── repositories/
│ │ ├── protocols.py # 8 typed Protocols
│ │ ├── base.py
│ │ ├── project_repo.py
│ │ ├── governance_repo.py
│ │ ├── scope_repo.py
│ │ ├── people_repo.py
│ │ ├── time_repo.py
│ │ ├── cost_repo.py
│ │ ├── meeting_repo.py
│ │ └── admin_repo.py
│ ├── services/
│ │ ├── project_service.py
│ │ ├── governance_service.py
│ │ ├── scope_service.py
│ │ ├── people_service.py
│ │ ├── time_service.py
│ │ ├── cost_service.py
│ │ ├── meeting_service.py
│ │ ├── admin_service.py
│ │ └── dashboard_service.py
│ ├── tools/
│ │ ├── base_tool.py # BaseTool ABC
│ │ ├── project_tool.py
│ │ ├── governance_tool.py
│ │ ├── scope_tool.py
│ │ ├── people_tool.py
│ │ ├── time_tool.py
│ │ ├── cost_tool.py
│ │ ├── meeting_tool.py
│ │ ├── admin_tool.py
│ │ └── dashboard_tool.py
│ ├── registry/
│ │ ├── tool_registry.py
│ │ ├── resource_registry.py
│ │ └── prompt_registry.py
│ ├── server/
│ │ ├── app.py # FastMCP app + run()
│ │ ├── lifespan.py # Startup/shutdown
│ │ ├── resources.py # MCP resources
│ │ ├── prompts.py # MCP prompts
│ │ └── content/
│ │ ├── api_overview.md
│ │ ├── portfolio_guide.md
│ │ ├── governance_guide.md
│ │ └── scope_guide.md
│ └── telemetry/
│ ├── logging_.py
│ ├── weave_.py
│ └── otel.py
└── tests/
├── conftest.py
├── unit/
│ ├── tools/
│ ├── services/
│ ├── repositories/
│ ├── client/
│ └── guardrails/
├── integration/
└── contract/Deployment
Docker
FROM python:3.12-slim
WORKDIR /app
COPY . .
RUN pip install -e .
CMD ["python", "main.py"]As MCP Server in Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"pm-governance": {
"command": "python",
"args": ["/path/to/pm-governance-mcp/main.py"],
"env": {
"API_BASE_URL": "https://pm-api.example.com",
"API_KEY": "sk-xxxx"
}
}
}
}License
MIT
Support
For issues or questions, refer to ARCHITECTURE.md and openapi.yaml in the repository root.
This server cannot be deployed
Maintenance
Related MCP Connectors
10,065 source-verified compliance nodes, 39 pillars, 25 MCP tools (EU AI Act, GDPR, NIST, MITRE).
- comunaOAuthwork.comuna
Free-forever team project management where your AI is a real board member, via MCP.
Work management where AI agents are first-class members: tasks, projects, memory over hosted MCP
AI-powered project controls tools for Primavera P6 and Primavera Unifier.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceAI-native project management with persistent memory for coding agents. 17 MCP tools for features, stories, sprints, architecture decisions, knowledge base, and session tracking.3MIT
- FlicenseNot gradedqualityDmaintenanceEnables LLM agents to manage projects, track issues, log work, and integrate with Git. Provides 23 MCP tools for full project management capabilities.16-
- AlicenseNot gradedqualityDmaintenanceEnables management of PMO entities such as actions, risks, issues, projects, deliverables, decisions, KPIs, and objectives through natural language from any MCP-compatible agent.80 npmServer Side Public , v 1
- AlicenseNot gradedqualityBmaintenanceAI-powered project governance engine for collaborative development with MCP server and CLI, file as source of truth, zero model dependency.62 npm16MIT