Skip to main content
Glama
fellam
by fellam

taskboard-mcp

A small MCP server for task/todo tracking — structured, deterministic, no AI involved in the tool itself. Built for LLM agents (or anyone) that need to track work across sessions without paying the token cost of hand-editing a growing text file on every status change.

Why

Text-file task trackers (a TASKS.md you hand-edit) work, but get expensive to maintain as they grow — every update means finding and rewriting a chunk of existing text. A proper tool takes a few structured arguments (task_update(id, state="done")) instead, and does the file/DB I/O itself.

Related MCP server: MCP Project Manager

Design

  • TypeScript, built on the official MCP SDK.

  • SQLite-backed storage (better-sqlite3) — structured, queryable, deterministic.

  • Tasks are scoped by project/board, so one server instance can track work across many unrelated projects — scope is a first-class filter on every tool.

  • Communicates over stdio, like any standard MCP server.

Tools

Tool

Arguments

Description

task_add

scope, content

Create a new task (starts in state open).

task_update

id, and any of scope, content, state

Update fields on an existing task.

task_list

optional scope, state

List tasks, filtered by scope and/or state.

task_complete

id

Shorthand for task_update(id, state="done").

task_delete

id

Permanently delete a task.

Valid state values: open, in_progress, done.

Every task has: id, scope, content, state, created_at, updated_at, completed_at.

Install

git clone https://github.com/fellam/taskboard-mcp.git
cd taskboard-mcp
npm install
npm run build

This produces dist/index.js, a runnable Node entrypoint that speaks MCP over stdio.

Usage

Storage location

By default, data is stored in a SQLite file at ~/.taskboard-mcp/tasks.db. Override with the TASKBOARD_DB_PATH environment variable to point at a different file (or :memory: for an ephemeral in-process database, mainly useful for testing).

Wiring into Claude Code (.mcp.json)

Add this to your project's .mcp.json (or claude_desktop_config.json for Claude Desktop):

{
  "mcpServers": {
    "taskboard": {
      "command": "node",
      "args": ["/absolute/path/to/taskboard-mcp/dist/index.js"],
      "env": {
        "TASKBOARD_DB_PATH": "/absolute/path/to/your/tasks.db"
      }
    }
  }
}

Omit env.TASKBOARD_DB_PATH to use the default location. Restart your MCP client after editing the config.

Running directly

npm start          # runs the built server (dist/index.js) over stdio
npm run dev         # runs src/index.ts directly via tsx, no build step

Development

npm test            # runs the test suite (node's built-in test runner + tsx)
npm run build        # type-checks and compiles src/ to dist/

License

MIT — see LICENSE.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers