Skip to main content
Glama
laibaafreen

Task / To-Do Manager

by laibaafreen
README.md
# Task / To-Do Manager — MCP Server

A small MCP server that lets an AI assistant manage a simple to-do list.
Tasks are stored in `tasks.json` in this folder — no database required.

## Setup

```bash
python -m venv venv
source venv/bin/activate      # Windows: venv\Scripts\activate
pip install -r requirements.txt
```

## Running the server

```bash
python server.py
```

The server talks over **stdio** (standard input/output), so it's meant to be
launched by an MCP client (like MCP Inspector, or an AI assistant configured
to use it) — not run and watched directly in a plain terminal.

To test it by hand, run:

```bash
mcp dev server.py
```

and open the URL Inspector prints. From there you can click each tool below
and try it yourself.

## Tools

| Tool | What it does | Example call |
|---|---|---|
| `add_task(title)` | Adds a new task | `add_task("Buy groceries")` → `{"id": 1, "title": "Buy groceries", "done": false}` |
| `list_tasks()` | Lists every task | `list_tasks()` → `[{"id": 1, "title": "Buy groceries", "done": false}]` |
| `get_task(task_id)` | Gets one task by id | `get_task(1)` → `{"id": 1, "title": "Buy groceries", "done": false}` |
| `complete_task(task_id)` | Marks a task done | `complete_task(1)` → `{"id": 1, "title": "Buy groceries", "done": true}` |
| `delete_task(task_id)` | Deletes a task | `delete_task(1)` → `{"deleted": 1}` |

## Bonus resource

`tasks://pending` — a read-only JSON list of every task that isn't done yet.
Unlike a tool, it never changes any data; it only displays it.

## Error handling

Every tool checks its input first. Missing or invalid data (an empty title,
or an id that doesn't exist) returns a clear `{"error": "..."}` message
instead of crashing the server.

Maintenance

ActivityMaintained
ResponsivenessNo issues