Skip to main content
Glama
MxrxnxX

Servidor MCP de tareas

by MxrxnxX

Servidor MCP de tareas

Proyecto del Trabajo Extraclase 1 de Programación IV. Implementa un servidor Model Context Protocol (MCP) que administra tareas en un archivo JSON local y expone un recurso, dos herramientas y un prompt.

Capacidades

  • Resource tasks://pending: devuelve únicamente las tareas no completadas.

  • Tool add_task: agrega una tarea con nombre, descripción y prioridad (alta, media o baja).

  • Tool complete_task: marca como completada una tarea existente por ID.

  • Prompt daily_summary: construye una plantilla con el estado actual para generar un resumen diario.

El servidor utiliza transporte stdio. El host o cliente lo inicia como subproceso y los mensajes MCP viajan por stdin y stdout.

Related MCP server: TaskTrek MCP Server

Requisitos

  • Python 3.11 o superior.

  • Acceso a una terminal.

  • Claude Desktop, MCP Inspector u otro cliente MCP compatible para la integración.

Instalación

Windows (PowerShell)

cd C:\RUTA\mcp-todo-server
py -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt

macOS o Linux

cd /RUTA/mcp-todo-server
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -r requirements.txt

Ejecución

El servidor stdio espera que un cliente envíe el primer mensaje; por eso, al ejecutarlo directamente no imprime un menú ni abre un puerto:

python server.py

Use Ctrl+C para detenerlo.

Cliente de demostración

client_demo.py es un cliente MCP compatible construido con el SDK oficial. Se conecta por stdio, descubre las capacidades y ejecuta todas las operaciones pedidas en el ejercicio:

python client_demo.py --reset

Para guardar una transcripción UTF-8:

python client_demo.py --reset --output evidence/client_demo_output.txt

La opción --reset restaura los dos registros iniciales antes de la prueba. La demostración consulta el Resource, agrega dos tareas, completa una, obtiene el Prompt y vuelve a consultar el Resource.

Pruebas automatizadas

python -m pytest -q

La suite comprueba:

  1. Descubrimiento del Resource, Tools y Prompt.

  2. Lectura exclusiva de tareas pendientes.

  3. Creación y finalización de tareas.

  4. Contenido dinámico de daily_summary.

  5. Manejo del error al completar un ID inexistente.

MCP Inspector

Con Node.js instalado, se puede abrir la interfaz oficial:

npx @modelcontextprotocol/inspector .venv/Scripts/python.exe server.py

En macOS o Linux cambie el ejecutable por .venv/bin/python.

Configuración de Claude Desktop

  1. Abra claude_desktop_config.example.json.

  2. Reemplace C:\\RUTA\\mcp-todo-server por la ruta absoluta del proyecto.

  3. Copie la entrada mcpServers al archivo de configuración de Claude Desktop. En Windows normalmente se encuentra en: %APPDATA%\Claude\claude_desktop_config.json.

  4. Cierre completamente Claude Desktop y vuelva a abrirlo.

Ejemplo:

{
  "mcpServers": {
    "todo-server": {
      "command": "C:\\RUTA\\mcp-todo-server\\.venv\\Scripts\\python.exe",
      "args": ["C:\\RUTA\\mcp-todo-server\\server.py"]
    }
  }
}

No use rutas relativas: el host puede iniciar el servidor desde otro directorio.

Estructura

mcp-todo-server/
  server.py
  client_demo.py
  tasks.json
  requirements.txt
  claude_desktop_config.example.json
  tests/
    test_server.py
  diagramas/
    arquitectura_mcp_ecommerce.mmd
    flujo_consulta_inventario.mmd
  evidence/
    client_demo_output.txt
    01_inspector_connected.png
    02_add_task_result.png
    03_complete_task_result.png
    04_resource_pending.png
    05_daily_summary_prompt.png

Publicación en Git

git init
git add .
git commit -m "Implementar servidor MCP de tareas"
git branch -M main
git remote add origin URL_DEL_REPOSITORIO
git push -u origin main

La URL final del repositorio debe añadirse al informe antes de entregar.

Referencias técnicas

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    Not graded
    maintenance
    A minimal Model Context Protocol server implementation that provides tools for managing a to-do list, allowing users to create tasks, list them, and mark them as completed via JSON-RPC calls.
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    A lightweight task management MCP server that enables CRUD operations on tasks stored in a single JSON file, including listing, creating, updating progress, and setting priorities.
    200 npm
    -