Board

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.

Category
Visit Server

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 (claude on 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:

  1. Protocol-agnostic corelib/core/ contains all business logic (state machine, repos). MCP and HTTP API are thin adapters over the same core.
  2. Symmetric triggers — Manual slash commands and watcher spawns follow the same task lifecycle.
  3. 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

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.

Official
Featured
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured