Skip to main content
Glama
moazhassan751

todo-mcp-server

Servidor Todo MCP

Un servidor de gestión de tareas robusto y persistente construido sobre el Protocolo de Contexto de Modelo (MCP) usando Python y FastMCP.


Descripción general

El Servidor Todo MCP proporciona a los modelos de lenguaje y agentes de IA una interfaz de gestión de tareas persistente y con estado. Construido con el SDK oficial de Python para MCP (FastMCP), expone herramientas que permiten a los asistentes de IA crear, rastrear, filtrar y completar tareas directamente dentro de su flujo de trabajo.

El estado se persiste localmente en un almacenamiento JSON estructurado (tasks.json), lo que garantiza que los datos de las tareas sobrevivan a reinicios del servidor, reconexiones de clientes y sesiones de agente de múltiples turnos. La comunicación sigue la especificación MCP usando JSON-RPC 2.0 a través de la entrada/salida estándar (stdio).


Related MCP server: Task Manager MCP Server

Arquitectura y flujo de datos

+-------------------------------------------------------------------+
|                        MCP Host / AI Client                       |
|               (Claude Desktop, Cursor, Antigravity)               |
+-------------------------------------------------------------------+
                                  |
                   JSON-RPC 2.0 over stdin / stdout
                                  v
+-------------------------------------------------------------------+
|                       Todo MCP Server                             |
|                                                                   |
|   +-----------------------------------------------------------+   |
|   |                       FastMCP Engine                      |   |
|   |  - Protocol negotiation & schema reflection               |   |
|   |  - Tool dispatch & argument validation (Pydantic/Typing)  |   |
|   +-----------------------------------------------------------+   |
|                                 |                                 |
|   +-----------------------------+-----------------------------+   |
|   |                             |                             |   |
|   v                             v                             v   |
| [ add_task ]             [ list_tasks ]             [ complete_task ]
|   |                             |                             |   |
|   +-----------------------------+-----------------------------+   |
|                                 |                                 |
|                                 v                                 |
|   +-----------------------------------------------------------+   |
|   |                    Storage Controller                     |   |
|   |  - Atomic read/write operations                           |   |
|   |  - Schema serialization with ISO 8601 UTC timestamps      |   |
|   +-----------------------------------------------------------+   |
+-------------------------------------------------------------------+
                                  |
                                  v
+-------------------------------------------------------------------+
|                      Local Storage: tasks.json                    |
+-------------------------------------------------------------------+

Referencia de herramientas

El servidor expone tres herramientas distintas para el ciclo de vida completo de la gestión de tareas.

1. add_task

Crea un nuevo elemento de tarea y lo agrega al almacenamiento persistente.

  • Descripción: Agregar una nueva tarea a la lista de tareas pendientes.

  • Parámetros:

    • title (cadena, obligatorio): Descripción de la tarea. La longitud debe estar entre 1 y 200 caracteres.

    • priority (cadena, opcional): Nivel de urgencia. Valores aceptados: "low", "medium", "high". Valor predeterminado: "medium".

  • Reglas de validación:

    • Las cadenas vacías o que solo contienen espacios en blanco se rechazan.

    • Los títulos que superen los 200 caracteres devuelven un error.

    • Los valores de prioridad no conformes fallan en la validación del esquema.

Solicitud de ejemplo:

{
  "title": "Implement integration test suite",
  "priority": "high"
}

Respuesta de ejemplo:

Task added!
  ID:       1
  Title:    Implement integration test suite
  Priority: high
  Status:   pending

2. list_tasks

Recupera las tareas guardadas con filtrado opcional por estado.

  • Descripción: Listar tareas de la lista de tareas pendientes con filtrado de estado opcional.

  • Parámetros:

    • status (cadena, opcional): Criterio de filtro. Valores aceptados: "all", "pending", "done". Valor predeterminado: "all".

  • Formato: Devuelve una tabla ASCII formateada que resume los ID de tareas, los indicadores de estado, los niveles de prioridad y los títulos.

Solicitud de ejemplo:

{
  "status": "pending"
}

Respuesta de ejemplo:

Tasks (pending) — 2 found:

  ID  Status    Priority Title
————  ————————— ———————— ————————————————————————————————————————
   1  pending   high     Implement integration test suite
   2  pending   medium   Update project documentation

3. complete_task

Marca una tarea existente como completada mediante su identificador entero único.

  • Descripción: Marcar una tarea como hecha mediante su ID numérico.

  • Parámetros:

    • task_id (entero, obligatorio): El identificador numérico único asignado a la tarea.

  • Comportamiento:

    • Actualiza el estado de la tarea a "done".

    • Establece el campo completed_at con la marca de tiempo UTC actual en formato ISO 8601.

    • Idempotente: si la tarea ya está completada, la herramienta notifica al cliente sin corromper las marcas de tiempo.

    • Si el ID no existe, se devuelve una respuesta de error con la lista de ID válidos actuales.

Solicitud de ejemplo:

{
  "task_id": 1
}

Respuesta de ejemplo:

Task 1 completed!
  Title:        Implement integration test suite
  Completed at: 2026-08-20T09:46:17.466797+00:00

Tabla resumen de herramientas

Herramienta

Propósito

Parámetros

Tipo de retorno

add_task

Crear una nueva tarea

title (cadena, obligatorio)priority ("low" | "medium" | "high", predeterminado: "medium")

cadena (detalles de confirmación)

list_tasks

Consultar tareas

status ("all" | "pending" | "done", predeterminado: "all")

cadena (tabla formateada)

complete_task

Marcar una tarea como hecha

task_id (entero, obligatorio)

cadena (estado de finalización y marca de tiempo)


Modelo de datos y persistencia

Los registros de tareas se serializan como matrices JSON codificadas en UTF-8. De forma predeterminada, los registros se almacenan en tasks.json en el directorio de trabajo actual. La ruta del archivo de almacenamiento se puede personalizar mediante la variable de entorno TODO_FILE.

Definición del esquema

[
  {
    "id": 1,
    "title": "Implement integration test suite",
    "priority": "high",
    "status": "done",
    "created_at": "2026-08-20T09:46:17.362387+00:00",
    "completed_at": "2026-08-20T09:46:17.466797+00:00"
  },
  {
    "id": 2,
    "title": "Update project documentation",
    "priority": "medium",
    "status": "pending",
    "created_at": "2026-08-20T09:46:17.384689+00:00",
    "completed_at": null
  }
]

Especificaciones de campos

  • id (entero): Identificador entero positivo de incremento automático.

  • title (cadena): Cadena de descripción de la tarea (1-200 caracteres).

  • priority (cadena): Clasificación de urgencia ("low", "medium", "high").

  • status (cadena): Etapa del ciclo de vida ("pending" o "done").

  • created_at (cadena): Marca de tiempo UTC en formato ISO 8601 registrada en la creación.

  • completed_at (cadena o null): Marca de tiempo UTC en formato ISO 8601 registrada al completarse.


Requisitos

  • Python: Versión 3.10 o superior

  • Dependencias:

    • mcp[cli]>=1.28,<2


Instalación y configuración

1. Clonar el repositorio

git clone https://github.com/moazhassan751/mcp-todo-server.git
cd mcp-todo-server

2. Crear un entorno virtual

# Linux/macOS
python3 -m venv .venv
source .venv/bin/activate

# Windows
python -m venv .venv
.venv\Scripts\activate

3. Instalar dependencias

pip install -r requirements.txt

Modos de ejecución

Ejecución estándar (stdio)

Ejecute el servidor directamente para producción o integración con el host MCP:

python server.py

Inspección para desarrolladores (Inspector MCP)

El Inspector MCP proporciona una interfaz interactiva basada en navegador para probar herramientas, inspeccionar esquemas y simular solicitudes:

mcp dev server.py

El inspector se iniciará y proporcionará una URL de interfaz local (normalmente http://localhost:6274).


Guía de integración con clientes

Para conectar el Servidor Todo MCP a su entorno de IA preferido, configure el servidor en el archivo de configuración MCP de su cliente.

Claude Desktop

Edite el archivo de configuración de Claude Desktop:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "todo-server": {
      "command": "python",
      "args": ["/absolute/path/to/mcp-todo-server/server.py"]
    }
  }
}

Cursor

Agregue a .cursor/mcp.json en el directorio de su proyecto o global:

{
  "mcpServers": {
    "todo-server": {
      "command": "python",
      "args": ["/absolute/path/to/mcp-todo-server/server.py"]
    }
  }
}

IDE Antigravity

Agregue a .agents/mcp_config.json en su espacio de trabajo:

{
  "mcpServers": {
    "todo-server": {
      "command": "python",
      "args": ["/absolute/path/to/mcp-todo-server/server.py"]
    }
  }
}

Pruebas y verificación

El repositorio incluye scripts de prueba automatizados completos:

Suite de pruebas estándar

Prueba las llamadas básicas a herramientas, las validaciones de parámetros y el formato de salida:

python test_server.py

Prueba de auditoría multi-sesión

Simula conexiones de clientes separadas, reinicia el proceso del servidor entre sesiones y valida que el almacenamiento persistente conserve correctamente el estado:

python audit_test.py

Estructura del proyecto

mcp-todo-server/
├── server.py           # Core MCP server definition and tool implementations
├── test_server.py      # Automated stdio protocol unit tests
├── audit_test.py       # Multi-session persistence and edge-case verification
├── requirements.txt    # Package dependencies
├── .gitignore          # Version control ignore definitions
└── README.md           # Technical documentation and integration reference

Licencia

Este proyecto es de código abierto y está disponible bajo la Licencia MIT.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Related MCP Servers

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

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/moazhassan751/mcp-todo-server'

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