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: pending2. 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 documentation3. 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_atcon 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:00Tabla resumen de herramientas
Herramienta | Propósito | Parámetros | Tipo de retorno |
| Crear una nueva tarea |
|
|
| Consultar tareas |
|
|
| Marcar una tarea como hecha |
|
|
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 onull): 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-server2. Crear un entorno virtual
# Linux/macOS
python3 -m venv .venv
source .venv/bin/activate
# Windows
python -m venv .venv
.venv\Scripts\activate3. Instalar dependencias
pip install -r requirements.txtModos de ejecución
Ejecución estándar (stdio)
Ejecute el servidor directamente para producción o integración con el host MCP:
python server.pyInspecció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.pyEl 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.jsonWindows:
%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.pyPrueba 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.pyEstructura 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 referenceLicencia
Este proyecto es de código abierto y está disponible bajo la Licencia MIT.
This server cannot be installed
Maintenance
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceA CRUD todo list server that exposes tools to create, list, and conclude tasks, compatible with any MCP host.8MIT
- FlicenseAqualityCmaintenanceA small Model Context Protocol (MCP) server that lets an AI assistant manage a to-do list on your behalf.4
- FlicenseNot gradedqualityBmaintenanceA minimal Python MCP Todo server backed by Appwrite Cloud, providing tools to add, list, get, update, complete, and delete tasks.
- AlicenseBqualityNot gradedmaintenanceA basic MCP server for managing a todo list stored in a local JSON file, enabling task creation, completion, listing, and daily summary generation.28MIT
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personal…
A basic MCP server to operate on the Postman API.
MCP (Model Context Protocol) server for Appwrite
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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