KanbanX MCP Server
by DonDmGeR
README.md
# KanbanX MCP Server 📋
> Ein vollständiger Model Context Protocol (MCP) Server für KanbanX - Dein persönliches Kanban Task Management System mit erweiterten Features wie Subtasks, Notizen und Code-Clips.
[](https://www.python.org/downloads/)
[](https://modelcontextprotocol.io/)
[](https://www.microsoft.com/windows)
[](LICENSE)
## 🌟 Features
### 📊 Kanban Board Management
- **Drei-Spalten-System**: TODO, DOING, DONE
- **Drag-and-Drop-ähnlich**: Verschiebe Tasks zwischen Spalten
- **Eindeutige IDs**: Jede Task erhält eine unveränderliche ID
- **Timestamps**: Automatische Zeitstempel für alle Aktionen
### 📝 Erweiterte Task-Features
- **Hierarchische Subtasks**: Erstelle Unteraufgaben mit eigenem Status
- **Detaillierte Notizen**: Füge mehrzeilige Notizen zu Tasks hinzu
- **Code Clips**: Speichere Code-Schnipsel, Links und wichtige Informationen
- **Rich Text Support**: Unicode-Support für Emojis und Sonderzeichen
### 🔌 MCP Integration
- **Vollständige MCP 2024-11-05 Kompatibilität**
- **RESTful-ähnliche Tools**: Intuitive Tool-Namen und Parameter
- **Ressourcen-Zugriff**: Direkter JSON-Zugriff auf das komplette Board
- **Fehlerbehandlung**: Robuste Fehlerbehandlung und Logging
### 💾 Daten-Persistierung
- **JSON-basiert**: Einfach lesbare und editierbare Datenspeicherung
- **Automatische Backups**: Sichere Datenspeicherung
- **Portable**: Alle Daten in einer einzigen JSON-Datei
- **Versionskontrolle-freundlich**: Git-kompatible Datenstruktur
## 🚀 Schnellstart (Windows)
### Voraussetzungen
- **Windows 10/11** (PowerShell 5.1+ oder PowerShell 7+)
- **Python 3.8+** ([Download hier](https://www.python.org/downloads/))
- **MCP-kompatibler Client** (Claude Desktop, Gemini CLI, etc.)
### ⚡ Automatische Installation
1. **Repository klonen oder herunterladen**
```powershell
git clone https://github.com/DonDmGeR/MCP-KanbanX.git
cd MCP-KanbanX
```
2. **Setup-Script ausführen**
```powershell
.\setup.ps1
```
3. **Pfad zur Server-Datei eingeben** (ohne Anführungszeichen!)
```
Pfad: C:\path\to\kanbanx_mcp_server.py
```
4. **MCP Client neu starten** und testen:
```
list_board()
```
### 🔧 Manuelle Installation
<details>
<summary>Klicke hier für detaillierte manuelle Installation</summary>
#### Schritt 1: Python und Dependencies installieren
```powershell
# Python Version prüfen
python --version
# MCP SDK installieren
pip install mcp
```
#### Schritt 2: Server-Datei erstellen
Erstelle `kanbanx_mcp_server.py` mit dem bereitgestellten Code im Repository.
#### Schritt 3: Konfiguration erstellen
```powershell
# Konfigurationsverzeichnis erstellen
$configDir = "$env:APPDATA\Claude"
New-Item -ItemType Directory -Path $configDir -Force
# Konfigurationsdatei erstellen
$config = @{
mcpServers = @{
kanbanx = @{
command = "python"
args = @("C:\full\path\to\kanbanx_mcp_server.py")
env = @{}
}
}
}
$config | ConvertTo-Json -Depth 10 | Out-File -FilePath "$configDir\claude_desktop_config.json" -Encoding UTF8
```
#### Schritt 4: Server testen
```powershell
# Server direkt testen
python kanbanx_mcp_server.py
# Konfiguration prüfen
Get-Content "$env:APPDATA\Claude\claude_desktop_config.json"
```
</details>
## 📖 Verfügbare Tools
### 🆕 Task Management
#### `add_task`
Erstellt eine neue Aufgabe in der gewünschten Spalte.
**Parameter:**
- `column` (string, required): `"todo"`, `"doing"`, oder `"done"`
- `title` (string, required): Titel der Aufgabe
- `note` (string, optional): Zusätzliche Beschreibung
**Beispiel:**
```javascript
add_task({
column: "todo",
title: "Website entwickeln",
note: "Responsive React-App mit modernem Design"
})
```
#### `move_task`
Verschiebt eine Aufgabe zwischen Spalten.
**Parameter:**
- `task_id` (string, required): ID der Aufgabe (z.B. `"ID-abc123"`)
- `target_column` (string, required): Zielspalte
**Beispiel:**
```javascript
move_task({
task_id: "ID-abc123",
target_column: "doing"
})
```
#### `delete_task`
Löscht eine Aufgabe permanent.
**Parameter:**
- `task_id` (string, required): ID der zu löschenden Aufgabe
**Beispiel:**
```javascript
delete_task({
task_id: "ID-abc123"
})
```
### 📋 Subtask Management
#### `add_subtask`
Fügt eine Unteraufgabe zu einer bestehenden Aufgabe hinzu.
**Parameter:**
- `task_id` (string, required): ID der Hauptaufgabe
- `text` (string, required): Beschreibung der Unteraufgabe
**Beispiel:**
```javascript
add_subtask({
task_id: "ID-abc123",
text: "Navigation komponente erstellen"
})
```
#### `complete_subtask`
Markiert eine Unteraufgabe als erledigt.
**Parameter:**
- `task_id` (string, required): ID der Hauptaufgabe
- `subtask_id` (string, required): ID der Unteraufgabe
**Beispiel:**
```javascript
complete_subtask({
task_id: "ID-abc123",
subtask_id: "ID-def456"
})
```
### 📝 Content Management
#### `add_note`
Fügt eine Notiz zu einer Aufgabe hinzu oder erweitert bestehende Notizen.
**Parameter:**
- `task_id` (string, required): ID der Aufgabe
- `note` (string, required): Notiztext (unterstützt Mehrzeilen)
**Beispiel:**
```javascript
add_note({
task_id: "ID-abc123",
note: "Wichtig: Mobile-First Ansatz verwenden\nFarben: #3498db, #2ecc71"
})
```
#### `add_clip`
Speichert Code-Schnipsel, Links oder wichtige Informationen zu einer Aufgabe.
**Parameter:**
- `task_id` (string, required): ID der Aufgabe
- `snippet` (string, required): Code, Link oder Information
**Beispiel:**
```javascript
add_clip({
task_id: "ID-abc123",
snippet: "npm install react-router-dom @types/react-router-dom"
})
```
### 👁️ Viewing Tools
#### `list_board`
Zeigt das komplette Kanban Board an.
**Parameter:**
- `format` (string, optional): `"detailed"` (Standard) oder `"summary"`
**Beispiel:**
```javascript
// Detaillierte Ansicht
list_board({ format: "detailed" })
// Zusammenfassung
list_board({ format: "summary" })
```
## 🔧 Konfiguration
### MCP Client-spezifische Konfiguration
<details>
<summary>Claude Desktop</summary>
**Konfigurationsdatei:** `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"kanbanx": {
"command": "python",
"args": ["C:\\path\\to\\kanbanx_mcp_server.py"],
"env": {}
}
}
}
```
</details>
<details>
<summary>Gemini CLI</summary>
**Installiere Gemini CLI:**
```powershell
npm install -g @google/gemini-cli
```
**Konfiguration:** Siehe [Gemini CLI MCP Dokumentation](https://github.com/google/gemini-cli)
</details>
<details>
<summary>Custom MCP Clients</summary>
Für eigene MCP Clients verwende die Standard MCP 2024-11-05 Spezifikation:
```python
import asyncio
from mcp.client import ClientSession
from mcp.client.stdio import stdio_client
async def main():
async with stdio_client("python", "kanbanx_mcp_server.py") as streams:
async with ClientSession(streams[0], streams[1]) as session:
await session.initialize()
# Tools verwenden
result = await session.call_tool("list_board", {})
print(result)
asyncio.run(main())
```
</details>
### Erweiterte Konfiguration
#### Umgebungsvariablen
```powershell
# Datenverzeichnis anpassen
$env:KANBANX_DATA_DIR = "C:\MyProjects\kanban-data"
# Debug-Modus aktivieren
$env:KANBANX_DEBUG = "true"
```
#### Mehrere Board-Instanzen
```json
{
"mcpServers": {
"kanbanx-work": {
"command": "python",
"args": ["C:\\path\\to\\kanbanx_mcp_server.py"],
"env": {
"KANBANX_DATA_FILE": "work_board.json"
}
},
"kanbanx-personal": {
"command": "python",
"args": ["C:\\path\\to\\kanbanx_mcp_server.py"],
"env": {
"KANBANX_DATA_FILE": "personal_board.json"
}
}
}
}
```
## 📊 Ressourcen
### `kanbanx://board`
Direkter Zugriff auf das komplette Board als JSON.
**Verwendung:**
```javascript
// Board-Daten abrufen
const boardData = await client.readResource("kanbanx://board");
console.log(JSON.parse(boardData));
```
**Datenstruktur:**
```json
{
"todo": [
{
"id": "ID-abc123",
"title": "Website entwickeln",
"note": "Responsive Design mit React",
"subs": {
"ID-def456": {
"text": "Navigation erstellen",
"done": false
}
},
"clips": [
{
"ts": "2024-01-15T10:30:00",
"text": "npm install react"
}
],
"created": "2024-01-15T09:00:00"
}
],
"doing": [],
"done": []
}
```
## 🎯 Anwendungsbeispiele
### Beispiel 1: Neues Projekt Setup
```javascript
// 1. Hauptaufgabe erstellen
add_task({
column: "todo",
title: "E-Commerce Website",
note: "Online-Shop mit React und Node.js"
})
// 2. Subtasks hinzufügen
add_subtask({
task_id: "ID-abc123",
text: "Database Schema entwerfen"
})
add_subtask({
task_id: "ID-abc123",
text: "API Endpoints implementieren"
})
add_subtask({
task_id: "ID-abc123",
text: "Frontend Komponenten erstellen"
})
// 3. Wichtige Links und Commands speichern
add_clip({
task_id: "ID-abc123",
snippet: "Database: PostgreSQL 14, Redis für Caching"
})
add_clip({
task_id: "ID-abc123",
snippet: "git clone https://github.com/project/ecommerce-template"
})
```
### Beispiel 2: Sprint Planning
```javascript
// Sprint Board übersicht
list_board({ format: "summary" })
// Task in Bearbeitung nehmen
move_task({
task_id: "ID-abc123",
target_column: "doing"
})
// Progress-Update
add_note({
task_id: "ID-abc123",
note: "Sprint 1 - Tag 3: Database Schema 80% fertig"
})
// Subtask abhaken
complete_subtask({
task_id: "ID-abc123",
subtask_id: "ID-def456"
})
```
### Beispiel 3: Bug Tracking
```javascript
// Bug-Report erstellen
add_task({
column: "todo",
title: "🐛 Login-Validation Bug",
note: "Users können sich mit leeren Feldern einloggen"
})
// Investigation Details
add_clip({
task_id: "ID-bug001",
snippet: "Reproduktion: Chrome 120, leere Email + Passwort → Login successful"
})
add_clip({
task_id: "ID-bug001",
snippet: "Betroffene Datei: /src/components/LoginForm.tsx Zeile 45"
})
// Fix-Tasks hinzufügen
add_subtask({
task_id: "ID-bug001",
text: "Input validation implementieren"
})
add_subtask({
task_id: "ID-bug001",
text: "Unit tests für validation schreiben"
})
```
## 🛠️ Troubleshooting
### Häufige Probleme
<details>
<summary>❌ "Server nicht erreichbar"</summary>
**Lösung:**
```powershell
# 1. Python-Pfad prüfen
where python
# 2. Server direkt testen
python "C:\path\to\kanbanx_mcp_server.py"
# 3. Port-Konflikte prüfen
netstat -an | findstr :LISTENING
# 4. Neustart des MCP Clients
```
</details>
<details>
<summary>❌ "Tools nicht verfügbar"</summary>
**Lösung:**
```powershell
# 1. MCP SDK Version prüfen
pip show mcp
# 2. Konfigurationsdatei validieren
Get-Content "$env:APPDATA\Claude\claude_desktop_config.json" | ConvertFrom-Json
# 3. Server-Logs prüfen
python kanbanx_mcp_server.py 2>&1 | Tee-Object -FilePath debug.log
```
</details>
<details>
<summary>❌ "Daten gehen verloren"</summary>
**Lösung:**
```powershell
# 1. Backup-Datei suchen
Get-ChildItem -Path "." -Filter "*.json.backup" -Recurse
# 2. Manuelle Wiederherstellung
Copy-Item "kanbanx_mcp_server.json.backup" "kanbanx_mcp_server.json"
# 3. Automatische Backups einrichten (in Server-Code)
```
</details>
<details>
<summary>❌ "Unicode/Emoji Probleme"</summary>
**Lösung:**
```powershell
# PowerShell UTF-8 Encoding setzen
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$PSDefaultParameterValues['Out-File:Encoding'] = 'utf8'
# Oder PowerShell 7+ verwenden
winget install Microsoft.PowerShell
```
</details>
### Debug-Modus
Aktiviere erweiterte Logs:
```powershell
# Umgebungsvariable setzen
$env:KANBANX_DEBUG = "true"
# Server mit Logs starten
python kanbanx_mcp_server.py 2>&1 | Tee-Object debug.log
```
### Performance-Optimierung
Für große Boards (1000+ Tasks):
```json
{
"mcpServers": {
"kanbanx": {
"command": "python",
"args": ["kanbanx_mcp_server.py"],
"env": {
"KANBANX_CACHE_SIZE": "1000",
"KANBANX_LAZY_LOAD": "true"
}
}
}
}
```
## 🔒 Sicherheit
### Daten-Schutz
- **Lokale Speicherung**: Alle Daten bleiben auf deinem Computer
- **Keine Cloud-Verbindung**: Server kommuniziert nur über lokale Pipes
- **Backup-System**: Automatische Sicherung bei kritischen Operationen
### Access Control
```powershell
# Datei-Berechtigungen setzen (optional)
icacls "kanbanx_mcp_server.json" /grant:r "$env:USERNAME:(R,W)"
icacls "kanbanx_mcp_server.json" /remove "Everyone"
```
## 🚀 Erweiterte Features
### Custom Commands
Erweitere den Server mit eigenen Tools:
```python
@server.call_tool()
async def handle_custom_tool(name: str, arguments: dict):
if name == "export_csv":
# CSV Export implementieren
return export_board_as_csv(arguments)
elif name == "import_github_issues":
# GitHub Issues importieren
return import_from_github(arguments)
```
### Integrationen
<details>
<summary>GitHub Integration</summary>
```python
# GitHub Issues als Tasks importieren
def import_github_issues(repo_url, token):
issues = fetch_github_issues(repo_url, token)
for issue in issues:
add_task({
"column": "todo",
"title": f"#{issue.number} {issue.title}",
"note": issue.body
})
```
</details>
<details>
<summary>Jira Integration</summary>
```python
# Jira Tickets synchronisieren
def sync_with_jira(jira_url, credentials):
tickets = fetch_jira_tickets(jira_url, credentials)
for ticket in tickets:
update_or_create_task(ticket)
```
</details>
### Plugins
Erstelle eigene Plugin-Dateien:
```python
# plugins/time_tracking.py
class TimeTrackingPlugin:
def start_timer(self, task_id):
# Timer für Task starten
pass
def stop_timer(self, task_id):
# Timer stoppen und Zeit loggen
pass
```
## 📈 Roadmap
### Version 1.1 (geplant)
- [ ] **Time Tracking**: Eingebaute Zeiterfassung
- [ ] **Tags System**: Kategorisierung mit Tags
- [ ] **Board Templates**: Vorgefertigte Board-Layouts
- [ ] **Export Features**: PDF, CSV, Markdown Export
## 🤝 Contributing
Beiträge sind willkommen! Siehe [CONTRIBUTING.md](CONTRIBUTING.md) für Details.
### Development Setup
```powershell
# Repository forken und klonen
git clone https://github.com/DonDmGeR/MCP-KanbanX.git
cd kanbanx-mcp
# Development-Dependencies installieren
pip install -r requirements-dev.txt
# Pre-commit hooks einrichten
pre-commit install
# Tests ausführen
python -m pytest tests/
```
### Code Style
```powershell
# Code formatieren
black kanbanx_mcp_server.py
# Linting
flake8 kanbanx_mcp_server.py
# Type checking
mypy kanbanx_mcp_server.py
```
## 📄 Lizenz
Dieses Projekt ist unter der MIT-Lizenz lizenziert - siehe [LICENSE](LICENSE) für Details.
## 🙏 Danksagungen
- [Model Context Protocol](https://modelcontextprotocol.io/) Team
- [Anthropic](https://anthropic.com/) für Claude und MCP
- Python Community für die großartigen Tools
- Alle Contributors und Beta-Tester
## 📞 Support
- **Issues**: [GitHub Issues](https://github.com/DonDmGeR/kanbanx-mcp/issues)
- **Discussions**: [GitHub Discussions](https://github.com/DonDmGeR/kanbanx-mcp/discussions)
---
**⭐ Star this repo wenn es dir hilft!**
Made with ❤️ for the productivity community
This server cannot be deployed
Maintenance
ActivityInactive
ResponsivenessNo issues