@pbhamri/quartermaster-mcp 0.7.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -3
- package/bin/server.js +95 -24
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -40,7 +40,7 @@ Exposes **19 tools** over MCP stdio, organised by workflow:
|
|
|
40
40
|
|
|
41
41
|
| Tool | Purpose |
|
|
42
42
|
|---|---|
|
|
43
|
-
| `qm_welcome` | First-run
|
|
43
|
+
| `qm_welcome` | First-run onboarding: a 4-stage guide (1. you + product, 2. skills, 3. connect ADO/GitHub/Kusto, 4. NPF + Connect goals) |
|
|
44
44
|
| `qm_personalize` | Interactive Q&A → writes a personalised `connect-db.json`. Never inherits package author's data. |
|
|
45
45
|
| `qm_skills_for_pm` | Curated daily-use catalog: Monday self-assess, midweek PRDs, Friday strategy, sharing |
|
|
46
46
|
| `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. |
|
|
@@ -122,9 +122,12 @@ Reload your MCP client. Then: *"use quartermaster-mcp to seed this repo with pur
|
|
|
122
122
|
## Usage examples
|
|
123
123
|
|
|
124
124
|
```text
|
|
125
|
-
# Onboarding (first time)
|
|
125
|
+
# Onboarding (first time) — 4 stages, in order
|
|
126
126
|
"Run qm_welcome."
|
|
127
|
-
"
|
|
127
|
+
# 1. Onboard you + product: "Apply the purview-dlm profile." (or "Create a new profile for my product.")
|
|
128
|
+
# 2. See skills in detail: "Run qm_skills_for_pm."
|
|
129
|
+
# 3. Connect data sources: "Help me wire up ADO / GitHub / Kusto." (templates in resources/mcp-servers/)
|
|
130
|
+
# 4. NPF + Connect goals: "Personalize my Quartermaster setup." then "/npf"
|
|
128
131
|
|
|
129
132
|
# Create YOUR product profile (not Purview? no problem)
|
|
130
133
|
"Create a new profile for my product area."
|
package/bin/server.js
CHANGED
|
@@ -317,19 +317,52 @@ function qmWelcome() {
|
|
|
317
317
|
server: "quartermaster-mcp",
|
|
318
318
|
version: PKG.version,
|
|
319
319
|
welcome: "Welcome to Quartermaster MCP — a PM paved-path bundle for Microsoft PMs.",
|
|
320
|
-
what_this_is:
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
"
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
320
|
+
what_this_is: `${TOOLS.length} MCP tools that set up your PM operating model: product profiles, PRD + strategy + roadmap + monitoring skills, data-source connectors (ADO / GitHub / Kusto / IcM), and — last — NPF alignment and Connect goals.`,
|
|
321
|
+
how_to_use_this: "Follow the four stages below IN ORDER. Your AI client runs each tool for you. Start at Stage 1 (who you are + your product). Do NOT start with goals — we deliberately get to NPF + Connect goals at the very end, once your product context and data sources are in place.",
|
|
322
|
+
onboarding_journey: {
|
|
323
|
+
"stage_1_onboard_you_and_your_product": {
|
|
324
|
+
goal: "Establish who you are, your product, and your focus areas — no goals yet.",
|
|
325
|
+
do: [
|
|
326
|
+
`Pick the product profile that fits you from the ${profiles.length} built in (${profiles.map(p => p.id).join(", ")}), then run \`qm_apply_profile\` with that profileId.`,
|
|
327
|
+
"No profile fits your product? Run `qm_init_profile` to create a custom one — it captures your personas, focus areas, KPIs, and directives for ANY product.",
|
|
328
|
+
],
|
|
329
|
+
sets_up: "Your role, product, and focus areas (personas). These are inherited into every PRD, audit, and roadmap artefact later.",
|
|
330
|
+
},
|
|
331
|
+
"stage_2_see_your_skills_in_detail": {
|
|
332
|
+
goal: "Understand what Quartermaster does for you across PRDs, strategy, product roadmap, and monitoring.",
|
|
333
|
+
do: ["Run `qm_skills_for_pm` for the full catalog grouped by capability."],
|
|
334
|
+
skills_at_a_glance: {
|
|
335
|
+
"PRDs & specs": "`qm_seed_repo` scaffolds the IGRM compact PRD format; `/cxe` audits any PRD against the 4 CXE pillars; your profile's KPIs + directives auto-inherit into every PRD.",
|
|
336
|
+
"Strategy & performance": "`/npf` scores leverage x reach x cycle-time calibrated to your IC level; `qm_audit_repo` scores any repo /6 on PM-readiness for fast peer review.",
|
|
337
|
+
"Product roadmap & frameworks": "Profile directives become roadmap commitments; `repo_overview` / `repo_search` / `repo_read_file` pull roadmap artefacts into context with no copy-paste.",
|
|
338
|
+
"Monitoring & telemetry": "`qm_telemetry` reads paved-path adoption events (Reach signal); `repo_recent_sessions` recalls what shipped last week; pair with a connected Kusto MCP for live KPI pulls.",
|
|
339
|
+
},
|
|
340
|
+
},
|
|
341
|
+
"stage_3_connect_your_data_sources": {
|
|
342
|
+
goal: "Wire Quartermaster to YOUR ADO, GitHub, Kusto, and IcM.",
|
|
343
|
+
do: [
|
|
344
|
+
"Connector templates ship at `<package>/resources/mcp-servers/` : `ado.json`, `kusto.json`, `icm.json`, `workiq.json`, `playwright.json`.",
|
|
345
|
+
"Paste each into your MCP client config and fill the `{{PLACEHOLDERS}}` with your own org / project / cluster / service — full key map in `resources/mcp-servers/README.md`.",
|
|
346
|
+
"GitHub / repo read works immediately: run this server from inside your repo and use `repo_overview`, `repo_search`, `repo_read_file` (read-only; secrets denied at the server).",
|
|
347
|
+
],
|
|
348
|
+
credentials_note: "Every credential and connection string stays on YOUR machine. Quartermaster ships only templates with placeholders — nothing is phoned home and the author's environment is never inherited.",
|
|
349
|
+
},
|
|
350
|
+
"stage_4_align_npf_and_connect_goals": {
|
|
351
|
+
goal: "Final step — calibrate performance and capture your Connect goals.",
|
|
352
|
+
do: [
|
|
353
|
+
`Run \`qm_personalize\` to capture your role, IC level, FY period, and 3-5 draft Connect goal titles. Writes YOUR connect-db at ${QM_CONNECT_DB} (override via QM_CONNECT_DB env var).`,
|
|
354
|
+
"Then run `/npf` in Copilot for your first NPF assessment, calibrated to the level you just set.",
|
|
355
|
+
],
|
|
356
|
+
why_last: "NPF and Connect goals are only meaningful once your product profile and data sources are connected — so the assessment reflects real signal instead of an empty workspace.",
|
|
357
|
+
status: hasConnectDb
|
|
358
|
+
? `You already have a connect-db at ${QM_CONNECT_DB}. Re-run \`qm_personalize\` only if you want to refresh it.`
|
|
359
|
+
: "No connect-db yet — this is where you create it, at the END of onboarding.",
|
|
360
|
+
},
|
|
361
|
+
},
|
|
330
362
|
privacy_note: "Quartermaster ships templates only. Your Connect data, GitHub/Kusto/ADO credentials, and personal NPF history live on YOUR machine and are never committed to the package. The author's environment is not leaked to your install.",
|
|
331
363
|
troubleshooting: {
|
|
332
364
|
"Tools not visible after install": "Restart your MCP client (Copilot CLI: /restart; Claude Desktop: Cmd-Q + relaunch).",
|
|
365
|
+
"I want to skip straight to a stage": "Each stage is independent — call its tool directly. But Stage 4 (NPF + goals) is most useful after Stages 1-3.",
|
|
333
366
|
"qm_personalize asks me questions but I want to skip": "Answer 'skip' to any question; you can re-run later. The template is also at <package>/resources/connect-db.template.json — copy and edit by hand.",
|
|
334
367
|
"I want to see what files this server can read": "Call repo_overview — it returns the repo_root and exclusion list.",
|
|
335
368
|
},
|
|
@@ -501,12 +534,59 @@ function qmInitProfile(args = {}) {
|
|
|
501
534
|
}
|
|
502
535
|
|
|
503
536
|
function qmSkillsForPm() {
|
|
504
|
-
// Curated catalog
|
|
505
|
-
//
|
|
537
|
+
// Curated catalog mapped to PM daily-use cases.
|
|
538
|
+
// Two views: by_capability (PRDs / strategy / roadmap / monitoring) and by workflow (day of week).
|
|
506
539
|
return {
|
|
507
|
-
title: "Quartermaster —
|
|
508
|
-
intro:
|
|
509
|
-
|
|
540
|
+
title: "Quartermaster — PM skills in detail",
|
|
541
|
+
intro: `${TOOLS.length} tools + 2 prompts, organised by capability first, then by weekly workflow. Each name in backticks is callable as \`<tool_name>\` from your MCP client; \`/npf\` and \`/cxe\` are Copilot prompts.`,
|
|
542
|
+
by_capability: [
|
|
543
|
+
{
|
|
544
|
+
capability: "PRDs & specs",
|
|
545
|
+
what_you_can_do: "Author leadership-ready PRDs and executive specs that inherit your product's KPIs and pass a CXE review before you ship them.",
|
|
546
|
+
tools: [
|
|
547
|
+
{ name: "qm_seed_repo", use: "Scaffold a repo with the IGRM compact 1-2 page PRD format, /cxe + /npf prompts, and a command-center seed. Idempotent — safe to re-run." },
|
|
548
|
+
{ name: "qm_apply_profile", use: "Lock in your product profile so every PRD inherits your personas, KPIs, and manager directives instead of starting blank." },
|
|
549
|
+
{ name: "/cxe (prompt)", use: "Audit any PRD or work item against the 4 CXE pillars — Customer priority, Time-to-value, Confidence, Support — before review." },
|
|
550
|
+
],
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
capability: "Strategy & performance",
|
|
554
|
+
what_you_can_do: "Pressure-test your strategy and measure your own leverage with an IC-level-calibrated performance lens.",
|
|
555
|
+
tools: [
|
|
556
|
+
{ name: "/npf (prompt)", use: "30-second NPF score (leverage x reach x cycle-time) + biggest gap + next move, calibrated to your IC level." },
|
|
557
|
+
{ name: "qm_audit_repo", use: "Score any repo /6 on PM-readiness (AGENTS.md, copilot-instructions, profile, /npf, /cxe, verify.ps1). Fast peer review." },
|
|
558
|
+
],
|
|
559
|
+
},
|
|
560
|
+
{
|
|
561
|
+
capability: "Product roadmap & frameworks",
|
|
562
|
+
what_you_can_do: "Turn manager directives into tracked roadmap commitments and pull roadmap artefacts into context without copy-paste.",
|
|
563
|
+
tools: [
|
|
564
|
+
{ name: "qm_apply_profile / qm_init_profile", use: "Profile directives + KPIs become your roadmap's measurable commitments; qm_init_profile builds a custom profile for any product." },
|
|
565
|
+
{ name: "repo_overview / repo_list_dir / repo_read_file / repo_search", use: "Read-only access to your repo artefacts (roadmaps, PRDs, command-center) so the AI can assemble readouts. Secrets denied at the server." },
|
|
566
|
+
],
|
|
567
|
+
},
|
|
568
|
+
{
|
|
569
|
+
capability: "Monitoring & telemetry",
|
|
570
|
+
what_you_can_do: "See whether your paved paths are being adopted (Reach) and recall what shipped, then feed that signal back into NPF.",
|
|
571
|
+
tools: [
|
|
572
|
+
{ name: "qm_telemetry", use: "Read paved-path adoption events from the JSONL log; the Reach signal for your next /npf." },
|
|
573
|
+
{ name: "qm_report_adoption", use: "Opt-in: send an anonymous adoption ping (machine hash + counts + version) so a paved-path owner can measure reach. No PII." },
|
|
574
|
+
{ name: "repo_recent_sessions", use: "Read your cross-model session log to recall what shipped last week without re-explaining." },
|
|
575
|
+
{ name: "Kusto KPI pulls", use: "Pair with a connected Kusto MCP (Stage 3 connector template) to pull live product KPIs into the same workflow." },
|
|
576
|
+
],
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
capability: "Onboarding & sharing",
|
|
580
|
+
what_you_can_do: "Bring a peer PM onto the same paved path in minutes.",
|
|
581
|
+
tools: [
|
|
582
|
+
{ name: "qm_welcome", use: "The 4-stage first-run guide. Surface this to any new peer." },
|
|
583
|
+
{ name: "qm_personalize", use: "Walk a peer through role / level / FY / goal questions and write THEIR connect-db. Their data, their machine." },
|
|
584
|
+
{ name: "qm_install_prompts", use: "Drop /npf + /cxe into a peer's ~/.github/prompts so the prompts work in Copilot Chat (IDE) too." },
|
|
585
|
+
{ name: "qm_skills_for_pm", use: "This catalog. Run any time you forget what's available." },
|
|
586
|
+
],
|
|
587
|
+
},
|
|
588
|
+
],
|
|
589
|
+
by_workflow: [
|
|
510
590
|
{
|
|
511
591
|
scenario: "Monday — Weekly self-assessment + planning",
|
|
512
592
|
tools: [
|
|
@@ -531,15 +611,6 @@ function qmSkillsForPm() {
|
|
|
531
611
|
{ name: "qm_emit_pr", use: "Seed a repo with a profile AND open a labeled PR via gh CLI — closes the loop on cross-team commitments in one call." },
|
|
532
612
|
],
|
|
533
613
|
},
|
|
534
|
-
{
|
|
535
|
-
scenario: "Onboarding + sharing with peer PMs",
|
|
536
|
-
tools: [
|
|
537
|
-
{ name: "qm_welcome", use: "First-run guide. Surface this to any new peer." },
|
|
538
|
-
{ name: "qm_personalize", use: "Walk a peer through 5 questions, write THEIR connect-db. Their data, their machine, never the package author's." },
|
|
539
|
-
{ name: "qm_install_prompts", use: "Drop /npf + /cxe into a peer's ~/.github/prompts so the prompts work in Copilot Chat (IDE) too." },
|
|
540
|
-
{ name: "qm_skills_for_pm", use: "This catalog. Run any time you forget what's available." },
|
|
541
|
-
],
|
|
542
|
-
},
|
|
543
614
|
],
|
|
544
615
|
daily_loop: [
|
|
545
616
|
"1. Mon 09:00 — `/npf` for the week's score + gap.",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pbhamri/quartermaster-mcp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "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 templates you fill in.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|