todo-mcp-server
Todo MCP Server
Ein robuster, persistenter Aufgabenverwaltungsserver, der auf dem Model Context Protocol (MCP) mit Python und FastMCP basiert.
Überblick
Der Todo MCP Server bietet Sprachmodellen und KI-Agenten eine persistente, zustandsbehaftete Schnittstelle zur Aufgabenverwaltung. Er wurde mit dem offiziellen Python-MCP-SDK (FastMCP) entwickelt und stellt Tools bereit, die es KI-Assistenten ermöglichen, Aufgaben direkt in ihrem Workflow zu erstellen, zu verfolgen, zu filtern und abzuschließen.
Der Zustand wird lokal in einem strukturierten JSON-Speicher (tasks.json) persistiert, sodass Aufgabendaten Serverneustarts, Client-Wiederverbindungen und mehrschrittige Agentensitzungen überstehen. Die Kommunikation folgt der MCP-Spezifikation über JSON-RPC 2.0 auf Standard-Eingabe/-Ausgabe (stdio).
Related MCP server: mcpappwrite
Architektur & Datenfluss
+-------------------------------------------------------------------+
| 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 |
+-------------------------------------------------------------------+Tool-Referenz
Der Server stellt drei verschiedene Tools für die vollständige Verwaltung des Aufgabenlebenszyklus bereit.
1. add_task
Erstellt einen neuen Aufgabeneintrag und fügt ihn dem persistenten Speicher hinzu.
Beschreibung: Fügt der Aufgabenliste eine neue Aufgabe hinzu.
Parameter:
title(string, erforderlich): Beschreibung der Aufgabe. Die Länge muss zwischen 1 und 200 Zeichen liegen.priority(string, optional): Dringlichkeitsstufe. Akzeptierte Werte:"low","medium","high". Standard:"medium".
Validierungsregeln:
Leere oder nur aus Leerzeichen bestehende Zeichenfolgen werden abgelehnt.
Titel mit mehr als 200 Zeichen geben einen Fehler zurück.
Nicht konforme Prioritätswerte bestehen die Schema-Validierung nicht.
Beispielanfrage:
{
"title": "Implement integration test suite",
"priority": "high"
}Beispielantwort:
Task added!
ID: 1
Title: Implement integration test suite
Priority: high
Status: pending2. list_tasks
Ruft gespeicherte Aufgaben mit optionaler Filterung nach Abschlussstatus ab.
Beschreibung: Listet Aufgaben aus der Aufgabenliste mit optionaler Statusfilterung auf.
Parameter:
status(string, optional): Filterkriterium. Akzeptierte Werte:"all","pending","done". Standard:"all".
Formatierung: Gibt eine formatierte ASCII-Tabelle zurück, die Aufgaben-IDs, Statusindikatoren, Prioritätsstufen und Titel zusammenfasst.
Beispielanfrage:
{
"status": "pending"
}Beispielantwort:
Tasks (pending) — 2 found:
ID Status Priority Title
———— ————————— ———————— ————————————————————————————————————————
1 pending high Implement integration test suite
2 pending medium Update project documentation3. complete_task
Markiert eine vorhandene Aufgabe anhand ihrer eindeutigen numerischen Kennung als abgeschlossen.
Beschreibung: Markiert eine Aufgabe anhand ihrer numerischen ID als erledigt.
Parameter:
task_id(integer, erforderlich): Die eindeutige numerische Kennung, die der Aufgabe zugewiesen wurde.
Verhalten:
Aktualisiert den Aufgabenstatus auf
"done".Setzt das Feld
completed_atauf den aktuellen ISO-8601-UTC-Zeitstempel.Idempotent: Wenn die Aufgabe bereits abgeschlossen ist, benachrichtigt das Tool den Client, ohne Zeitstempel zu beschädigen.
Wenn die ID nicht existiert, wird eine Fehlerantwort mit der Liste der aktuell gültigen IDs zurückgegeben.
Beispielanfrage:
{
"task_id": 1
}Beispielantwort:
Task 1 completed!
Title: Implement integration test suite
Completed at: 2026-08-20T09:46:17.466797+00:00Tool-Übersichtstabelle
Tool | Zweck | Parameter | Rückgabetyp |
| Neue Aufgabe erstellen |
|
|
| Gespeicherte Aufgaben abfragen |
|
|
| Aufgabe als abgeschlossen markieren |
|
|
Datenmodell & Persistenz
Aufgabendatensätze werden als UTF-8-kodierte JSON-Arrays serialisiert. Standardmäßig werden die Datensätze in tasks.json im aktuellen Arbeitsverzeichnis gespeichert. Der Speicherdateipfad kann über die Umgebungsvariable TODO_FILE angepasst werden.
Schemadefinition
[
{
"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
}
]Feldspezifikationen
id(integer): Automatisch inkrementierende positive Ganzzahl-Kennung.title(string): Aufgabenbeschreibung (1–200 Zeichen).priority(string): Dringlichkeitsklassifizierung ("low","medium","high").status(string): Lebenszyklusphase ("pending"oder"done").created_at(string): ISO-8601-formatierter UTC-Zeitstempel, der bei der Erstellung aufgezeichnet wird.completed_at(string | null): ISO-8601-formatierter UTC-Zeitstempel, der beim Abschluss aufgezeichnet wird.
Anforderungen
Python: Version 3.10 oder höher
Abhängigkeiten:
mcp[cli]>=1.28,<2
Installation & Einrichtung
1. Repository klonen
git clone https://github.com/moazhassan751/mcp-todo-server.git
cd mcp-todo-server2. Virtuelle Umgebung erstellen
# Linux/macOS
python3 -m venv .venv
source .venv/bin/activate
# Windows
python -m venv .venv
.venv\Scripts\activate3. Abhängigkeiten installieren
pip install -r requirements.txtAusführungsmodi
Standardausführung (stdio)
Führen Sie den Server direkt für die Produktion oder die MCP-Host-Integration aus:
python server.pyEntwickler-Inspektion (MCP Inspector)
Der MCP Inspector bietet eine interaktive, browserbasierte Oberfläche zum Testen von Tools, Inspizieren von Schemas und Simulieren von Anfragen:
mcp dev server.pyDer Inspector wird gestartet und stellt eine lokale Oberflächen-URL bereit (in der Regel http://localhost:6274).
Client-Integrationsanleitung
Um den Todo MCP Server mit Ihrer bevorzugten KI-Umgebung zu verbinden, konfigurieren Sie den Server in der MCP-Konfigurationsdatei Ihres Clients.
Claude Desktop
Bearbeiten Sie Ihre Claude-Desktop-Konfigurationsdatei:
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
Fügen Sie Folgendes zu .cursor/mcp.json in Ihrem Projekt- oder globalen Verzeichnis hinzu:
{
"mcpServers": {
"todo-server": {
"command": "python",
"args": ["/absolute/path/to/mcp-todo-server/server.py"]
}
}
}Antigravity IDE
Fügen Sie Folgendes zu .agents/mcp_config.json in Ihrem Arbeitsbereich hinzu:
{
"mcpServers": {
"todo-server": {
"command": "python",
"args": ["/absolute/path/to/mcp-todo-server/server.py"]
}
}
}Testen & Verifizierung
Das Repository enthält umfassende automatisierte Testskripte:
Standard-Testsuite
Testet grundlegende Tool-Aufrufe, Parametervalidierungen und Ausgabeformatierung:
python test_server.pyMulti-Sitzungs-Audit-Test
Simuliert separate Client-Verbindungen, startet den Serverprozess über Sitzungen hinweg neu und validiert, dass der persistente Speicher den Zustand korrekt beibehält:
python audit_test.pyProjektstruktur
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 referenceLizenz
Dieses Projekt ist Open Source und unter der MIT-Lizenz verfügbar.
This server cannot be deployed
Maintenance
Related MCP Connectors
Create, list, and complete todo items through MCP.
Local-first task manager: create, edit, and complete tasks, projects, and checklists via MCP.
- mcpOAuthnet.todoist
Official Todoist MCP server for AI assistants to manage tasks, projects, and workflows.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA CRUD todo list server that exposes tools to create, list, and conclude tasks, compatible with any MCP host.7 npmMIT
- FlicenseNot gradedqualityBmaintenanceA minimal Python MCP Todo server backed by Appwrite Cloud, providing tools to add, list, get, update, complete, and delete tasks.-
- AlicenseBqualityCmaintenanceA basic MCP server for managing a todo list stored in a local JSON file, enabling task creation, completion, listing, and daily summary generation.27 npmMIT
- FlicenseNot gradedqualityCmaintenanceA simple MCP server that turns a JSON file into a todo list, letting users add, list, complete, delete, and clear tasks through natural language in MCP-compatible clients.-