问题看板MCP服务器

一个具有内置工程约束和持久化记忆的AI原生问题看板系统,通过已完成任务自动优化后续任务处理效率。

  • by AlexiaChen
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 AlexiaChen/task-queue-mcp

使用说明

发布看板MCP服务器

具有内置线束工程和持久内存的AI原生问题看板-- 每一项已完成的任务都会使下一项任务更快、更安全、更智能。

为什么存在

大多数AI编码代理在没有内存的情况下逐个问题地工作。他们犯同样的错误, 错过同样的边缘案例,忘记同样的陷阱——每一次。

这个项目解决了这个问题。它结合了多界面看板(Web UI、TUI、CLI) 带着一个 主控程序 AI代理连接到的服务器, 一 持久存储器系统 (FTS5全文搜索,BM25排名),a 时态知识图 (具有时间范围有效性的主谓宾语三元组),以及 实施的操作手册 工程利用:结构化质量 门、人在环检查点和复合学习系统 跨问题积累项目知识。

结果:随着时间的推移,你的人工智能代理在你的项目上表现得越来越好-- 而无需你付出任何额外的努力。

运作原理

You create issues ──► AI agent picks them up ──► Quality improves automatically

                    ┌─────────────────────────────────────┐
                    │         The Compound Loop            │
                    │                                      │
                    │  [pending]                            │
                    │     │  Load LEARNINGS.md              │
                    │     │  Search memory (BM25)           │
                    │     │  Check past mistakes + context  │
                    │     ▼                                 │
                    │  [doing]                              │
                    │     │  Research → Implement → Review  │
                    │     │  Two-pass quality gate          │
                    │     ▼                                 │
                    │  [finished]                           │
                    │     │  Capture learnings ◄── gotchas  │
                    │     │  Store memories ◄── context     │
                    │     │  Knowledge persists             │
                    │     ▼                                 │
                    │  ──► Next issue inherits knowledge    │
                    └─────────────────────────────────────┘

看板 pending → doing → finished 状态流直接映射到 复合工程循环: Plan → Work → 评估→ 复合物.学习 步骤是使每个循环在最后复合的原因。

快速开始

# Docker (recommended)
docker pull ghcr.io/alexiachen/issue-kanban-mcp:latest
docker run -d -p 9292:9292 -v kanban-data:/app/data ghcr.io/alexiachen/issue-kanban-mcp:latest

# Or build from source
git clone https://github.com/AlexiaChen/issue-kanban-mcp.git
cd issue-kanban-mcp
make build-all    # builds server + tui + cli → ./bin/
make run           # starts server on :9292

打开http://localhost:9292--你在跑。

四个接口,一个后端

接口 二进制 最适合
Web用户界面 (嵌入服务器中) 浏览器中的可视化看板管理
文本用户界面 issue-kanban-tui 带有键盘导航的终端原生看板
命令行界面 issue-kanban-cli 脚本编写、CI/CD集成、快速操作
主控程序 (内置于服务器中) AI代理(Claude、Copilot、Gemini等)

所有四个接口都使用相同的REST API和SQLite数据库。1的变化 在其他人身上立即可见。

Web用户界面

打开http://localhost:9292.带有拖放功能的完整看板、项目管理、, 问题创建/编辑、优先级管理和5秒自动刷新。

文本用户界面

./bin/issue-kanban-tui --server http://localhost:9292

终端中的三列看板。创建、编辑、删除和确定优先级 在不离开命令行的情况下出现问题。

命令行界面

./bin/issue-kanban-cli projects list
./bin/issue-kanban-cli issues list 1 --status=pending
./bin/issue-kanban-cli issues create 1 --title="Fix auth bug" --priority=high
./bin/issue-kanban-cli issues prioritize 3   # move to front

MCP(用于AI代理)

服务器通过STDIO或HTTP/SSE传输公开16个MCP工具(8个看板+4个内存+4个三元组)和4个MCP资源。 AI代理自主连接和处理问题。


利用:人工智能质量如何复合

本节解释了当AI代理处理问题时,幕后会发生什么。 您不需要配置任何这些——它内置于代理指令中。

该项目附带了 作战行动手册 (instructions/copilot-instructions.md) 它实现了三层线束工程:

1.质量门(每期)

在将任何问题标记为“已完成”之前,代理会运行 两次通过自我审查:

  • 通过1(关键):SQL注入、竞争条件、XSS、未验证的输入, LLM输出信任边界违规
  • 通行证2(信息):死代码、测试缺口、幻数、完整性缺口

机械问题是自动修复的。审判的呼唤归于人类。

2.人在环路检查站

代理人 从不 标记未经人工批准的问题已完成:

Agent: "Issue #42 — review complete."
  → ✅ Mark as finished
  → 🔧 Improvements needed (describe what to change)

这不是一个建议,而是工作流程中的一道硬门。

3.知识复合(LEARNINGS.md)

每个问题完成后,代理都会评估所学到的内容:

  • 可能重复出现的错误模式
  • 图书馆浪费时间
  • 基于非显而易见推理的架构决策
  • 人类纠正了什么(代理人的盲点)

学习内容记录在 LEARNINGS.md 带有触发关键字。开始之前 这 下一个 问题,代理加载此文件并将关键字与 新一期的标题和描述。相关学习会自动应用。

超过50个问题,这可以防止数小时的重复错误——你无需付出任何努力。

4.持久内存(BM25搜索)

除了基于文件的学习,代理还有 持久存储器系统 由...支持 SQLite FTS5,BM25排名。这提供了一种不同的知识:

LEARNINGS.md 存储系统
错误驱动模式 丰富的上下文知识
关键字触发匹配 全文BM25搜索
Git跟踪,人工可编辑 数据库存储,可通过MCP查询
结构化条目(触发器→ 行动) 自由形式(决定、事实、偏好、事件)

它们如何在循环中协同工作:

  • 每期发行前:代理加载LEARNINGS.md以避免gotcha,并且 搜索内存(memory_search)相关上下文——过去的决策、代码库 事实、用户偏好、架构模式。
  • 每期之后:代理在learnings.md中捕获错误驱动的学习 AND存储更广泛的背景(做出的决定、发现的事实、记录的偏好) 通过 memory_store.

存储系统支持6类: decision, fact, event, preference, advice, general --每个都有优先级检索的重要性评分(1-10)。

5.时态知识图(三元组)

代理可以存储和查询 主谓宾语三元组 具有时间语义:

(auth-module, depends_on, jwt-library)  valid: 2024-01-01 → ∞ (active)
(auth-module, status, "needs-refactor")  valid: 2024-03-15 → 2024-04-01 (superseded)
(auth-module, status, "refactored")      valid: 2024-04-01 → ∞ (active)
  • 时态查询:“3月20日的情况如何?”→ 时间点查找
  • 自动失效:与一起储存时 replace_existing=true,老三人组 valid_to 设置为新的三元组 valid_from (交易)
  • [valid_from, valid_to) 语义学:封闭的开放区间防止双重匹配

这为代理提供了一个结构化的、可查询的项目发展模型-- 不仅是现在的真实情况,还有当时的真实情况。

四层知识

层 文件 范围 它如何增长
知识图 SQLite数据库(通过MCP) 每个项目 代理存储时间三元组(实体关系)
持久内存 SQLite数据库(通过MCP) 每个项目 代理在每次问题后存储上下文
工作记忆 LEARNINGS.md 每个项目 代理捕获错误驱动的模式
项目惯例 AGENTS.md 每个项目 由LEARNINGS.md推广(≥3场比赛)
全球剧本 ~/.copilot/copilot-instructions.md 所有项目 跨项目模式

每次晋升都是人为控制的。代理人提议;你决定。


安装

Docker(推荐)

docker pull ghcr.io/alexiachen/issue-kanban-mcp:latest

docker run -d \
  --name issue-kanban-mcp \
  -p 9292:9292 \
  -v kanban-data:/app/data \
  ghcr.io/alexiachen/issue-kanban-mcp:latest

来源

git clone https://github.com/AlexiaChen/issue-kanban-mcp.git
cd issue-kanban-mcp
make build-all   # server + tui + cli → ./bin/

服务器二进制文件是静态编译的(CGO_ENABLED=0)没有动态依赖关系。


运行模式

模式 命令 你得到什么
HTTP ./bin/issue-kanban-mcp -mcp=http Web用户界面+REST API+MCP SSE
工作室 ./bin/issue-kanban-mcp -mcp=stdio MCP over stdin/stdout(用于本地AI客户端)
两者皆有 ./bin/issue-kanban-mcp -mcp=both 以上所有

只读模式(默认)

默认情况下,MCP服务器仅公开 6安全工具: project_list, issue_list, issue_update, memory_search, memory_list, triple_query这意味着AI代理可以读取问题, 更新状态、搜索记忆和查询知识图,但不能创建或删除任何内容。

要公开所有16个工具(包括创建/删除问题、内存和三元组):

./bin/issue-kanban-mcp -readonly=false

MCP集成

克劳德桌面版

添加 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "issue-kanban": {
      "command": "/path/to/issue-kanban-mcp",
      "args": ["-mcp=stdio", "-db=/path/to/tasks.db"]
    }
  }
}

GitHub Copilot命令行界面

添加 ~/.copilot/mcp-config.json:

STDIO(本地二进制):

{
  "mcpServers": {
    "issue-kanban": {
      "type": "stdio",
      "command": "/path/to/issue-kanban-mcp",
      "args": ["-mcp=stdio", "-db=/path/to/tasks.db"],
      "tools": ["*"]
    }
  }
}

SSE(Docker或远程):

{
  "mcpServers": {
    "issue-kanban": {
      "type": "sse",
      "url": "http://localhost:9292/sse",
      "tools": ["*"]
    }
  }
}

或者使用交互式设置: copilot mcp add

部署Agent操作手册

为了使复合工程循环发挥作用,部署操作手册:

mkdir -p ~/.copilot
cp instructions/copilot-instructions.md ~/.copilot/copilot-instructions.md

然后告诉你的AI代理: “处理项目X中的所有问题” --它处理其余的事情。


MCP工具

看板工具

工具 参数 模式
project_list -- 只读
issue_list project_id, status? 只读
issue_update task_id, status 只读
project_create name, description? 管理员
project_delete project_id 管理员
issue_create project_id, title, description?, priority? 管理员
issue_delete task_id 管理员
issue_prioritize task_id 管理员

内存工具

工具 参数 模式
memory_search project_id, query, category?, limit? 只读
memory_list project_id, category?, limit? 只读
memory_store project_id, content, category?, summary?, tags?, importance? 只读
memory_delete project_id, memory_id 管理员

三重工具(时态知识图)

工具 参数 模式
triple_query project_id, subject?, predicate?, active_only?, at_time?, limit?, offset? 只读
triple_store project_id, subject, predicate, object, valid_from?, confidence?, source_memory_id?, replace_existing? 只读
triple_invalidate project_id, triple_id 管理员
triple_delete project_id, triple_id 管理员

MCP资源

URI 描述
project://list 所有有统计数据的项目
project://{id} 项目详情
project://{id}/issues 项目中的所有问题
issue://{id} 问题详细信息

REST API

项目

方法 端点 描述
得到 /api/projects 列出所有项目
职位 /api/projects 创建项目
得到 /api/projects/{id} 获取项目
删除 /api/projects/{id} 删除项目
得到 /api/projects/{id}/issues 获取项目问题
得到 /api/projects/{id}/stats 获取项目统计信息

问题

方法 端点 描述
职位 /api/issues 创建问题
得到 /api/issues/{id} 获取问题
补丁 /api/issues/{id} 更新状态
PUT /api/issues/{id} 编辑问题(仅待定)
删除 /api/issues/{id} 删除问题
职位 /api/issues/{id}/prioritize 移到前面

回忆

方法 端点 描述
职位 /api/projects/{id}/memories 存储内存
得到 /api/projects/{id}/memories 列出回忆(category?, limit?)
得到 /api/projects/{id}/memories/search 搜索记忆(q, category?, limit?)
删除 /api/projects/{id}/memories/{mid} 删除内存

Triples(时态知识图)

方法 端点 描述
职位 /api/projects/{id}/triples 三人店(replace_existing? 自动失效)
得到 /api/projects/{id}/triples/{tid} 获得三倍
得到 /api/projects/{id}/triples 查询三元组(subject?, predicate?, active_only?, at_time?)
补丁 /api/projects/{id}/triples/{tid} 使三元组无效
删除 /api/projects/{id}/triples/{tid} 删除三元组

配置

标志/环境变量 默认值 描述
-port / PORT 9292 HTTP服务器端口
-db / DB_PATH ./data/tasks.db SQLite数据库路径
-mcp / MCP_MODE http stdio / http / both
-readonly / MCP_READONLY true false 公开管理MCP工具

项目结构

cmd/
├── server/main.go           # MCP + HTTP server
├── tui/main.go              # Terminal UI
└── cli/main.go              # Command-line interface
internal/
├── api/handlers.go          # REST API (23 endpoints)
├── apiclient/client.go      # Shared REST client (TUI & CLI)
├── mcp/
│   ├── server.go            # MCP server setup
│   ├── tools.go             # 16 MCP tools (8 kanban + 4 memory + 4 triple)
│   └── resources.go         # 4 MCP resources
├── memory/
│   ├── models.go            # Memory data model, categories, DTOs
│   ├── storage.go           # Storage interface (6 methods)
│   ├── manager.go           # Business logic (validation, dedup, BM25 search)
│   ├── mock_storage.go      # Mock for unit tests
│   ├── triple_models.go     # Triple (KG) data model, temporal semantics
│   ├── triple_storage.go    # TripleStorage interface (6 methods)
│   ├── triple_manager.go    # Triple business logic (validation, temporal)
│   └── mock_triple_storage.go # Mock for triple unit tests
├── queue/
│   ├── manager.go           # Kanban business logic layer
│   ├── models.go            # Project/Issue data models
│   └── mock_storage.go      # Mock storage for tests
├── storage/sqlite.go        # SQLite (pure Go, no CGO) — implements queue + memory + triple storage
├── tui/                     # Bubbletea TUI
└── web/static/              # Embedded SPA
instructions/
└── copilot-instructions.md  # Agent operational playbook
AGENTS.md                    # Project knowledge base
LEARNINGS.md                 # Compound learning memory

发展

make test             # Unit tests (mock storage, no DB required)
make test-coverage    # Coverage report (HTML)
make e2e              # End-to-end tests (starts server automatically)
make lint             # golangci-lint
make fmt              # gofmt
make dev              # Auto-reload with air

示例

make example-stdio    # STDIO client demo
make example-client   # SSE client demo (start server first with make run)

智力根源

本项目中的线束工程方法来自:

  • 复合工程 --这个想法 每个工作单元都应该通过明确的知识捕获使下一个更容易。
  • 堆栈 --煮湖(AI制造 完整性低)、构建前搜索、用户主权、证据优先审查。
  • 宫殿 --有史以来得分最高的AI记忆系统。而且它是免费的。
  • 宫殿书籍 -AI记忆的第一原则。
  • 脑 -Garry's Opinionated OpenClaw/Hermes Agent Brain。

这些原则直接嵌入代理工作流程中,而不是作为哲学-- 作为操作步骤,代理自动执行。

许可证

麻省理工学院