BMAD-MCP
Works within Git repositories to manage agile development workflows and save artifacts in project directories
References GitHub repository for source code and installation instructions
Uses Mermaid diagrams to visualize the workflow process and stage transitions in the documentation
Distributed as an npm package for global installation and integration with Claude Code's MCP server configuration
Built with TypeScript and provides TypeScript examples for integration usage
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@BMAD-MCPcreate a user authentication system with login and registration"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
BMAD-MCP
Business-Minded Agile Development workflow orchestrator as an MCP (Model Context Protocol) server.
Complete agile development workflow: PO → Architect → SM → Dev → Review → QA
Interactive Requirements Gathering - Asks clarifying questions to ensure complete requirements Dynamic Engine Selection - Uses Claude by default, dual-engine when needed Content Reference System - Efficient token usage via file references Human-Readable Task Names - Organizes by task name, not UUID
🎯 What is BMAD-MCP?
BMAD-MCP is a lightweight workflow orchestrator that manages the complete agile development process. It:
Manages workflow state (which stage you're in, what's needed next)
Dispatches role prompts (provides detailed prompts for each role)
Saves artifacts (PRD, architecture, code, reports)
Does NOT call LLMs (that's Claude Code's job)
Related MCP server: Bernstein - Multi-agent orchestration
🏗️ Architecture
User → Claude Code → bmad-mcp tool
↓
Returns: {
stage: "po",
role_prompt: "<complete PO prompt>",
engines: ["claude", "codex"],
context: {...}
}
↓
Claude Code executes:
- Calls Claude (with role_prompt)
- Calls Codex MCP (with role_prompt)
↓
Claude Code submits results → bmad-mcp
↓
bmad-mcp: merges, scores, saves, advances to next stage📋 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 |
🚀 Quick Start
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 BMAD workflow.
Usage Example
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 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"
}
}
}🔧 Advanced Installation
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"}'Verify 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 configurationUninstall
# Remove from Claude Code
claude mcp remove bmad
# Uninstall npm package
npm uninstall -g bmad-mcp📖 Usage
Basic Workflow
// 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
});Actions
start - Start a new workflow
{
"action": "start",
"cwd": "/path/to/project",
"objective": "Project description"
}Returns:
{
"session_id": "uuid",
"task_name": "project-description",
"stage": "po",
"state": "generating",
"stage_description": "Product Owner - Requirements Analysis",
"requires_user_confirmation": true,
"interaction_type": "awaiting_generation",
"user_message": "📋 **BMAD 工作流已启动**...",
"role_prompt": "<complete prompt>",
"engines": ["claude"],
"context": {...},
"pending_user_actions": ["review_and_confirm_generation"]
}submit - Submit stage results
{
"action": "submit",
"session_id": "uuid",
"stage": "po",
"claude_result": "...",
"codex_result": "..."
}Returns (if score >= 90):
{
"session_id": "uuid",
"stage": "po",
"state": "awaiting_confirmation",
"score": 92,
"requires_user_confirmation": true,
"interaction_type": "user_decision",
"user_message": "✅ **PRD生成完成**\n质量评分:92/100...",
"final_draft_summary": "...",
"final_draft_file": ".bmad-task/temp/uuid/po_final_result_xxx.md",
"pending_user_actions": ["confirm", "reject_and_refine"]
}Returns (if score < 90 with clarification questions):
{
"session_id": "uuid",
"stage": "po",
"state": "clarifying",
"current_score": 75,
"requires_user_confirmation": true,
"interaction_type": "user_decision",
"user_message": "⚠️ **需求澄清...**",
"gaps": ["Target user group unclear", "..."],
"questions": [{"id": "q1", "question": "...", "context": "..."}],
"pending_user_actions": ["answer_questions"]
}confirm - Confirm and save (unified action)
{
"action": "confirm",
"session_id": "uuid",
"confirmed": true
}Returns (saves artifact + advances to next stage):
{
"session_id": "uuid",
"stage": "architect",
"state": "generating",
"requires_user_confirmation": true,
"interaction_type": "awaiting_generation",
"user_message": "💾 **文档已保存,并已进入下一阶段**...",
"role_prompt": "<architect prompt>",
"engines": ["claude"],
"previous_artifact": ".claude/specs/task-name/01-product-requirements.md",
"pending_user_actions": ["review_and_confirm_generation"]
}answer - Answer clarification questions
{
"action": "answer",
"session_id": "uuid",
"answers": {
"q1": "Target users are enterprise B2B customers",
"q2": "Expected 10k concurrent users with <200ms response time"
}
}Returns:
{
"session_id": "uuid",
"stage": "po",
"state": "refining",
"requires_user_confirmation": true,
"interaction_type": "awaiting_regeneration",
"user_message": "📝 **已收到你的回答**...",
"role_prompt": "<updated prompt with user answers>",
"engines": ["claude"],
"pending_user_actions": ["regenerate_with_answers"]
}approve - Approve current stage (SM stage only)
{
"action": "approve",
"session_id": "uuid",
"approved": true
}Returns (when entering Dev stage):
{
"session_id": "uuid",
"stage": "dev",
"state": "generating",
"requires_user_confirmation": true,
"interaction_type": "awaiting_generation",
"user_message": "✅ **Sprint Plan 已批准**\n\n正在进入下一阶段:Developer - Implementation\n\nSprint Plan 包含 3 个 Sprint:\n1. Sprint 1: 基础架构\n2. Sprint 2: 核心功能\n3. Sprint 3: 优化和完善\n\n⚠️ 重要:请明确指示开发范围...",
"role_prompt": "<dev prompt>",
"engines": ["codex"],
"pending_user_actions": ["specify_sprint_scope_then_generate"]
}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
This ensures users have full control over what gets implemented and when
status - Query workflow status
{
"action": "status",
"session_id": "uuid"
}Returns:
{
"session_id": "uuid",
"current_stage": "dev",
"current_state": "generating",
"stages": {...},
"artifacts": [...]
}📁 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/Session State File
{
"session_id": "abc-123",
"task_name": "implement-user-login",
"cwd": "/path/to/project",
"objective": "Implement user login",
"current_stage": "dev",
"current_state": "generating",
"stages": {
"po": {
"status": "completed",
"claude_result_ref": {
"summary": "First 300 chars...",
"file_path": ".bmad-task/temp/abc-123/po_claude_result_xxx.md",
"size": 12450,
"last_updated": "2025-01-15T10:30:00Z"
},
"final_result_ref": {...},
"score": 92,
"approved": true
},
...
},
"artifacts": [".claude/specs/implement-user-login/01-product-requirements.md", ...]
}🎨 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"
🔄 Workflow Flow
graph TD
A[Start] --> B[PO Stage: Generate]
B --> C{Has Questions?}
C -->|Yes| D[Clarifying: User Answers]
D --> E[Refining: Regenerate]
E --> F{Score >= 90?}
C -->|No| F
F -->|No| C
F -->|Yes| G[Awaiting Confirmation]
G -->|confirm| H[Saved + Architect Stage]
H --> I{Has Questions?}
I -->|Yes| J[Clarifying: User Answers]
J --> K[Refining: Regenerate]
K --> L{Score >= 90?}
I -->|No| L
L -->|No| I
L -->|Yes| M[Awaiting Confirmation]
M -->|confirm| N[Saved + SM Stage]
N -->|approve| O[Dev Stage]
O --> P[Review Stage]
P --> Q[QA Stage]
Q --> R[Complete]🛠️ Development
Project Structure
bmad-mcp/
├── src/
│ ├── index.ts # Main MCP server
│ └── master-prompt.ts # All role prompts
├── dist/ # Compiled output
├── package.json
├── tsconfig.json
└── README.mdBuild
npm run buildDevelopment Mode
npm run dev # Watch modeTest Locally
npm run build
node dist/index.js📚 Master Orchestrator Design
All role prompts are embedded in a single master-prompt.ts file:
Centralized management: All roles in one place
Workflow definition: Clear stage sequence
Engine configuration: Which engines for each stage
Quality gates: Score thresholds and approval points
🤝 Integration with Codex MCP
When calling Codex for Dev/Review/QA stages:
// Claude Code calls Codex MCP
await callTool("codex", {
prompt: role_prompt, // From bmad-task
model: "gpt-5", // IMPORTANT: Use "gpt-5", NOT "gpt-5-codex"
sandbox: "danger-full-access",
"approval-policy": "on-failure"
});⚙️ Configuration
Quality Thresholds
Defined in master-prompt.ts:
quality_gates: {
po: { min_score: 90, approval_required: true },
architect: { min_score: 90, approval_required: true },
sm: { approval_required: true },
dev: {},
review: {},
qa: {}
}Artifact Filenames
artifacts: {
po: "01-product-requirements.md",
architect: "02-system-architecture.md",
sm: "03-sprint-plan.md",
dev: "code-implementation",
review: "04-dev-reviewed.md",
qa: "05-qa-report.md"
}🔍 Troubleshooting
Server not starting
# Check installation
which bmad-mcp
# Test directly
bmad-mcpTool name error
Important: The tool name is
bmad-task, notbmadUse
callTool("bmad-task", {...})in your codeClaude Code configuration should use
bmad-taskas the tool name
Session not found
Ensure
.bmad-task/directory has write permissionsCheck
session_idis correctVerify
cwdpath is absolute
Scores not detected
Ensure generated content includes:
Quality Score: X/100or"quality_score": 92in JSONCheck 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 viaansweractionDo NOT auto-generate answers - wait for real user input
Check
requires_user_confirmation: truebefore proceeding
📝 License
MIT
🙋 Support
Documentation: This README
Issues: GitHub issues
Reference: https://github.com/cexll/myclaude
Transform your development with BMAD - One workflow, complete agile process, quality assured.
Available Tools
1 toolbmad-taskB
BMAD (Business-Minded Agile Development) workflow orchestrator.
Manages complete development workflow: PO → Architect → SM → Dev → Review → QA.
Key features:
Master orchestrator with embedded role prompts
Interactive clarification process (PO/Architect stages)
Dynamic engine selection (Claude/Codex)
Quality gates and approval points
Artifact management
Project-level state tracking
This tool returns:
Current stage and role prompt
Required engines (claude/codex/both)
Context and inputs for the role
Next action required
It does NOT call LLMs directly - that's Claude Code's responsibility.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Action type | |
| session_id | No | Session ID (required except for 'start') | |
| cwd | No | Project directory (required for 'start') | |
| objective | No | Project objective (required for 'start') | |
| stage | No | Stage for submission (required for 'submit') | |
| claude_result | No | Result from Claude (for 'submit') | |
| codex_result | No | Result from Codex (for 'submit') | |
| answers | No | User answers to clarification questions (for 'answer') | |
| confirmed | No | Confirmation status (for 'confirm'/'confirm_save') | |
| approved | No | Approval status (for 'approve') | |
| feedback | No | User feedback (for 'approve') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It describes key features like 'interactive clarification process,' 'dynamic engine selection,' and 'quality gates,' which give some insight into behavior. However, it lacks details on error handling, state persistence, or performance characteristics. The return values are listed but not explained in depth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with a brief overview, bullet-pointed features, and a return values section, but it's somewhat verbose. Sentences like 'Master orchestrator with embedded role prompts' could be more direct. The information is front-loaded with key points, but some redundancy exists (e.g., listing stages twice). It could be more streamlined.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (11 parameters, no output schema, no annotations), the description provides a good overview but lacks depth. It covers what the tool does and returns, but misses details on error cases, state management, or integration specifics. Without output schema, more explanation of return values would help. It's adequate but has clear gaps for such a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 11 parameters thoroughly. The description adds no specific parameter semantics beyond what the schema provides. It implies parameters through features like 'stage' and 'action,' but doesn't elaborate on their usage or relationships. Baseline 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is a 'workflow orchestrator' that 'manages complete development workflow' with specific stages listed (PO → Architect → SM → Dev → Review → QA). It provides a specific verb ('orchestrator') and resource ('development workflow'), though without sibling tools, differentiation isn't applicable. The purpose is well-defined but could be more concise about the core action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It mentions 'It does NOT call LLMs directly - that's Claude Code's responsibility,' which hints at a boundary but doesn't specify when this tool should be invoked versus other workflow tools. No prerequisites, timing, or exclusion criteria are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
- First observed
bmad-task
TDQS
With only one tool, there is no possibility of confusion or overlap between tools. The single tool 'bmad-task' has a clearly defined purpose as a workflow orchestrator, so agents cannot misselect between multiple options.
A single tool inherently has perfect naming consistency. The tool name 'bmad-task' follows a clear pattern (server_prefix-function), and with no other tools to compare against, there are no inconsistencies in naming conventions.
A single tool is generally too few for a server claiming to manage a complete development workflow with multiple stages (PO, Architect, SM, Dev, Review, QA). While the tool is described as an orchestrator, the lack of specialized tools for different workflow stages or operations suggests an under-scoped surface for the apparent domain.
The tool surface is severely incomplete for a workflow orchestrator domain. There are no tools for specific operations like creating tasks, updating statuses, managing artifacts directly, or handling approvals—only a single orchestrator tool. This will likely cause agent failures when trying to perform granular workflow actions.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
AI work orchestration for plans, tasks, teams, and coding-agent dispatch.
Project registry, behavioral specs, and engineering threads for AI coding agent workflows.
The AI orchestration agent for modern software teams.
AI-native project management + agent memory: tasks, sprints, risk, burnout, knowledge search.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceCoordinates specialized agents (Architecture, Quality, Cloud, Prompt) to plan, build, test, and deploy applications with self-healing capabilities, authentication, and analytics for autonomous software engineering workflows.1MIT
- AlicenseAqualityAmaintenanceOrchestrates multiple AI coding agents declaratively to automate software development workflows for engineering teams.121,107Apache 2.0
- AlicenseNot gradedqualityDmaintenanceProvides an AI-driven four-stage software development workflow with role management, enabling structured requirements analysis, design, implementation, and testing.1MIT
- FlicenseNot gradedqualityCmaintenanceOrchestrates multiple AI agents (Product Manager, Software Architect, Engineer, QA, Reviewer) to collaboratively plan, design, implement, review, and improve software development projects via MCP tools.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/cexll/bmad-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server