项目简介

Beads (bd) 是一个为AI编码代理设计的轻量级图谱式问题追踪系统。它帮助AI代理解决长期任务中的“遗忘症”问题,通过管理任务、依赖和审计追踪,确保代理能够可靠地执行复杂的任务流。此仓库中的MCP服务器部分('beads-mcp')允许LLM客户端通过标准协议访问和操作Beads的问题数据和功能。

主要功能点

  • 任务管理: 允许AI代理创建、查看、更新和关闭任务,支持多种任务类型,如Bug、Feature、Task、Epic和Chore。
  • 依赖追踪: 支持四种依赖关系类型:'blocks'(硬性阻塞)、'related'(软性关联)、'parent-child'(史诗/子任务层级)和'discovered-from'(在执行某个任务时发现的新任务),有效管理任务顺序和阻止状态。
  • 就绪工作检测: 自动识别没有任何未解决阻塞依赖的“就绪”任务,AI代理可以轻松查询并获取下一步可执行的工作。
  • Git分布式存储: 任务数据以JSON Lines (JSONL) 格式存储在Git仓库中,实现跨机器同步和版本控制,并支持AI辅助的合并冲突解决。
  • 可扩展性: 允许通过直接操作SQLite数据库来扩展Beads的功能,添加自定义数据表,满足特定应用需求。
  • AI Agent友好: 设计上原生支持AI代理工作流,提供简洁的JSON输出接口和'discovered-from'等专为代理设计的依赖类型。
  • MCP服务集成: 将核心'bd'命令行工具的功能封装成MCP工具和资源,通过JSON-RPC协议供LLM客户端调用。

安装步骤

  1. 安装bd命令行工具:

    • 推荐快速安装(适用于macOS/Linux):
      curl -fsSL https://raw.githubusercontent.com/steveyegge/beads/main/install.sh | bash
    • 手动安装(需要Go 1.21+):
      go install github.com/steveyegge/beads/cmd/bd@latest

    请确保'bd'命令安装完成后,其可执行文件所在的路径已添加到您的系统PATH环境变量中。

  2. 安装Beads MCP服务器模块:

    pip install beads-mcp

    (如果您从GitHub仓库的源码安装,请在仓库根目录运行:'pip install ./integrations/beads-mcp')

  3. 初始化Beads数据库 (在您的项目根目录中运行,例如您的Git仓库):

    bd init

    这将在当前目录下创建一个名为'.beads/'的目录,并在其中生成一个项目专属的SQLite数据库文件(例如'.beads/your_project_name.db'),同时设置默认的任务ID前缀。

服务器配置

MCP客户端需要配置启动命令来运行Beads MCP服务器。以下是配置示例,您需要将其整合到您的MCP客户端的配置中:

{
  "name": "Beads",
  "command": ["python", "-m", "beads_mcp.server"],
  "args": [],
  "description": "Beads MCP服务器,提供依赖感知的问题追踪功能,作为AI代理的记忆和任务管理系统。",
  "context_filter": {
    "include": ["beads://quickstart"],
    "exclude": []
  }
}

参数注释:

  • 'name': MCP服务器在客户端中的显示名称,此处设置为"Beads"。
  • 'command': 用于启动Beads MCP服务器进程的命令。'python -m beads_mcp.server' 会以模块方式运行服务器。
  • 'args': 启动命令的额外参数列表。当前版本默认不带任何额外参数。
  • 'description': 对MCP服务器功能的简短描述,帮助LLM客户端理解其用途。
  • 'context_filter': 定义了客户端应从服务器接收或过滤掉哪些上下文信息。'include: ["beads://quickstart"]' 表示客户端应加载Beads快速入门指南资源。

基本使用方法

一旦Beads MCP服务器成功运行并通过您的LLM客户端连接,LLM客户端即可通过JSON-RPC协议调用其公开的工具和访问资源。

LLM客户端可以执行的操作包括:

  • 获取就绪任务: 调用 'ready' 工具,查询当前没有任何阻塞依赖且可立即开始执行的任务。这有助于AI代理安排和执行下一步工作。
  • 创建新任务: 调用 'create' 工具,记录在工作过程中发现的新问题、需求或子任务。
  • 更新任务状态: 调用 'update' 工具,修改任务的状态(例如设置为'in_progress'表示正在处理),更新优先级、标题或分配给特定负责人。
  • 关闭任务: 调用 'close' 工具,将任务标记为已完成,并提供完成原因。
  • 添加任务依赖: 调用 'dep' 工具,在任务之间建立新的依赖关系,例如声明任务A阻塞任务B。
  • 查看快速入门指南: 访问 'beads://quickstart' 资源,获取详细的使用说明和示例。
  • 获取系统统计: 调用 'stats' 工具,获取包括总任务数、开放任务、进行中任务、已关闭任务、阻塞任务和就绪任务等在内的统计信息。
  • 查看阻塞任务: 调用 'blocked' 工具,获取所有当前处于阻塞状态的任务,并显示是哪些任务阻塞了它们。

信息

分类

开发者工具