MCP Todo Server (TypeScript)
README.md
# MCP Todo Server (TypeScript)
Servidor MCP básico que gestiona una lista de tareas pendientes almacenada en
un archivo JSON local. Elaborado para el Trabajo Extraclase 1 (MCP) de
Programación IV, UNA.
## Capacidades expuestas
| Tipo | Nombre | Descripción |
|---|---|---|
| Resource | `tasks://list` | Retorna la lista completa de tareas en JSON |
| Tool | `add_task(nombre, descripcion, prioridad)` | Agrega una tarea nueva |
| Tool | `complete_task(task_id)` | Marca una tarea como completada |
| Prompt | `daily_summary` | Genera un resumen del estado de las tareas |
## Instalación
1. Clonar este repositorio y entrar a la carpeta:
```bash
git clone <url-del-repo>
cd mcp-todo-server-ts
```
2. Instalar las dependencias:
```bash
npm install
```
3. Compilar el proyecto TypeScript:
```bash
npm run build
```
## Ejecución
Para probar el servidor con el MCP Inspector oficial (interfaz web donde
puedes llamar el resource, los tools y el prompt sin necesitar Claude
Desktop):
```bash
npm run inspector
```
Para ejecutarlo directamente:
```bash
npm start
```
## Conexión con Claude Desktop
Ver instrucciones en la sección de configuración de `claude_desktop_config.json`
del Ejercicio 3 de este trabajo. El comando a registrar apunta al archivo
compilado, por ejemplo:
```json
{
"mcpServers": {
"todo-server": {
"command": "node",
"args": ["C:\\ruta\\completa\\a\\mcp-todo-server-ts\\build\\server.js"]
}
}
}
```
## Estructura del proyecto
```
mcp-todo-server-ts/
├── src/
│ └── server.ts # Servidor MCP principal (código fuente)
├── build/ # Generado por "npm run build" (no se sube a git)
├── tasks.json # Almacenamiento de tareas
├── package.json # Dependencias y scripts
├── tsconfig.json # Configuración de TypeScript
└── README.md # Este archivo
```
## Pruebas realizadas
(Completar con capturas de pantalla del `npm run inspector` mostrando
al menos 3 interacciones: por ejemplo, agregar dos tareas y completar una,
más la consulta del resource y del prompt `daily_summary`.)
TDQS
B3.1/5.0
Scored across 2 tools
Disambiguation5/5
Only two tools exist, 'add_task' and 'complete_task', each with a clearly distinct purpose: creating a task vs marking it complete. No overlap or ambiguity.
Naming Consistency5/5
Both tools follow a consistent verb_noun pattern in snake_case (add_task, complete_task), making the naming predictable and easy to understand.
Tool Count2/5
With only two tools, the server is too minimal for a typical todo server. Essential operations like listing, getting, updating, and deleting tasks are missing, making it feel incomplete for its intended scope.
Completeness1/5
The tool surface is severely incomplete for a todo server. There is no way to view tasks, update task details, delete tasks, or query specific tasks. The agent can only add and complete, which is insufficient.