mcp-tasks.el
用于浏览和编辑由管理员管理的任务的Emacs界面 mcp任务 命令行工具。
特性
- 任务浏览器:使用基于magit节的树视图的可视化任务层次结构
- 任务编辑器:用于编辑任务属性的基于小部件的表单界面
- 状态指示器:任务状态的清晰视觉指示器(打开/关闭/正在进行/已阻止)
- 任务类型:支持故事、任务、bug、功能和杂务
- 细化跟踪:任务优化状态的视觉指示器
- 独立使用:独立工作或作为AI仪表板的一部分
需求
- Emacs 27.1或更高版本
- mcp任务CLI工具 已安装并在PATH中可用
- 依赖关系(自动安装):
- parseedn (版本1.2.1+) - magit-section (4.0+版本)
安装
使用package.el
- 克隆存储库或下载软件包
- 将包目录添加到您的
load-path:
(add-to-list 'load-path "/path/to/emacs-mcp-tasks-el")
(require 'mcp-tasks)使用使用包
(use-package mcp-tasks
:load-path "/path/to/emacs-mcp-tasks-el"
:commands (mcp-tasks)
:custom
(mcp-tasks-command "mcp-tasks") ; or "bb mcp-tasks" if using Babashka
(mcp-tasks-query-limit 1000))手动安装
- 确保安装了依赖项:
- parseedn:在MELPA上可用 - magit-section:在MELPA上可用
- 将包添加到Emacs配置中:
(add-to-list 'load-path "/path/to/emacs-mcp-tasks-el")
(require 'mcp-tasks)用法
打开任务浏览器
从具有mcp任务的项目中的任何缓冲区:
M-x mcp-tasks这将打开一个任务浏览器,显示当前项目的任务层次结构。浏览器使用以下命令自动检测项目根 project.el 或 projectile.
任务浏览器界面
任务浏览器显示两级层次结构:
Story Title [status] [refinement-state]
├─ Task 1 [status] [type]
├─ Task 2 [status] [type]
└─ Task 3 [status] [type]状态指示器:
[open]-任务未启动[in-progress]-目前正在进行中[blocked]-被依赖项阻止[closed]-已完成
类型指示器:
[story]-包含子任务的史诗或故事[task]-标准任务[bug]-Bug修复[feature]-新功能[chore]-维护工作
精炼状态:
[unrefined]-需要设计/分解[refined]-有设计,准备工作[with-children]-关于儿童任务的故事
按键绑定
| 关键 | 行动 |
|---|---|
RET | 打开当前任务的任务编辑器 |
k | 删除该点的任务 |
g | 从mcp任务CLI刷新任务列表 |
q | 退出浏览器窗口 |
TAB | 切换截面可见性 |
n | 下一个任务 |
p | 上一个任务 |
任务编辑器
按 RET 在任何任务上打开任务编辑器。编辑器提供了一个用于修改任务属性的表单界面:
- 标题:任务标题
- 描述:详细的任务描述
- 类别:任务类别(工作流规范)
- 状态:当前状态(打开/进行中/阻止/关闭)
- 类型:任务类型(故事/任务/bug/功能/杂务)
- 设计:设计说明和实施计划
- 父级ID:父任务ID(用于子任务)
编辑器按钮:
[Save]-保存更改并关闭编辑器[Cancel]-关闭编辑器而不保存
定制
命令配置
如果 mcp-tasks CLI不在您的PATH中,或者您使用了像Babashka这样的包装器:
(setq mcp-tasks-command "bb mcp-tasks")查询限制
控制单个查询中检索到的最大任务数:
(setq mcp-tasks-query-limit 1000) ; Default: 1000对于大型项目,将此值调低以提高性能,如果需要查看更多历史任务,则将其调高。
定制组
所有选项都可以通过自定义界面获得:
M-x customize-group RET mcp-tasks RET工作流示例
- 打开浏览器:
M-x mcp-tasks从任何项目文件 - 导航:使用
n/p或箭头键浏览任务 - 查看详情:新闻
RET打开编辑器的任务 - 编辑任务:修改编辑器窗体中的字段
- 保存更改:单击
[Save]或按C-c C-c - 刷新:新闻
g从CLI重新加载任务
独立与人工智能仪表板集成
此软件包有两种使用方式:
独立模式
使用 mcp-tasks 独立浏览和编辑任何项目中的任务:
(require 'mcp-tasks)AI仪表板集成
与一起使用时 AI仪表板,任务浏览已集成到仪表板界面中。AI仪表板添加:
- Claude Code会话的实时任务跟踪
- 项目级任务聚合
- 活动任务突出显示
- 自动缓存失效
项目结构
emacs-mcp-tasks-el/
├── mcp-tasks.el # Main entry point with autoload
├── mcp-tasks-custom.el # Customization variables
├── mcp-tasks-cli.el # CLI wrapper and JSON/EDN parsing
├── mcp-tasks-browser.el # Task tree browser using magit-section
├── mcp-tasks-task-edit.el # Task editing interface with widgets
├── test/ # Test suite
│ ├── test-mcp-tasks-cli.el
│ ├── test-mcp-tasks-browser.el
│ └── test-mcp-tasks-task-edit.el
├── Makefile # Build and test automation
└── README.md # This file发展
运行测试
make test # Run all tests with verbose output
make test-quiet # Run tests showing only failures
make compile # Byte-compile all source files
make lint # Run checkdoc linter
make check # Compile and test运行特定测试
make test-one TEST=test-name
make test-one TEST='"test-pattern-*"'故障排除
“找不到mcp任务命令”
确保 mcp-tasks CLI已安装并位于PATH中。终端测试:
mcp-tasks list --format json如果使用Babashka,请配置以下命令:
(setq mcp-tasks-command "bb mcp-tasks")验证mcp任务安装
检查Emacs正在使用哪个命令:
M-: mcp-tasks-command RET验证安装和版本:
mcp-tasks --version确认该命令适用于JSON输出:
mcp-tasks list --format json --limit 1“找不到项目根”
该软件包使用 project.el 或 projectile 以检测项目根源。确保你的项目是:
- git仓库,或
- 包含a
.project文件,或 - 已在中配置
project-list-file或projectile-known-projects
权限错误
如果您看到与以下内容相关的“权限被拒绝”错误 .mcp-tasks/ 目录:
# Check permissions
ls -ld .mcp-tasks
# Fix if needed (adjust permissions as appropriate)
chmod 755 .mcp-tasks
chmod 644 .mcp-tasks/*.ednl常见原因:
- 由不同用户创建的文件
- umask设置不正确
- 网络文件系统权限问题
大型项目的性能调优
对于任务较多的项目,调整查询限制以提高性能:
;; Default is 100, reduce for faster initial display
(setq mcp-tasks-query-limit 50)
;; Or increase to see more tasks at once
(setq mcp-tasks-query-limit 200)注意:浏览器以增量方式加载任务,因此下限可以改善初始渲染。
调试CLI调用
所有CLI调用都记录到 *Messages* 缓冲区(自任务288以来):
M-x view-echo-area-messages RET查找以“mcp-tasks-cli:”开头的行,显示所使用的确切命令和参数。
要进行详细的调试,请评估:
;; Check what command would be executed
(mcp-tasks-cli--build-command "list" '(("format" . "json")))
;; Manually invoke CLI to see raw output
(mcp-tasks-cli--invoke "list" '(("format" . "json") ("limit" . "5")))任务未更新
按 g 在任务浏览器中,从mcp-tasks CLI刷新。浏览器不会自动刷新。
许可证
版权所有(C)2025 MCP任务贡献者
本计划和随附材料可在 Eclipse公共许可证2.0的条款,可在 https://www.eclipse.org/legal/epl-2.0/
SPDX许可证标识符:EPL-2.0
贡献
\[捐款准则待定\]
