npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@pbhamri/quartermaster-mcp

v0.6.1

Published

MCP server that seeds any repo with a customizable PM kit. Any PM, any product — connect YOUR GitHub, ADO, Kusto, IcM. 19 tools: scaffolding, repo-read, onboarding, custom profile creation, self-agent auto-reply. Never ships personal data — profiles are t

Readme

@pbhamri/quartermaster-mcp

MCP server that seeds any repo with the Quartermaster PM kit + provides read-only repo access + first-run onboarding + Teams self-agent auto-reply surface. No folder dependency. No installer script. Callable from any Copilot / Claude / Cursor session against any cwd.

Version: 0.6.0 | Transport: stdio | Tools: 19 | Profiles: 6 (bundled) + custom

Built in response to PM Architect input (2026-05-29):

"It would be great if this can be an MCP server that seeds any repo. Then we are not tied to a folder or repo."


What it does

Exposes 19 tools over MCP stdio, organised by workflow:

Seeding & Scaffolding (v0.1.0+)

| Tool | Purpose | |---|---| | qm_list_profiles | List the 6 Purview product profiles (DLM, Billing, CC, Records, eDiscovery, Insider Risk) | | qm_seed_repo | Seed any repo with AGENTS.md, copilot-instructions.md, .quartermaster/profile.json, /npf + /cxe prompts, command-center seed. Idempotent. Supports dryRun: true. | | qm_audit_repo | Score any repo /6 against the Quartermaster readiness checklist | | qm_install_prompts | Install /npf + /cxe to ~/.github/prompts | | qm_apply_profile | Persist a profile to ~/.copilot/paved-path/profile.json | | qm_telemetry | Read recent paved-path telemetry events (type filter, limit) | | qm_emit_pr | Seed + open a labeled PR via gh CLI in one call |

Read-Only Repo Access (v0.3.0+)

| Tool | Purpose | |---|---| | repo_overview | Server metadata: repo_root, framework_count, exclusion rules | | repo_list_dir | List files/folders under repo_root (denies .git, node_modules, secrets) | | repo_read_file | Read file content (200 KB cap; secrets/eml/browser sessions blocked) | | repo_search | Case-insensitive regex search across .md/.js/.ts/.json/.yml/.ps1/.html/.txt | | repo_recent_sessions | Last N entries from knowledge/sessions.jsonl (cross-model memory) |

Onboarding & Customization (v0.4.0+)

| Tool | Purpose | |---|---| | qm_welcome | First-run welcome + 3-step guide for new peers | | qm_personalize | Interactive Q&A → writes a personalised connect-db.json. Never inherits package author's data. | | qm_skills_for_pm | Curated daily-use catalog: Monday self-assess, midweek PRDs, Friday strategy, sharing | | qm_init_profile | Create a custom product profile from scratch — any product, any org. Generates a reusable .json profile with ADO/Kusto/IcM/GitHub connections. |

Self-Agent / Teams Auto-Reply (v0.5.0+)

| Tool | Purpose | |---|---| | qm_autoreply_compose | Compose a draft Teams auto-reply using second-brain + relationship classifier + failure-mode gates | | qm_autoreply_set_presence | Set mock presence state (Available/Away/DND/OOO) — P0 skeleton, real Graph swap is P1 | | qm_autoreply_failure_modes | List named embarrassment-avoidance rules (severity, action, audience) | | qm_autoreply_drafts | List recent auto-reply drafts under ~/.copilot/autoreply/drafts/ |


Install

From npm (recommended for peers)

npm install -g @pbhamri/quartermaster-mcp

From source (contributor)

git clone https://github.com/pbhamri_microsoft/Quartermaster.git
cd Quartermaster/source/quartermaster-mcp
npm install

Register with your MCP client

Copilot CLI / VS Code — add to ~/.copilot/mcp.json or .vscode/mcp.json:

{
  "servers": {
    "quartermaster": {
      "type": "stdio",
      "command": "npx",
      "args": ["@pbhamri/quartermaster-mcp"]
    }
  }
}

Claude Desktop — add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "quartermaster": {
      "command": "npx",
      "args": ["@pbhamri/quartermaster-mcp"]
    }
  }
}

From source (dev):

{
  "servers": {
    "quartermaster": {
      "type": "stdio",
      "command": "node",
      "args": ["<path-to-clone>/source/quartermaster-mcp/bin/server.js"]
    }
  }
}

Reload your MCP client. Then: "use quartermaster-mcp to seed this repo with purview-dlm".


Usage examples

# Onboarding (first time)
"Run qm_welcome."
"Personalize my Quartermaster setup."

# Create YOUR product profile (not Purview? no problem)
"Create a new profile for my product area."
"I work on Microsoft Intune — set up a Quartermaster profile."

# Seeding
"List Quartermaster profiles."
"Dry-run seed C:\repos\new-repo with purview-cc."
"Seed this repo with purview-ediscovery."
"Seed this repo and open a draft PR."

# Auditing
"Audit C:\repos\billing-team-repo against Quartermaster readiness."

# Repo exploration
"Show me the repo overview."
"Search for 'retention policy' in this repo."
"Read competitive-intel-agent/agent.js."

# Self-agent
"Compose an auto-reply for this message from my manager."
"Show my failure mode rules."
"List recent auto-reply drafts."

# Telemetry
"Show my last 20 paved-path events."

What gets seeded

In the target repo (all idempotent — existing files are never overwritten):

  • AGENTS.md — repo-specific operating manual
  • .github/copilot-instructions.md — AI assistant conventions + CXE pillars
  • .quartermaster/profile.json — full ADO/Kusto/IcM/directives/KPIs snapshot
  • .quartermaster/command-center-seed.json — KPIs + quick-links for dashboards
  • .github/prompts/npf.prompt.md — NPF self-score (calibrated to IC level)
  • .github/prompts/cxe.prompt.md — EVP Security CXE pillar audit

Profiles (6 bundled)

| Profile ID | Product Area | |---|---| | purview-dlm | Data Lifecycle Management | | purview-billing | Purview Billing | | purview-cc | Communication Compliance | | purview-records | Records Management | | purview-ediscovery | eDiscovery | | purview-insider-risk | Insider Risk Management |

Each profile contains: ADO org/project/area-path, Kusto cluster/database/tables, IcM service, default directives, KPI targets, recommended MCP servers, and quick-links.


Architecture

bin/server.js          ← Single-file MCP server (stdio transport)
resources/
  profiles/            ← 6 product profile JSONs + _schema.json
  prompts/             ← /npf + /cxe prompt templates
  connect-db.template.json  ← Scaffold for qm_personalize
  mcp-servers/         ← Reference MCP configs for peers

Security & Privacy

  • Read-only repo access denies: .git, node_modules, .env, browser sessions, *.eml, *token*, *secret*, *credentials*, *.pem, *.key
  • No credentials in package — author's Connect data, ADO tokens, Outlook sessions, and personal NPF history are never bundled
  • Telemetry is opt-out — set QM_METRICS_OPT_OUT=1 to disable. Events use anonymous machine hash (12-char SHA-256 of platform:arch:cpus:totalmem), never username or hostname
  • Self-agent skeleton lives at ~/.copilot/self-agent/ (outside this package); tools degrade gracefully if absent

Environment Variables

| Variable | Default | Purpose | |---|---|---| | QM_REPO_ROOT | process.cwd() | Override repo root for read-only access | | QM_CONNECT_DB | ~/.quartermaster/connect-db.json | Connect tracker path for qm_personalize | | QM_METRICS_FILE | ~/.copilot/metrics/paved-path-events.jsonl | Telemetry output path | | QM_METRICS_OPT_OUT | (unset) | Set to 1 to disable telemetry | | QM_SELF_AGENT_DIR | ~/.copilot/self-agent | Self-agent skeleton directory |


Why MCP, not a script

| Old (install-wizard.ps1) | New (quartermaster-mcp) | |---|---| | Run from one folder | Callable from any cwd in any agent | | Windows PowerShell only | Any client speaking MCP (Copilot CLI, Claude Desktop, Cursor, VS Code) | | Manual re-run per repo | Agent calls it inline mid-conversation | | Updates require re-share | npm update and peers get the latest | | No auto-reply | v0.5.0 adds second-brain-powered Teams draft surface |


Source of truth

Profiles are bundled in resources/profiles/. The 6 Purview profiles are pre-built. For any other product, use qm_init_profile to create your own — it generates a new .json in the same directory with your ADO/Kusto/IcM connections.

To refresh bundled profiles from an upstream source:

# Only maintainers do this; peers just use qm_init_profile
Copy-Item <source>/profiles/*.json resources/profiles/ -Force
Copy-Item <source>/prompts/*.prompt.md resources/prompts/ -Force

Then bump the version in package.json.


Version History

| Version | Date | What shipped | |---|---|---| | 0.6.0 | 2026-06-18 | qm_init_profile (custom profile creation for any product); stripped all personal data from bundled profiles; customizableFields schema | | 0.5.0 | 2026-06-10 | Self-agent surface: qm_autoreply_compose, set_presence, failure_modes, drafts | | 0.4.0 | 2026-06-05 | Onboarding: qm_welcome, qm_personalize, qm_skills_for_pm | | 0.3.0 | 2026-06-01 | Read-only repo: repo_overview, repo_list_dir, repo_read_file, repo_search, repo_recent_sessions | | 0.2.0 | 2026-05-30 | qm_telemetry, qm_emit_pr | | 0.1.0 | 2026-05-29 | Core 5: list_profiles, seed_repo, audit_repo, install_prompts, apply_profile |


Roadmap (post-v0.5)

  • v0.6 — Real Graph /me/presence integration (replace mock presence)
  • v0.7qm_customer_signal tool (ingest signals directly via MCP, feed to CI agent)
  • v0.8 — Multi-repo seed in one call (batch mode for team onboarding)
  • Publish to Agency Marketplace as a registered MCP server plugin