Skip to main content
Glama
hevener10

MCP TODO Checklist Server

by hevener10

MCP TODO Checklist

An MCP server deploying a checklist system for task management on Claude Desktop. The system allows you to create and manage multiple task lists, with support for priorities, due dates and tags.

Features

  • ✅ Creating and managing multiple to-do lists

  • 📌 Priority support (low, medium, high)

  • 📅 Due dates for tasks

  • 🏷️ Tag system for organization

  • 👥 Sharing lists between users

  • 💾 Persistent file system storage

Related MCP server: Todo MCP Server

Requirements

  • Node.js 18 or higher

  • NPM 8 or higher

Installation

Method 1: Local Installation (Development)

  1. Clone the repository

cd C:\workspace\mcp
git clone (seu-repositório) mcp-mr-checklist
cd mcp-mr-checklist
  1. Install dependencies and compile

npm install
npm run build
  1. Configure in claude_desktop_config.json :

{
  "servers": {
    "todo-checklist": {
      "type": "command",
      "command": "node dist/index.js",
      "cwd": "C:\\workspace\\mcp\\mcp-mr-checklist",
      "config": {
        "storagePath": "./data",
        "commandTimeout": 60000
      }
    }
  }
}

Method 2: Global Installation (Use)

  1. Install the package globally

npm install -g @hevener/server-todo-checklist
  1. Configure in claude_desktop_config.json :

{
  "servers": {
    "todo-checklist": {
      "type": "command",
      "command": "mcp-server-todo-checklist",
      "config": {
        "storagePath": "C:\\Users\\SEU_USUARIO\\AppData\\Local\\claude-todo-checklist",
        "commandTimeout": 60000
      }
    }
  }
}

Commands Available in Claude

Create a new list

/todo_create {
  "title": "Minha Lista",
  "description": "Descrição opcional da lista"
}

Add a task

/todo_add {
  "listTitle": "Minha Lista",
  "taskTitle": "Nova Tarefa",
  "priority": "high",
  "dueDate": "2024-01-20",
  "tags": ["trabalho", "urgente"]
}

List all lists

/todo_list

View details of a list

/todo_show {
  "listTitle": "Minha Lista"
}

Mark task as complete

/todo_complete {
  "listTitle": "Minha Lista",
  "taskTitle": "Nova Tarefa"
}

Project Structure

src/
├── index.ts           # Ponto de entrada do servidor
├── commands.ts        # Definição dos comandos disponíveis
├── service/          
│   └── ChecklistService.ts  # Lógica de negócio
├── storage/
│   └── index.ts      # Implementação do armazenamento
└── types/
    ├── ChecklistItem.ts     # Tipos para itens
    └── index.ts            # Tipos principais

Data Structure

Checklist

interface Checklist {
  id: string;
  title: string;
  description?: string;
  items: ChecklistItem[];
  owner: string;
  shared?: string[];
  createdAt: Date;
  updatedAt: Date;
}

Task (ChecklistItem)

interface ChecklistItem {
  id: string;
  title: string;
  description?: string;
  completed: boolean;
  dueDate?: Date;
  priority: 'low' | 'medium' | 'high';
  tags: string[];
  createdAt: Date;
  updatedAt: Date;
}

Development Scripts

# Compilar o projeto
npm run build

# Executar em modo desenvolvimento
npm run dev

# Observar alterações e recompilar
npm run watch

# Iniciar o servidor compilado
npm start

Settings

In the claude_desktop_config.json file, you can configure:

  • storagePath : Directory where data will be stored

  • commandTimeout : Maximum command execution time in milliseconds (default: 60000)

Technologies Used

  • TypeScript

  • Model Context Protocol SDK

  • Zod (data validation)

  • File-based storage system

License

Distributed under the MIT License. See LICENSE for more information.

Available Tools

5 tools
todo_addC

Adiciona uma nova tarefa à lista

ParametersJSON Schema
NameRequiredDescriptionDefault
listTitleYesTítulo da lista
taskTitleYesTítulo da tarefa
priorityNoPrioridade da tarefa
dueDateNoData de vencimento (YYYY-MM-DD)
tagsNoTags da tarefa

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries full burden for behavioral disclosure. While 'Adiciona' implies a write/mutation operation, the description doesn't disclose any behavioral traits like whether this requires specific permissions, what happens on duplicate tasks, whether the operation is idempotent, or what the response looks like. For a mutation tool with zero annotation coverage, this is a significant gap.

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 in Portuguese that directly states the tool's purpose without any wasted words. It's appropriately sized and front-loaded with the core functionality.

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?

For a mutation tool with 5 parameters, no annotations, and no output schema, the description is incomplete. It doesn't explain what happens after adding a task, what the return value might be, or any error conditions. The description alone doesn't provide enough context for an agent to understand the full implications of using this tool.

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 schema description coverage is 100%, with all 5 parameters well-documented in the schema itself. The description adds no parameter information beyond what's already in the schema, so it doesn't enhance parameter understanding. With high schema coverage, the baseline score of 3 is appropriate.

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

Purpose4/5

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

The description clearly states the action ('Adiciona' - adds) and resource ('uma nova tarefa à lista' - a new task to the list), providing a specific verb+resource combination. However, it doesn't distinguish this tool from its sibling 'todo_create', which appears to serve a similar purpose based on naming, leaving some ambiguity about differentiation.

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 like 'todo_create' or 'todo_list'. There's no mention of prerequisites, constraints, or appropriate contexts for this specific add operation versus other todo-related tools.

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

todo_completeC

Marca uma tarefa como concluída

ParametersJSON Schema
NameRequiredDescriptionDefault
listTitleYesTítulo da lista
taskTitleYesTítulo da tarefa

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It states the tool marks a task as completed, implying a mutation, but doesn't address permissions, side effects (e.g., if completion is reversible), error handling, or response format. This is inadequate for a mutation tool with zero annotation coverage.

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 in Portuguese ('Marca uma tarefa como concluída') that directly states the tool's purpose with zero waste. It's appropriately sized and front-loaded, making it easy for an agent to parse quickly.

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 this is a mutation tool with no annotations and no output schema, the description is incomplete. It lacks information on behavioral traits (e.g., what happens on success/failure), return values, or error conditions, which are critical for an agent to use it correctly in context with siblings.

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 schema description coverage is 100%, with both parameters (listTitle and taskTitle) documented in the schema. The description doesn't add any meaning beyond what the schema provides (e.g., it doesn't explain how to identify the task or list). Baseline 3 is appropriate when the schema does the heavy lifting.

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

Purpose4/5

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

The description 'Marca uma tarefa como concluída' clearly states the action (marks as completed) and the resource (a task). It's specific about what the tool does, though it doesn't explicitly differentiate from sibling tools like todo_add or todo_create, which would require a 5.

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., the task must exist), exclusions, or comparisons to siblings like todo_list or todo_show, leaving the agent without contextual usage information.

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

todo_createC

Cria uma nova lista de tarefas

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTítulo da lista
descriptionNoDescrição da lista (opcional)

TDQS

C2.9/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 the full burden of behavioral disclosure. It states the tool creates a new task list, implying a write operation, but lacks details on permissions required, whether creation is idempotent, error handling (e.g., if a list with the same title exists), or response format (since no output schema exists). For a mutation tool with zero annotation coverage, this is a significant gap in transparency.

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: 'Cria uma nova lista de tarefas.' It's front-loaded with the core action and resource, with no wasted words or redundant information. This makes it easy to parse quickly, though its brevity contributes to gaps in other dimensions like guidelines and transparency.

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 tool's complexity (a write operation with no annotations and no output schema), the description is incomplete. It doesn't address behavioral aspects like authentication needs, error conditions, or what happens on success (e.g., returns a list ID). With siblings like 'todo_list' and 'todo_show', more context on how this tool fits into the workflow is missing, leaving users under-informed.

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 description doesn't add any parameter-specific information beyond what the input schema provides. The schema has 100% description coverage, with clear docs for 'title' and 'description', so the baseline is 3. The description doesn't explain parameter interactions (e.g., how title uniqueness is handled) or provide examples, but it doesn't need to compensate for schema gaps either.

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

Purpose4/5

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

The description clearly states the tool's purpose: 'Cria uma nova lista de tarefas' (Creates a new task list). It specifies the verb 'cria' (creates) and the resource 'lista de tarefas' (task list), making the action and target explicit. However, it doesn't differentiate from sibling tools like 'todo_add' (which likely adds items to an existing list) or 'todo_list' (which likely lists existing lists), leaving some ambiguity about when to choose this tool over others.

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., whether authentication is needed), exclusions (e.g., cannot create duplicate lists), or comparisons to siblings like 'todo_add' (for adding tasks) or 'todo_list' (for viewing lists). Without such context, users must infer usage from the tool name alone, which is insufficient for optimal selection.

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

todo_listC

Lista todas as listas de tarefas

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

C2.8/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 the full burden. It mentions listing but doesn't disclose behavioral traits such as pagination, sorting, authentication needs, rate limits, or what happens if no lists exist. For a tool with zero annotation coverage, this is a significant gap in transparency.

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 in Portuguese ('Lista todas as listas de tarefas'), which is appropriately sized and front-loaded. There's no wasted text, though it could be slightly more informative without losing conciseness.

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 tool's simplicity (0 parameters, no output schema, no annotations), the description is incomplete. It lacks context on return values, error handling, or how it interacts with sibling tools, making it inadequate for full agent understanding despite the low complexity.

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

Parameters4/5

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

The tool has 0 parameters, and schema description coverage is 100%, so no parameter information is needed. The description doesn't add param semantics, but with no parameters, a baseline of 4 is appropriate as it doesn't need to compensate for gaps.

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 'Lista todas as listas de tarefas' (Lists all task lists) states a clear verb ('Lista') and resource ('listas de tarefas'), but it's vague about scope and doesn't differentiate from sibling tools like 'todo_show'. It provides a basic purpose but lacks specificity about what 'all' entails (e.g., user-specific vs. global).

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 like 'todo_show' or 'todo_create'. The description implies a listing function but doesn't specify contexts, prerequisites, or exclusions, leaving the agent without usage direction.

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

todo_showC

Mostra os detalhes de uma lista específica

ParametersJSON Schema
NameRequiredDescriptionDefault
listTitleYesTítulo da lista

TDQS

C2.9/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 the full burden of behavioral disclosure. It states the tool shows details, implying a read-only operation, but doesn't confirm if it's safe (non-destructive), specify authentication needs, rate limits, or error handling (e.g., what happens if the list doesn't exist). For a tool with zero annotation coverage, this is a significant gap in transparency.

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 purpose without unnecessary words. It's appropriately sized for a simple tool, though it could be slightly more front-loaded by including key details upfront. There's no wasted text, earning a high score for conciseness.

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 tool's simplicity (1 parameter, no output schema, no annotations), the description is incomplete. It doesn't explain what 'detalhes' includes in the output, potential errors, or behavioral traits. While the schema covers the parameter, the lack of output schema means the description should ideally hint at return values, but it doesn't, leaving gaps for the agent.

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 100% description coverage, with the parameter 'listTitle' documented as 'Título da lista'. The description doesn't add any meaning beyond this, such as format examples or constraints. Since the schema does the heavy lifting, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.

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

Purpose4/5

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

The description 'Mostra os detalhes de uma lista específica' clearly states the verb ('Mostra' - shows) and resource ('detalhes de uma lista específica' - details of a specific list), making the purpose understandable. It distinguishes from siblings like todo_add (adds items), todo_complete (marks items as done), todo_create (creates lists), and todo_list (lists all lists) by focusing on showing details of a single list. However, it doesn't specify what 'detalhes' includes (e.g., items, metadata), which prevents a perfect score.

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., that the list must exist), exclusions (e.g., not for editing), or comparisons to siblings like todo_list (which lists all lists) or todo_create (which creates new lists). This lack of contextual guidance leaves the agent to infer usage from the purpose alone.

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

TDQS

B3.2/5.0
Disambiguation3/5

The tools have clear purposes but some overlap exists, particularly between 'todo_add' (add a task to a list) and 'todo_create' (create a new task list), which could cause confusion if an agent needs to distinguish between adding tasks and creating lists. Descriptions help clarify, but the boundary is not perfectly distinct.

Naming Consistency5/5

All tool names follow a consistent 'todo_' prefix with a descriptive verb (add, complete, create, list, show), using snake_case uniformly. This predictable pattern makes it easy for agents to understand and navigate the toolset.

Tool Count5/5

With 5 tools, this server is well-scoped for a TODO checklist domain, covering core operations like creating lists, adding tasks, marking completion, and viewing details. Each tool earns its place without feeling excessive or insufficient.

Completeness3/5

The toolset covers basic CRUD operations but has notable gaps, such as missing update and delete functions for tasks or lists (e.g., no 'todo_update' or 'todo_delete'). Agents can work around this by using existing tools, but it limits full lifecycle management.

Maintenance

ActivityInactive
ResponsivenessSyncing

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

  • -
    license
    Not graded
    quality
    Not graded
    maintenance
    Enhanced TickTick task management server that provides rich functionality including task assignment, section management, comments, and batch operations with significantly improved performance through checkpoint sync.
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server for managing todo lists and items with advanced features including task assignment, priorities, recurrence, filtering, and webhook notifications.
    1
  • F
    license
    Not graded
    quality
    C
    maintenance
    MCP server for task/ticket management with dependency tracking, supporting CRUD operations, status management, project filtering, and automatic data migrations.
    1

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/hevener10/mcp-todo-checklist'

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