MCP Integration Guide¶
This guide helps you access PM-Skills through the Model Context Protocol (MCP) via pm-skills-mcp.
Table of Contents¶
- Overview
- When to Use MCP
- Quick Start
- Claude Desktop
- Claude Code (CLI)
- Cursor
- VS Code (Cline/Continue)
- Other MCP Clients
- Tool Inventory
- Skill Tools (31)
- Workflow Tools (5)
- Utility Tools (8)
- Slash Command to MCP Tool Mapping
- Customization
- Troubleshooting
- Resources
Overview¶
PM-Skills MCP is an MCP server that exposes the pm-skills catalog as programmatic tools. As of v2.8.0, that means 31 skill tools (25 phase skills + 1 foundation + 5 utility), plus 5 workflow tools and 8 utility tools (44 total). Instead of uploading files or using slash commands, your AI assistant invokes tools directly via the Model Context Protocol.
┌─────────────────┐ ┌─────────────────┐
│ Your AI │ MCP Protocol │ pm-skills-mcp │
│ Assistant │ ◄───────────────► │ Server │
│ │ │ │
│ "Create a PRD │ tools/call │ ┌───────────┐ │
│ for search" │ ─────────────────► │ │ pm_prd │ │
│ │ │ │ pm_hypo │ │
│ │ skill content │ │ pm_... │ │
│ [PRD output] │ ◄───────────────── │ └───────────┘ │
└─────────────────┘ └─────────────────┘
Key Benefits: - Zero file management — No cloning, no uploads - Universal — Works with any MCP-compatible client - Parameterized — Tools accept topic, context, format options - Discoverable — Built-in search and listing tools
When to Use MCP¶
Choose MCP over file-based pm-skills when:
| Use Case | MCP Recommended? |
|---|---|
| Using Claude Desktop | ✅ Yes |
| Using Cursor with MCP support | ✅ Yes |
| Want zero configuration | ✅ Yes |
| Need programmatic tool access | ✅ Yes |
| Building automated PM workflows | ✅ Yes |
| Using Claude Code with slash commands | ❌ Use pm-skills directly |
| Heavily customizing skills | ❌ Fork pm-skills |
| Uploading to Claude.ai Projects | ❌ Use pm-skills ZIP |
Not sure? See docs/reference/ecosystem.md for a detailed comparison.
Quick Start¶
Claude Desktop¶
Claude Desktop provides the best MCP experience. Configuration file locations:
| Platform | Path |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
Add to configuration:
Restart Claude Desktop to load the server.
Verify: Ask Claude "What PM skills are available?" — it should list the current PM-Skills catalog from the server.
Claude Code (CLI)¶
Add to project settings (.claude/settings.json) or global settings (~/.claude/settings.json):
Note: Claude Code also supports slash commands from the file-based pm-skills. You can use both approaches simultaneously.
Cursor¶
- Open Settings (Cmd/Ctrl + ,)
- Navigate to Features → MCP Servers
- Add new server:
- Name:
pm-skills - Command:
npx - Arguments:
pm-skills-mcp
Or edit ~/.cursor/mcp.json directly:
VS Code (Cline/Continue)¶
Cline Extension:
- Install Cline from VS Code marketplace
- Open Cline settings
- Add MCP server configuration:
Continue Extension:
- Install Continue from VS Code marketplace
- Edit
~/.continue/config.json - Add under
mcpServers:
Other MCP Clients¶
PM-Skills MCP works with any MCP-compatible client. The general pattern:
- Install globally (optional):
npm install -g pm-skills-mcp - Configure client to start the server:
- Command:
npx(orpm-skills-mcpif installed globally) - Args:
["pm-skills-mcp"](empty if using global install) - Restart client to connect
Consult your MCP client's documentation for specific configuration syntax.
Tool Inventory¶
PM-Skills MCP exposes skill, workflow, and utility tools derived from the current shipped library.
Note: pm-skills-mcp now tracks pm-skills release versions directly (starting at v2.4.0). Resource URIs are flat (
pm-skills://skills/{skill}) with phase available in metadata.
Skill Tools (31)¶
Each skill becomes an MCP tool with standardized parameters:
| Parameter | Required | Description |
|---|---|---|
topic |
Yes | The subject or feature for this artifact |
context |
No | Additional requirements, constraints, or background |
format |
No | Output verbosity: full, concise, or template-only |
includeExample |
No | Set to true to include a worked example |
Discover Phase¶
| Tool | Description |
|---|---|
pm_interview_synthesis |
Turn user research into actionable insights |
pm_competitive_analysis |
Map the landscape, find opportunities |
pm_stakeholder_summary |
Understand who matters and what they need |
Define Phase¶
| Tool | Description |
|---|---|
pm_problem_statement |
Crystal-clear problem framing |
pm_hypothesis |
Testable assumptions with success metrics |
pm_opportunity_tree |
Teresa Torres-style outcome mapping |
pm_jtbd_canvas |
Jobs to be Done framework |
Develop Phase¶
| Tool | Description |
|---|---|
pm_solution_brief |
One-page solution pitch |
pm_spike_summary |
Document technical explorations |
pm_adr |
Architecture Decision Records |
pm_design_rationale |
Design decision documentation |
Deliver Phase¶
| Tool | Description |
|---|---|
pm_prd |
Comprehensive product requirements |
pm_user_stories |
INVEST-compliant stories with acceptance criteria |
pm_edge_cases |
Error states, boundaries, recovery paths |
pm_launch_checklist |
Never miss a launch step again |
pm_release_notes |
User-facing release communication |
pm_acceptance_criteria |
Given/When/Then acceptance criteria |
Measure Phase¶
| Tool | Description |
|---|---|
pm_experiment_design |
Rigorous A/B test planning |
pm_instrumentation_spec |
Event tracking requirements |
pm_dashboard_requirements |
Analytics dashboard specs |
pm_experiment_results |
Document learnings from experiments |
Iterate Phase¶
| Tool | Description |
|---|---|
pm_retrospective |
Team retros that drive action |
pm_lessons_log |
Build organizational memory |
pm_refinement_notes |
Capture backlog refinement outcomes |
pm_pivot_decision |
Evidence-based pivot/persevere framework |
Foundation¶
| Tool | Description |
|---|---|
pm_persona |
Generate product or marketing personas with explicit assumptions and evidence |
Utility¶
| Tool | Description |
|---|---|
pm_pm_skill_builder |
Interactive builder for creating new PM skills |
pm_pm_skill_validate |
Audit a skill against structural conventions and quality criteria |
pm_pm_skill_iterate |
Apply targeted improvements from feedback or validation reports |
pm_mermaid_diagrams |
Generate Mermaid diagrams for PM artifacts |
pm_slideshow_creator |
Generate professional presentations from JSON deck specs |
Workflow Tools (5)¶
Workflow tools orchestrate multiple skills for common PM scenarios:
| Tool | Skills Involved | Description |
|---|---|---|
pm_workflow_feature_kickoff |
problem → hypothesis → solution → PRD → stories | Standard feature development |
pm_workflow_lean_startup |
hypothesis → experiment → results → pivot | Build-Measure-Learn cycle |
pm_workflow_triple_diamond |
Full 6-phase sequence | Complete product development |
pm_workflow_quick_prd |
problem → PRD | Fast requirements capture |
pm_workflow_experiment_cycle |
hypothesis → experiment → results → lessons | Rapid validation loop |
Utility Tools (8)¶
Discovery and validation tools:
| Tool | Description |
|---|---|
pm_list_skills |
List all available PM skill tools |
pm_list_resources |
List all MCP resources (skills, templates, examples) |
pm_list_personas |
List persona library resources when available |
pm_list_workflows |
List workflows with their steps |
pm_list_prompts |
List available MCP prompts |
pm_validate |
Validate an artifact against a skill template |
pm_search_skills |
Search skills by keyword |
pm_cache_stats |
Show server cache stats and hit-rate diagnostics |
Slash Command to MCP Tool Mapping¶
If you're transitioning from file-based pm-skills to MCP, here's the mapping:
| Slash Command | MCP Tool |
|---|---|
/prd |
pm_prd |
/hypothesis |
pm_hypothesis |
/problem-statement |
pm_problem_statement |
/user-stories |
pm_user_stories |
/launch-checklist |
pm_launch_checklist |
/interview-synthesis |
pm_interview_synthesis |
/competitive-analysis |
pm_competitive_analysis |
/stakeholder-summary |
pm_stakeholder_summary |
/opportunity-tree |
pm_opportunity_tree |
/jtbd-canvas |
pm_jtbd_canvas |
/solution-brief |
pm_solution_brief |
/spike-summary |
pm_spike_summary |
/adr |
pm_adr |
/design-rationale |
pm_design_rationale |
/edge-cases |
pm_edge_cases |
/release-notes |
pm_release_notes |
/experiment-design |
pm_experiment_design |
/instrumentation-spec |
pm_instrumentation_spec |
/dashboard-requirements |
pm_dashboard_requirements |
/experiment-results |
pm_experiment_results |
/retrospective |
pm_retrospective |
/lessons-log |
pm_lessons_log |
/refinement-notes |
pm_refinement_notes |
/pivot-decision |
pm_pivot_decision |
/persona |
pm_persona |
/acceptance-criteria |
pm_acceptance_criteria |
/pm-skill-builder |
pm_pm_skill_builder |
/pm-skill-validate |
pm_pm_skill_validate |
/pm-skill-iterate |
pm_pm_skill_iterate |
/workflow-feature-kickoff |
pm_workflow_feature_kickoff |
Requires pm-skills-mcp v2.8.0+ for the full skill tool inventory.
Usage difference:
# Slash command (Claude Code with pm-skills)
/prd search feature
# MCP tool (Claude Desktop with pm-skills-mcp)
"Create a PRD for the search feature"
→ AI invokes pm_prd with topic="search feature"
Customization¶
Using Custom Skills¶
Point pm-skills-mcp to your own skill directory:
{
"mcpServers": {
"pm-skills": {
"command": "npx",
"args": ["pm-skills-mcp"],
"env": {
"PM_SKILLS_PATH": "/path/to/your/pm-skills/skills"
}
}
}
}
Workflow: Fork + Customize + MCP¶
- Fork pm-skills on GitHub
- Clone your fork locally
- Modify skills as needed
- Configure MCP to use your fork:
{
"mcpServers": {
"pm-skills": {
"command": "npx",
"args": ["pm-skills-mcp"],
"env": {
"PM_SKILLS_PATH": "/Users/you/repos/pm-skills/skills"
}
}
}
}
- Keep updated by merging from upstream
Environment Variables¶
| Variable | Default | Description |
|---|---|---|
PM_SKILLS_PATH |
(embedded) | Path to custom skills directory |
PM_SKILLS_FORMAT |
full |
Default output format |
PM_SKILLS_EXAMPLES |
false |
Include examples by default |
Maintainer: MCP Sync Workflow¶
This section documents how pm-skills releases flow to pm-skills-mcp. It is intended for maintainers, not end users.
Architecture¶
pm-skills-mcp is release-pinned — it embeds a snapshot of skill files at build time and ships them in the npm package. It does not live-sync with the pm-skills repo.
pm-skills (tag v2.8.0)
│
├── validate-mcp-sync.yml ── CI detects drift (blocking)
│
└── embed-skills.js ──────── copies skills/ into pm-skills-mcp
│
pm-skills-mcp (tag v2.8.0)
│
npm publish
When to Sync¶
Sync after any pm-skills release that adds, removes, or renames skills. The check-mcp-impact script and validate-mcp-sync.yml CI workflow both detect when sync is needed.
How to Sync¶
From the pm-skills-mcp repo root:
# 1. Embed skills from the pm-skills sibling directory (or specify path)
node scripts/embed-skills.js ../pm-skills/skills
# 2. Update the source pin
# Edit pm-skills-source.json: pmSkillsRef, pmSkillsVersion, updated
# 3. Bump version in package.json and src/config.ts
# 4. Update CHANGELOG.md
# 5. Commit, tag, publish
git add -A && git commit -m "chore(release): sync with pm-skills vX.Y.Z"
git tag vX.Y.Z && git push origin main --tags
npm publish
Tool Naming Convention¶
The deriveToolName function in src/server.ts strips the directory prefix and prepends pm_:
| Skill directory | Stripped | MCP tool name |
|---|---|---|
deliver-prd |
prd |
pm_prd |
foundation-persona |
persona |
pm_persona |
utility-pm-skill-builder |
pm-skill-builder |
pm_pm_skill_builder |
Prefixes stripped: discover-, define-, develop-, deliver-, measure-, iterate-, foundation-, utility-. Remaining hyphens become underscores.
CI Guardrails¶
| Component | Location | Behavior |
|---|---|---|
validate-mcp-sync.yml |
.github/workflows/ |
Runs on PRs/pushes touching skills/ or commands/. Checks out both repos, embeds, validates. Blocks by default. |
check-mcp-impact.sh/.ps1 |
scripts/ |
Local advisory. Non-blocking. |
check-mcp-impact.md |
scripts/ |
Script documentation |
Expected CI behavior after a pm-skills release: validate-mcp-sync will show a failure on main until pm-skills-mcp is updated. This is the guardrail working as designed — it creates visible pressure to complete the sync.
Troubleshooting¶
Server Not Starting¶
Symptom: AI doesn't recognize PM-Skills tools
Solutions:
1. Verify Node.js is installed: node --version (requires v18+)
2. Test server manually: npx pm-skills-mcp
3. Check MCP client logs for connection errors
4. Restart your MCP client after configuration changes
Tools Not Appearing¶
Symptom: pm_list_skills returns nothing or errors
Solutions:
1. Ensure the server started successfully
2. If using PM_SKILLS_PATH, verify the path exists and contains skill folders
3. Check that skill folders have SKILL.md files
Custom Skills Not Loading¶
Symptom: MCP uses embedded skills instead of custom ones
Solutions:
1. Verify PM_SKILLS_PATH is set correctly in your config
2. Use absolute paths (not relative)
3. Ensure the path points to the skills/ directory, not the repo root:
- ✅ /path/to/pm-skills/skills
- ❌ /path/to/pm-skills
Connection Refused¶
Symptom: MCP client can't connect to server
Solutions:
1. Check if another process is using the same port
2. Try running with npx instead of global install
3. Update pm-skills-mcp: npm update -g pm-skills-mcp
Slow Response Times¶
Symptom: Tools take a long time to respond
Solutions: 1. First invocation is slower (loading skills into cache) 2. Subsequent calls should be faster 3. If using custom path, ensure it's on a local filesystem (not network drive)
Resources¶
Documentation¶
- pm-skills-mcp README
- pm-skills-mcp Getting Started Guide
- pm-skills-mcp Customization Guide
- PM-Skills Ecosystem Overview
- MCP Sync Validation Guide
Links¶
- pm-skills-mcp Repository: github.com/product-on-purpose/pm-skills-mcp
- npm Package: npmjs.com/package/pm-skills-mcp
- Model Context Protocol: modelcontextprotocol.io
- MCP Specification: spec.modelcontextprotocol.io
Support¶
- Open an issue for bugs or feature requests
- Start a discussion for questions
Part of the PM-Skills ecosystem.