justinmclean

Apache Health MCP

Community justinmclean
Updated

MCP server for the Apache Incubator health reports: podling commit activity, community signals, bus factor, and multi-window trend analysis.

Apache Health MCP

This repo contains a small MCP server for querying the Apache Incubator health reports from tools/health/reports.

It parses the Markdown report format used by Apache's health tooling and exposes MCP tools for:

  • listing available podling reports
  • searching podling names
  • getting a parsed summary for one podling
  • returning the raw Markdown report
  • returning metrics for one specific window
  • comparing one podling across two or three windows
  • listing supported metrics and windows
  • ranking podlings by a metric within a window like 3m, 6m, or 12m

Expected input

Point the server at a local directory containing Markdown files like:

reports/
  Amoro.md
  Iggy.md
  ...

The parser is designed around the current Apache report structure, especially the ## Window Details section.

Install

python -m venv .venv
source .venv/bin/activate
pip install -e .

For local development:

make install-dev

Run

apache-health-mcp --reports-dir /path/to/incubator/tools/health/reports

Or launch the stdio server directly, the same way PodlingsMCP is structured:

python3 server.py

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json and add:

{
  "mcpServers": {
    "apache-health": {
      "command": "python3",
      "args": [
        "/Users/yourname/HealthMCP/server.py",
        "--reports-dir",
        "/path/to/incubator/tools/health/reports"
      ]
    }
  }
}

Then restart Claude Desktop. Use absolute paths, and if needed point command at your venv Python instead of plain python3.

MCP tools

health_overviewReturns the reports directory, report count, podling list, and latest generated date.

list_podlingsReturns the podling names available in the reports directory.

search_podlingsSearches podling names by case-insensitive substring with an optional result limit.

get_report_summaryReturns parsed window metrics for a single podling.

get_report_markdownReturns the raw Markdown for a single podling report.

get_window_metricsReturns metrics for one podling and one window such as 3m, 6m, 12m, or to-date, including normalized trend words like up, down, and flat under trends.

compare_windowsReturns side-by-side metrics for one podling across two or three windows, including normalized trend words under each window's trends.

query_metric_rankingsRanks podlings by a parsed metric such as commits, prs_merged, dev_messages, bus50, or median_merge_days.

list_metricsReturns the supported metric names and available windows for querying.

Development

Common tasks are available through make:

make format
make lint
make typecheck
make test
make coverage
make check

Notes

  • This server queries already-generated report files. It does not run Apache's upstream collection script.
  • The workspace here did not include a local reports/ directory, so the server is built to accept any local clone or copied snapshot of Apache's reports directory.

MCP Server ยท Populars

MCP Server ยท New

    TalkToHumans

    LinkedIn MCP Server

    Safe LinkedIn MCP server for Claude, ChatGPT, Cursor & Codex. Your Agents read LinkedIn DMs, search your network, enrich profiles and draft messages you send.

    Community TalkToHumans
    bex-co

    Beancount.io Backend

    ๐Ÿ’ฐ Double-entry bookkeeping made easy โ€” plain-text accounting for humans and AI agents. Polished iOS & Android app built with React Native + Expo.

    Community bex-co
    nkapila6

    mcpsurfr

    Local web search MCP server, formerly mcp-local-rag. Multi-engine deep research with on-device re-ranking. โœจ no API keys โœจ

    Community nkapila6
    convex

    mcp.ts

    The open-source reactive database for app developers

    Community convex
    convex

    convex-backend

    The open-source reactive database for app developers

    Community convex