Board
A kanban board MCP server that lets Claude Code manage tasks through a local web UI, including claiming, submitting, and querying tasks with automatic git branch and PR creation.
README
Board — Kanban for Claude Code
A local-first kanban board that orchestrates Claude Code task execution. Create tasks in the UI, Claude Code picks them up via MCP tools or the built-in watcher, creates branches and PRs, and you review and merge — all from a single dashboard.
Features
- Four-column board: Pending → In Progress → In Review → Done
- Two execution paths: Manual (Claude uses MCP tools) or Watcher (auto-spawns
claude -p /next-task) - Branch-per-task: Each task gets its own git branch and PR
- Token exhaustion handling: Watcher detects quota errors, pauses with countdown, auto-resumes on reset
- Single-user, local-only: Runs on
127.0.0.1, SQLite storage, zero external dependencies - Serial execution: One task at a time for predictable, reviewable results
Prerequisites
- Node.js 20+
- pnpm 10+
- Claude Code CLI installed (
claudeon PATH) - GitHub CLI (
gh) installed and authenticated (gh auth login)
Quick Start
# Install dependencies
pnpm install
# Start the dev server
pnpm dev
# Open the board
open http://localhost:3000
On first launch, click + Project to register a git repository. Then create tasks and start the watcher.
MCP Installation
Register the Board MCP server with Claude Code so Claude can claim, submit, and query tasks:
claude mcp add board -- node /path/to/board/bin/mcp-server.ts
Or use the Settings page (/settings) in the UI — it shows the exact command with a copy button.
After registering, Claude Code can use these MCP tools:
| Tool | Purpose |
|---|---|
next-task |
Claim the highest-priority pending task |
submit-task |
Submit work for review (creates PR metadata) |
fail-task |
Mark a task as failed with error details |
get-task |
Query a task by ID |
list-tasks |
List tasks with optional project/status filters |
list-projects |
List all registered projects |
/board |
Slash command — quick task listing |
Development
pnpm dev # Start Next.js dev server
pnpm build # Production build
pnpm typecheck # TypeScript type checking (strict mode)
pnpm lint # ESLint
pnpm test # Unit + integration tests (Vitest)
pnpm test:watch # Tests in watch mode
pnpm test:e2e # End-to-end tests (Playwright)
Database
The SQLite database lives at ~/.board/board.db by default. Override with:
BOARD_DB_PATH=/custom/path.db pnpm dev
Logs
Structured logs are written to ~/.board/logs/board.log via pino. Log level can be adjusted:
BOARD_LOG_LEVEL=debug pnpm dev
Watcher Interval
For testing or faster iteration, override the watcher tick interval:
BOARD_WATCHER_INTERVAL_MS=5000 pnpm dev # 5s instead of 60s default
Architecture
Browser → Next.js Server (HTTP API + UI) → SQLite (WAL mode)
↕ shared lib/core
bin/mcp-server.ts ← Claude Code (stdio MCP)
Core design principles:
- Protocol-agnostic core —
lib/core/contains all business logic (state machine, repos). MCP and HTTP API are thin adapters over the same core. - Symmetric triggers — Manual slash commands and watcher spawns follow the same task lifecycle.
- Local-first — Listens on
127.0.0.1, SQLite single-file DB, no cloud dependencies.
Project Structure
app/
(ui)/ Board UI (page, settings, projects/new)
api/ REST API routes
components/
board/ Board-specific components
ui/ UI primitives (Button, Input, etc.)
lib/
core/ Protocol-agnostic core (state machine, repos, git, db)
mcp/ MCP server implementation
watcher/ Watcher scheduler + token detection
api/ API client + response helpers
hooks/ React hooks (SWR-based)
bin/
mcp-server.ts MCP entry point (Claude Code subprocess)
db/
schema.ts Drizzle ORM schema
tests/
unit/ Unit tests
integration/ API integration tests
e2e/ Playwright E2E tests
Testing
- Unit tests (
tests/unit/): Core logic — state machine, repos, detection patterns - Integration tests (
tests/integration/): API routes with real SQLite - E2E tests (
tests/e2e/): Full Playwright scenarios including watcher + token pause
E2E tests use stub claude and gh binaries to simulate Claude Code and GitHub CLI without real API calls.
Tech Stack
| Layer | Technology |
|---|---|
| Framework | Next.js 15 (App Router) + React 19 |
| Language | TypeScript 5.x (strict mode) |
| UI | Tailwind CSS v4 |
| Data Fetching | SWR |
| ORM | Drizzle ORM |
| Database | SQLite (better-sqlite3, WAL mode) |
| Validation | Zod |
| Logging | pino |
| Testing | Vitest + Playwright |
| Package Manager | pnpm |
License
Private project.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。