Skip to main content
Glama
MCP Todo Server (TypeScript)

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.