BMAD (Business-Minded Agile Development) MCP server

Orchestrates agile development workflows by integrating business requirements with development processes to streamline project management and delivery for teams bridging business stakeholders with technical implementation.
Back to servers
Setup instructions
Provider
cexll
Release date
Oct 05, 2025
Stats
402 downloads
14 stars

BMAD-MCP is a lightweight workflow orchestrator that manages the complete agile development process through multiple stages - from Product Owner to Quality Assurance. It manages workflow state, dispatches role-specific prompts, and saves development artifacts, working seamlessly with Claude Code to execute the entire software development lifecycle.

Installation

Quick Installation (3 Steps)

# Step 1: Install globally from npm
npm install -g bmad-mcp

# Step 2: Add to Claude Code
claude mcp add-json --scope user bmad '{"type":"stdio","command":"bmad-mcp"}'

# Step 3: Verify installation
bmad-mcp
# Expected output: "BMAD MCP Server running on stdio"

That's it! Restart Claude Code and you're ready to use the BMAD workflow.

Advanced Installation Options

Option 1: NPM Install (Recommended)

npm install -g bmad-mcp
claude mcp add-json --scope user bmad '{"type":"stdio","command":"bmad-mcp"}'

Option 2: Build from Source

git clone https://github.com/cexll/bmad-mcp-server
cd bmad-mcp-server
npm install
npm run build
npm link  # Makes bmad-mcp globally available

# Add to Claude Code
claude mcp add-json --scope user bmad '{"type":"stdio","command":"bmad-mcp"}'

Verifying Your Installation

# Check if binary is available
which bmad-mcp
# Output: /usr/local/bin/bmad-mcp (or similar)

# Test the server directly
bmad-mcp
# Expected output: "BMAD MCP Server running on stdio"
# Press Ctrl+C to exit

# Restart Claude Code to load the configuration

Uninstalling

# Remove from Claude Code
claude mcp remove bmad

# Uninstall npm package
npm uninstall -g bmad-mcp

Usage

Basic Usage

Simply tell Claude Code to use BMAD:

User: Use bmad-task to create a user authentication system

Claude Code will:

  1. Start BMAD workflow (PO stage)
  2. Generate Product Requirements Document (with interactive Q&A)
  3. Generate System Architecture (with interactive Q&A)
  4. Create Sprint Plan
  5. Implement code (using Codex)
  6. Perform code review
  7. Run quality assurance tests

All artifacts are saved to: .claude/specs/user-authentication-system/

Configuration Location

MCP configuration is automatically added to ~/.claude/config.json:

{
  "mcpServers": {
    "bmad": {
      "type": "stdio",
      "command": "bmad-mcp"
    }
  }
}

Workflow Stages

Stage Role Engines Description
PO Product Owner Claude + Codex Requirements analysis (merge both)
Architect System Architect Claude + Codex Technical design (merge both)
SM Scrum Master Claude Sprint planning
Dev Developer Codex Code implementation
Review Code Reviewer Codex Code review
QA QA Engineer Codex Testing and quality assurance

Advanced Usage

Basic Workflow API

// 1. Start workflow
const startResult = await callTool("bmad-task", {
  action: "start",
  cwd: "/path/to/your/project",
  objective: "Implement user login system"
});

const { session_id, task_name, role_prompt, engines } = JSON.parse(startResult.content[0].text);

// 2. Execute with engines
if (engines.includes("claude")) {
  const claudeResult = await callClaude(role_prompt);
}
if (engines.includes("codex")) {
  const codexResult = await callCodexMCP(role_prompt);
}

// 3. Submit results
await callTool("bmad-task", {
  action: "submit",
  session_id: session_id,
  stage: "po",
  claude_result: claudeResult,
  codex_result: codexResult
});

// 4. Confirm and proceed (unified: saves + advances to next stage)
await callTool("bmad-task", {
  action: "confirm",
  session_id: session_id,
  confirmed: true
});

Key Actions

start - Start a new workflow

{
  "action": "start",
  "cwd": "/path/to/project",
  "objective": "Project description"
}

submit - Submit stage results

{
  "action": "submit",
  "session_id": "uuid",
  "stage": "po",
  "claude_result": "...",
  "codex_result": "..."
}

confirm - Confirm and save (unified action)

{
  "action": "confirm",
  "session_id": "uuid",
  "confirmed": true
}

answer - Answer clarification questions

{
  "action": "answer",
  "session_id": "uuid",
  "answers": ["Answer to Q1", "Answer to Q2"]
}

approve - Approve current stage (SM stage only)

{
  "action": "approve",
  "session_id": "uuid",
  "sprint_selection": "all"  // or "1" for just Sprint 1
}

Important - Dev Stage Behavior:

  • After approving Sprint Plan, workflow enters Dev stage but does NOT auto-start development
  • User must explicitly specify development scope:
    • "开始开发" / "start development" → Implements ALL sprints (default)
    • "开发 Sprint 1" / "implement sprint 1" → Implements only Sprint 1

status - Query workflow status

{
  "action": "status",
  "session_id": "uuid"
}

File Structure

Your Project

your-project/
├── .bmad-task/
│   ├── session-abc-123.json          # Workflow state (with content references)
│   ├── task-mapping.json             # Maps session_id → task_name
│   └── temp/
│       └── abc-123/                  # Temporary content files
│           ├── po_claude_result_xxx.md
│           ├── po_codex_result_xxx.md
│           └── po_final_result_xxx.md
├── .claude/
│   └── specs/
│       └── implement-user-login/     # Task name (human-readable slug)
│           ├── 01-product-requirements.md
│           ├── 02-system-architecture.md
│           ├── 03-sprint-plan.md
│           ├── 04-dev-reviewed.md
│           └── 05-qa-report.md
└── src/

Engine Configuration

PO & Architect Stages (Dynamic Engine Selection)

  • Default: Only Claude (single engine)

  • Dual Engine: Enabled when objective contains "codex" or "使用 codex"

  • If dual engine enabled:

    • Calls both Claude and Codex
    • Each generates independent solution
    • BMAD-MCP merges results:
      • If both ≥ 90: choose higher score
      • If one ≥ 90: choose that one
      • If both < 90: choose higher score, refine
  • Interactive Clarification:

    • First iteration: Identify gaps, generate 3-5 clarification questions
    • User answers questions
    • Regenerate based on answers
    • Iterate until score ≥ 90

SM Stage (Claude Only)

  • Only calls Claude
  • Scrum planning doesn't need Codex

Dev/Review/QA Stages (Codex Only)

  • Only calls Codex MCP
  • Uses GPT-5 for code tasks
  • Important: Use model: "gpt-5" (NOT "gpt-5-codex")
  • Parameters:
    • model: "gpt-5"
    • sandbox: "danger-full-access"
    • approval-policy: "on-failure"

Troubleshooting

Server not starting

# Check global installation
which bmad-mcp

# Verify npm global installation path
npm config get prefix

# Reinstall if needed
npm uninstall -g bmad-mcp
npm install -g bmad-mcp

Tool name error

  • Important: The tool name is bmad-task, not bmad
  • Use callTool("bmad-task", {...}) in your code
  • Claude Code configuration should use bmad-task as the tool name

Session not found

  • Ensure .bmad-task/ directory has write permissions
  • Check session_id is correct
  • Verify cwd path is absolute

Scores not detected

  • Ensure generated content includes: Quality Score: X/100 or "quality_score": 92 in JSON
  • Check score format matches pattern (0-100)
  • Score ≥ 90 required for PO/Architect stages to advance

Clarification workflow issues

  • If you see state: "clarifying", user must answer questions via answer action
  • Do NOT auto-generate answers - wait for real user input
  • Check requires_user_confirmation: true before proceeding

How to install this MCP server

For Claude Code

To add this MCP server to Claude Code, run this command in your terminal:

claude mcp add-json "bmad" '{"type":"stdio","command":"bmad-mcp"}'

See the official Claude Code MCP documentation for more details.

For Cursor

There are two ways to add an MCP server to Cursor. The most common way is to add the server globally in the ~/.cursor/mcp.json file so that it is available in all of your projects.

If you only need the server in a single project, you can add it to the project instead by creating or adding it to the .cursor/mcp.json file.

Adding an MCP server to Cursor globally

To add a global MCP server go to Cursor Settings > Tools & Integrations and click "New MCP Server".

When you click that button the ~/.cursor/mcp.json file will be opened and you can add your server like this:

{
    "mcpServers": {
        "bmad": {
            "type": "stdio",
            "command": "bmad-mcp"
        }
    }
}

Adding an MCP server to a project

To add an MCP server to a project you can create a new .cursor/mcp.json file or add it to the existing one. This will look exactly the same as the global MCP server example above.

How to use the MCP server

Once the server is installed, you might need to head back to Settings > MCP and click the refresh button.

The Cursor agent will then be able to see the available tools the added MCP server has available and will call them when it needs to.

You can also explicitly ask the agent to use the tool by mentioning the tool name and describing what the function does.

For Claude Desktop

To add this MCP server to Claude Desktop:

1. Find your configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

2. Add this to your configuration file:

{
    "mcpServers": {
        "bmad": {
            "type": "stdio",
            "command": "bmad-mcp"
        }
    }
}

3. Restart Claude Desktop for the changes to take effect

Want to 10x your AI skills?

Get a free account and learn to code + market your apps using AI (with or without vibes!).

Nah, maybe later