本地BMAD管理器

一个轻量级的本地管理器,通过模型上下文协议(MCP)暴露BMAD工具(get_bmad_agent, list_bmad_tasks),为开发者提供程序化访问BMAD代理指令和任务清单的功能。

  • by VictorDelamonica
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 VictorDelamonica/bmad-mcp

使用说明

BMAD MCP——本地BMAD管理器

一行描述:一个轻量级的本地管理器,通过模型上下文协议(MCP)公开BMAD工具(get_BMAD_agent,list_BMAD_tasks)。

目录

  • 项目概述
  • 存储库结构
  • 安装和快速启动
  • BMAD代理说明和示例用法
  • 发展和推广指导
  • 故障排除和下一步
  • 许可证

项目概述

此存储库包含一个基于Node.js的小型本地管理器,该管理器使用模型上下文协议(MCP)公开了几个与BMAD相关的工具。管理器的主要目的是提供对BMAD代理指令和当前任务清单的方便编程访问。它通过启动MCP服务器并注册两个工具来实现这一点: get_bmad_agent (从用户的BMAD安装中获取代理markdown)和 list_bmad_tasks (读取BMAD任务清单)。

该项目的目的是充当开发人员工具或LLM驱动的工作流与磁盘上BMAD安装之间的本地桥梁(默认情况下,代码指向 /Users/delamonicavictor/_bmad).开发人员在本地运行此服务,并将其集成到其他工具中,或直接调用其辅助逻辑以读取代理定义和任务列表。

BMAD代理是简单的Markdown文件,其中嵌入了激活指令和角色元数据。此回购 index.js 演示了如何在典型的BMAD文件夹布局中发现代理(例如: core/agents, gds/agents, bmm/agents, bmb/agents)并将原始markdown返回给调用者。典型的开发人员工作流程:安装依赖项,确保您的BMAD_ROOT(默认 /Users/delamonicavictor/_bmad)填充了代理文件 _config/task-manifest.csv,然后运行 node index.js 并将MCP服务器与您最喜欢的客户端或工具集成。

存储库结构

  • index.js --主入口。启动MCP服务器并注册 get_bmad_agent 和 list_bmad_tasks 工具。
  • package.json --最小清单(ES模块,依赖于 @modelcontextprotocol/sdk 和 zod).
  • README.md --(此文件)开发人员指南和快速入门。

外部(预期)BMAD根目录(不在仓库下)

  • 该代码要求在以下位置安装BMAD /Users/delamonicavictor/_bmad (由 BMAD_ROOT 内部恒定 index.js).该目录通常包含子文件夹,例如 core/agents, bmm/agents, gds/agents,以及 _config/task-manifest.csv.

安装和快速启动

  1. 从存储库根目录:
cd /Users/delamonicavictor/bmad-mcp
npm install
  1. 验证节点版本(建议使用节点18+):
node -v
  1. 运行本地MCP管理器:
node index.js

笔记:

  • package.json 此存储库中当前未定义任何 scripts 条目。跑 node index.js 直接。
  • index.js 是ES模块("type": "module" 在 package.json).
  • 如果您的BMAD安装在其他地方,请编辑 BMAD_ROOT 常数in index.js 或创建符号链接 /Users/delamonicavictor/_bmad.

BMAD代理说明和示例用法

代理文件是什么样子的

  • BMAD代理定义通常是Markdown文件(例如。, analyst.md 或 analyst.agent.md)包含角色元数据和激活指令。包括 index.js 在BMAD安装下的这些相对文件夹中搜索代理文件:
    • core/agents
    • gds/agents
    • bmm/agents
    • bmb/agents

此项目中存储代理的位置

  • 此存储库不包括 .github/agents 或本地代理文件。相反,它会从您的本地BMAD安装中读取代理,网址为 BMAD_ROOT (见上文)。如果要将代理保留在仓库中,请创建一个文件夹(例如 .github/agents)并更新 index.js 相应地搜索路径。

示例:使用Node快速获取代理markdown文件(读取本地文件)

创建一个小脚本来直接读取代理文件(这反映了 get_bmad_agent 确实如此):

// example/fetch-agent.js
import fs from 'fs';
import path from 'path';

const BMAD_ROOT = '/Users/delamonicavictor/_bmad';
const agentName = 'analyst';
const possiblePaths = [
  path.join(BMAD_ROOT, 'core/agents', `${agentName}.md`),
  path.join(BMAD_ROOT, 'core/agents', `${agentName}.agent.md`),
  // add other folders if needed
];

for (const p of possiblePaths) {
  if (fs.existsSync(p)) {
    console.log(fs.readFileSync(p, 'utf8'));
    process.exit(0);
  }
}
console.error(`Agent ${agentName} not found.`);
process.exit(2);

运行它:

node example/fetch-agent.js

调用MCP工具

  • index.js 注册了两个MCP工具: get_bmad_agent 和 list_bmad_tasks.
  • 此服务器使用 StdioServerTransport 其期望连接到通过stdin/stdout讲MCP协议的客户端(例如LLM集成或另一个MCP感知进程)。
  • 对于简单的测试和自动化,最好直接读取如上所示的代理文件,或者与您已经使用的MCP感知客户端进行交互。

发展和推广指导

  • 添加代理:在BMAD安装中的一个预期文件夹下创建Markdown文件(例如。, core/agents/analyst.md).遵循BMAD使用的代理格式(元数据+激活步骤)。
  • 将代理保存在仓库中:如果您希望将代理保存在此仓库中的源代码控制下(例如 .github/agents),添加该文件夹并更新 searchFolders 列入 index.js 包括它。
  • 添加脚本:您可以在中添加方便的npm脚本 package.json例如:
"scripts": {
  "start": "node index.js"
}
  • 测试:该仓库目前没有测试。如果您计划扩展MCP行为,请添加单元/集成测试。

故障排除和下一步

  • 常见故障:

    • ENOENT 阅读 _config/task-manifest.csv:确保 /Users/delamonicavictor/_bmad/_config/task-manifest.csv 存在并且可读。
    • 找不到代理:请确保代理标记存在于预期的文件夹或更新中 BMAD_ROOT/searchFolders 在 index.js.
    • 模块解析错误:运行 npm install 确保 @modelcontextprotocol/sdk 和 zod 已安装。建议使用节点18+支持ES模块。
  • 下一步:

    • 添加一个 start 脚本到 package.json.
    • (可选)制作 BMAD_ROOT 可通过环境变量配置 BMAD_ROOT 而不是硬编码的路径。
    • 添加一个小型MCP客户端示例,显示如果要与外部进程集成,如何以编程方式调用已注册的工具。

许可证

这个存储库的设计很小,也很宽松。建议许可证:MIT。


文件路径: /Users/delamonicavictor/bmad-mcp/README.md