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.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.