Skip to main content
Glama

MCP Todo

A todo list server built with the Model Context Protocol (MCP) that supports both stdio and HTTP transports.

Quick Start

npm install

# For HTTP server (easier testing)
npm run dev:http

# For MCP stdio (client integration)
MCP_STDIO=1 npm run dev

Related MCP server: mcp-server-interview

Setup

npm install
npm run build

Usage

Stdio Transport (MCP Client Integration)

For use with MCP clients like Cursor:

MCP_STDIO=1 npm run dev

Configure in Cursor's .cursor/mcp.json:

{
  "mcpServers": {
    "todo-mcp": {
      "command": "npx",
      "args": ["-y", "tsx", "src/server.ts"],
      "env": {
        "MCP_STDIO": "1"
      }
    }
  }
}

HTTP Transport (Streamable HTTP)

For HTTP-based access with session management:

npm run dev MCP_STDIO=1 # Starts MCP stdio server
npm run dev:http  # Starts HTTP server on port 3000
# or directly: npx tsx src/http.ts

The server exposes endpoints at http://localhost:3000/mcp:

  • POST /mcp - JSON-RPC requests

  • GET /mcp - SSE stream for server notifications

  • DELETE /mcp - End session

Authentication

Set TODO_MCP_TOKEN environment variable to enable bearer token authentication:

TODO_MCP_TOKEN=your-secret-token npm run dev

Then include in requests:

Authorization: Bearer your-secret-token

Features

  • Add todos with unique IDs

  • List all todos with structured output

  • Toggle todo completion status

  • Remove todos by ID

  • Persistent JSON storage in ~/.mcp-todos.json

  • Session-based HTTP transport with SSE support

  • Optional bearer token authentication

Available Tools

  • list_todos - Get all todos in structured format

  • add_todo - Add a new todo (requires title)

  • toggle_todo - Toggle completion status (requires id)

  • remove_todo - Delete a todo (requires id)

Resources

  • todos://list - JSON resource containing all todos

Architecture

  • src/server.ts - Core MCP server with todo logic and stdio transport

  • src/http.ts - HTTP transport wrapper with Express and session management

Available Tools

4 tools
add_todoAdd TodoC

Add a todo item

Inputs: title (required).

list_todosList TodosB

Return all todos in a structured format.

Inputs: no named parameters. Returns: todos

remove_todoRemove TodoC

Remove a todo by id

Inputs: id (required).

toggle_todoToggle TodoC

Toggle a todo by id

Inputs: id (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.4/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose with no overlap: add_todo creates items, list_todos retrieves them, remove_todo deletes by ID, and toggle_todo updates completion status. The actions (add, list, remove, toggle) and targets (todos) are unambiguous, making tool selection straightforward for an agent.

    Naming Consistency5/5

    All tools follow a consistent verb_noun pattern with snake_case naming: add_todo, list_todos, remove_todo, toggle_todo. The verbs are descriptive and aligned with CRUD operations, and the noun 'todo' is used consistently across all tools, providing a predictable and readable naming convention.

    Tool Count5/5

    With 4 tools, this server is well-scoped for a todo management domain. Each tool serves a distinct and essential function (create, read, update, delete), and there are no extraneous or missing tools. The count is appropriate for the simple but complete coverage of todo operations.

    Completeness5/5

    The tool set provides complete CRUD/lifecycle coverage for todo management: add_todo for creation, list_todos for retrieval, remove_todo for deletion, and toggle_todo for updating completion status. There are no obvious gaps, and agents can perform all core operations without dead ends.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables AI clients to manage todo tasks through Tools for adding, listing, completing, and searching, alongside Prompts for daily reviews and task breakdowns. Exposes task lists and statistics as Resources with local JSON file persistence.
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables users to manage a todo list with add, list, complete, delete, and clear completed operations, persisting todos to a JSON file.
      10 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables task management through natural language: create tasks, list and filter them, and update their status. It uses SQLite for persistence and supports both local stdio and remote SSE transports.
      13 npm
      MIT