PM Governance MCP Server
Click on "Install 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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SaiSharan2005/MCP-Office'
If you have feedback or need assistance with the MCP directory API, please join our Discord server