justinmclean

IPMC MCP

Community justinmclean
Updated

IPMC MCP

A small dependency-free MCP server for Apache Incubator PMC oversight views.

It composes:

  • podling lifecycle data from PodlingsMCP
  • community and report signals from apache-health

It exposes opinionated Incubator-level tools to help the IPMC:

  • identify podlings needing attention
  • assess graduation readiness
  • generate podling briefings
  • flag mentoring intervention needs
  • summarize community-health patterns across podlings

Requirements

  • Python 3.12+

Run

python3 server.py

The server uses stdio, so it is intended to be launched by an MCP client.

Install

python3 -m pip install -e .

For development tools:

python3 -m pip install -e .[dev]

Example MCP client config

{
  "mcpServers": {
    "ipmc": {
      "command": "python3",
      "args": [
        "/Users/justinmclean/IncubatorMCP/server.py",
        "--podlings-mcp-repo",
        "/Users/justinmclean/PodlingsMCP",
        "--health-mcp-repo",
        "/Users/justinmclean/HealthMCP",
        "--health-source",
        "/Users/justinmclean/incubator/tools/health/reports"
      ]
    }
  }
}

The default runtime assumes the sibling source MCP repositories and health reports are available at:

  • /Users/justinmclean/PodlingsMCP
  • /Users/justinmclean/HealthMCP
  • reports, unless --health-source is set

Tool calls can also override the source data paths with podlings_source and health_source.

Configure source MCP locations and the health reports directory with startup arguments:

  • --podlings-mcp-repo: path to the PodlingsMCP checkout
  • --health-mcp-repo: path to the HealthMCP checkout
  • --health-source: default apache-health reports directory

Test

python3 -m unittest discover -s tests -v

Coverage

python3 -m coverage run -m unittest discover -s tests
python3 -m coverage report -m

Coverage is scoped to the local ipmc package so imported sibling MCPs do not dilute the report.

Architecture

See docs/architecture.md for the module layout, runtime flow, and testing structure.

Tools

ipmc_watchlist

Return podlings that most need IPMC attention based on combined lifecycle and health signals.

Arguments:

  • podlings_source: optional URL or local file path for podlings.xml
  • health_source: optional reports directory for apache-health markdown reports
  • as_of_date: optional YYYY-MM-DD date for duration-sensitive views
  • limit: optional max number of results
  • severity_at_least: optional minimum severity filter
  • include_reasons: optional reason filter list

graduation_readiness

Assess whether a podling appears ready, near ready, or not yet ready for graduation.

Arguments:

  • podling: required podling name
  • podlings_source
  • health_source
  • as_of_date
  • include_evidence: optional boolean, defaults to true
  • strict_mode: optional boolean

podling_brief

Return an IPMC-oriented briefing for one podling.

Arguments:

  • podling: required podling name
  • podlings_source
  • health_source
  • as_of_date
  • focus: optional area list
  • brief_format: optional summary or detailed

mentoring_attention_needed

Return podlings where mentoring intervention appears necessary.

Arguments:

  • podlings_source
  • health_source
  • as_of_date
  • limit: optional max number of results
  • urgency_at_least: optional minimum urgency filter
  • include_causes: optional cause filter list

community_health_summary

Return an IPMC-level summary of community-health patterns across podlings.

Arguments:

  • podlings_source
  • health_source
  • as_of_date
  • scope: optional all_podlings, active_podlings, or reporting_podlings
  • group_by: optional none, risk_band, mentor_load, or age_band
  • include_examples: optional boolean

Defaults

  • When omitted, podlings_source defaults to the ASF podlings.xml URL.
  • When omitted, health_source uses --health-source, or reports if that startup argument is unset.
  • Oversight views focus on current podlings by default.
  • Health analysis prefers the freshest available window in this order: 3m, 6m, 12m, to-date.

Opinion Model

This server keeps source facts separate from derived opinions. Risk and readiness views are derived from:

  • mentor coverage
  • reporting reliability
  • mentor sign-off signals
  • community activity
  • release visibility
  • incubation duration
  • participation breadth

The resulting outputs are intended to support IPMC judgment, not replace it.

MCP Server · Populars

MCP Server · New