Skip to main content
Glama
0Thomas1

Kanban MCP Server

by 0Thomas1

Kanban-MCP

A Model Context Protocol (MCP) server for managing Kanban-style tasks with analytics, built using Node.js, TypeScript, and MongoDB (via Mongoose).

Features

  • Create, update, and manage tasks with priorities, tags, and statuses (todo, inProgress, done)

  • Task analytics: lead time, cycle time, and status distribution

  • MCP-compliant server with stdio transport

  • MongoDB integration with user-based task filtering

  • Task caching for performance

Related MCP server: Project Tracking MCP Server

Project Structure

Kanban-MCP/
├── src/
│   ├── index.ts            # Main MCP server logic
│   └── utils/
│       ├── mongoose.ts     # Mongoose DB utilities
│       ├── Task.d.ts       # Task type definitions
│       └── User.d.ts       # User type definitions
├── build/                  # Compiled JS output
├── .vscode/mcp.json        # MCP server config
├── package.json            # NPM dependencies and scripts
├── tsconfig.json           # TypeScript config

Getting Started

Prerequisites

  • Node.js (v18+ recommended)

  • MongoDB instance

Setup

  1. Clone the repository:

    git clone <repo-url>
    cd Kanban-MCP
  2. Install dependencies:

    npm install
  3. Configure environment variables:

    • Create a .env file in the root directory with:

      MONGODB_URI=your_mongodb_uri
      KANBAN_USERNAME=your_username
      DBNAME=your_db_name
  4. Build the project:

    npm run build
  5. Start the MCP server: When starting the repo, VS Code will prompt you to start the MCP server.

Usage

  • The server exposes MCP tools for creating, moving, and prioritizing tasks.

  • Analytics can be retrieved via the tasks-analytics prompt.

  • See src/index.ts for tool and prompt definitions.

Development

  • Source code is in src/, compiled output in build/.

  • TypeScript is used for type safety and modern JS features.

  • Use the provided VS Code MCP config for local development.

License

MIT

Tech Stack

  • Node.js: JavaScript runtime for server-side logic

  • TypeScript: Strongly-typed language for safer code

  • MongoDB: NoSQL database for task storage

  • Mongoose: ODM for MongoDB integration

  • VS Code MCP: Integration for Model Context Protocol tools

Available Tools

4 tools
add-tagC

add tags to a tasks

ParametersJSON Schema
NameRequiredDescriptionDefault
task_tagYes
task_idYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states the tool adds tags, implying a mutation operation, but doesn't disclose behavioral traits like whether tags are appended or replaced, if there are rate limits, permission requirements, or what happens on success/failure. The description adds minimal value beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise (three words) and front-loaded with the core action. However, the grammatical error ('tasks' instead of 'task') slightly reduces clarity. It earns its place by stating the purpose but could be more polished.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and 0% schema description coverage for a mutation tool with 2 parameters, the description is incomplete. It lacks details on behavior, parameter meanings, return values, and error handling, leaving significant gaps for the agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the schema provides no parameter documentation. The description mentions 'tags' and 'tasks' but doesn't explain what 'task_tag' and 'task_id' parameters represent, their formats, or constraints. It adds minimal semantic value beyond what's inferable from parameter names.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states the action ('add tags') and target ('to a tasks'), but has grammatical issues ('tasks' should be singular) and lacks specificity about what kind of tags or tasks. It distinguishes from siblings like 'create-task' and 'move-task' by focusing on tagging rather than creation or movement, but doesn't clearly differentiate from potential tagging alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided about when to use this tool versus alternatives. The description doesn't mention prerequisites (e.g., task must exist), exclusions, or comparisons with sibling tools. The agent must infer usage from the tool name alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create-taskC

create a new todo task

ParametersJSON Schema
NameRequiredDescriptionDefault
task_titleYes
descriptionYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate openWorldHint=true, idempotentHint=false, and destructiveHint=false, which the description doesn't contradict. The description adds minimal behavioral context by implying creation of a new entity, but it doesn't elaborate on permissions, side effects, or response format. With annotations covering key traits, the description adds some value but lacks depth.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence with no wasted words. It's front-loaded and directly states the action, making it easy to parse quickly. This is an example of appropriate brevity for a straightforward tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and minimal parameter details, the description is incomplete. It doesn't cover what the tool returns, error conditions, or how it interacts with the system. For a creation tool with no output schema, more context on the result or usage would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has two required parameters with 0% description coverage, so the schema provides no semantic details. The description doesn't explain what 'task_title' or 'description' represent, their formats, or constraints. However, for a simple creation tool with only two parameters, the baseline is adequate but leaves room for improvement.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'create a new todo task' clearly states the verb ('create') and resource ('todo task'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'add-tag' or 'move-task' beyond the basic action, and the title annotation repeats the same phrase, making it somewhat redundant rather than distinctive.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, such as needing an existing task list, or compare it to siblings like 'add-tag' for modifying tasks. This leaves the agent with no context for selection beyond the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

move-taskB

move a task to a different status

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
new_statusYes

TDQS

B3.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide openWorldHint=true (allows unknown statuses), idempotentHint=false (non-idempotent), and destructiveHint=false (non-destructive). The description adds no behavioral details beyond this, but since annotations cover key traits (non-destructive, non-idempotent), the bar is lower. No contradiction exists, and the description doesn't add extra context like rate limits or auth needs, but it doesn't mislead either.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence: 'move a task to a different status'. It's front-loaded with the core action, has zero waste, and is appropriately sized for the tool's complexity. Every word earns its place, making it highly concise and well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 2 parameters with 0% schema coverage, no output schema, and annotations covering safety (non-destructive) and idempotency, the description is minimal but adequate for a simple status-change tool. It lacks details on return values, error cases, or side effects, but annotations help fill gaps. For this complexity, it's borderline complete but could be more informative.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it adds no parameter details. It implies 'task_id' and 'new_status' usage but doesn't explain semantics (e.g., what 'new_status' values mean or format for 'task_id'). With 2 parameters and no schema descriptions, baseline is low, but the enum for 'new_status' provides some structure. The description offers minimal value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'move a task to a different status' clearly states the action (move) and resource (task), but it's somewhat vague about what 'move' entails—it could imply changing status, reassigning, or relisting. It distinguishes from siblings like 'create-task' (creation vs. modification) and 'add-tag' (tagging vs. status change), but lacks specificity on the exact operation beyond the title restatement.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., task must exist), exclusions (e.g., cannot move to same status), or compare to siblings like 'set-priority' for priority changes. Usage is implied by the action but not explicitly defined, leaving gaps for an agent to infer context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set-prioityC

set a task to a different priority

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYes
new_priorityYes

TDQS

C2.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide hints (openWorldHint: true, idempotentHint: false, destructiveHint: false), covering safety and idempotency. The description adds no behavioral context beyond this, such as error handling, permission requirements, or side effects. It doesn't contradict annotations, but fails to supplement them with additional insights.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It's front-loaded and appropriately sized for a simple tool, though it could be more informative without sacrificing brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's moderate complexity (2 parameters, no output schema) and annotations covering key hints, the description is minimally adequate. It states what the tool does but lacks details on outcomes, error cases, or integration with siblings, leaving gaps in contextual understanding for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only implies parameters without detailing them. It mentions 'task' and 'priority', aligning with 'task_id' and 'new_priority', but adds no meaning beyond the schema's enum for priority or task_id format. Baseline 3 is appropriate as the schema defines parameters clearly despite low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'set a task to a different priority' clearly states the action (set) and resource (task priority), but it's vague about scope and doesn't distinguish from siblings like 'move-task' or 'add-tag'. It restates the title verbatim, lacking specificity beyond the basic operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., task must exist), exclusions, or compare to siblings like 'move-task' for context changes. The description offers only the basic function without contextual usage advice.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 1 tool updatev1.0.0
    • Addedadd-tag
  2. 3 tool updates
    • First observedcreate-task
    • First observedmove-task
    • First observedset-prioity

TDQS

B3/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose: add-tag modifies metadata, create-task creates new items, move-task changes workflow status, and set-prioity adjusts priority levels. There is no overlap in functionality, making tool selection straightforward for an agent.

Naming Consistency3/5

The naming is mixed: add-tag and move-task use verb-noun patterns, while create-task and set-prioity use verb-noun but with inconsistent spelling (e.g., 'prioity' vs. 'priority'). This reduces predictability, though the tools remain readable.

Tool Count4/5

With 4 tools, the count is appropriate for a kanban server, covering core operations like task creation, status movement, tagging, and priority setting. It is slightly lean but reasonable for the domain, lacking only minor features like task deletion or listing.

Completeness3/5

The toolset covers basic CRUD-like operations but has notable gaps: there is no tool to delete tasks, list tasks, or retrieve task details. This could lead to agent failures when full lifecycle management is needed, though core workflows are supported.

Maintenance

ActivityInactive
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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/0Thomas1/Kanban-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server