Zum Inhalt

Eigene Erweiterungen erstellen

Verbinde DeskAgent mit jedem Service durch deine eigene MCP-Integration

DeskAgent kann durch eigene MCP-Server (Model Context Protocol) erweitert werden. Damit kannst du jede API, jeden Service oder jedes System mit deinem KI-Assistenten verbinden.

Für Entwickler

Diese Anleitung richtet sich an Entwickler und technisch versierte Nutzer. Du brauchst grundlegende Python-Kenntnisse und Erfahrung mit APIs.

Gute Nachricht: Mit KI-Coding-Assistenten wie Claude ist das Erstellen von Erweiterungen viel einfacher als früher. Die KI schreibt den größten Teil des Codes für dich!


Was du brauchst

Empfohlenes Setup

Tool Warum Link
VS Code Bester Editor für Python-Entwicklung code.visualstudio.com
Claude Code CLI KI-Assistent der Code für dich schreibt claude.ai/code
Python 3.10+ Bereits bei DeskAgent dabei -

KI-gestützte Entwicklung

Mit Claude Code CLI in VS Code beschreibst du einfach was du willst:

"Erstelle einen MCP-Server der sich mit der Trello-API verbindet und Tools bereitstellt um Boards aufzulisten, Karten zu erstellen und Karten zwischen Listen zu verschieben"

Claude generiert den kompletten Code, inklusive Fehlerbehandlung und Dokumentation.


Wie Erweiterungen funktionieren

graph LR
    A[Deine Erweiterung] --> B[DeskAgent]
    B --> C[KI-Agent]
    C --> D[Nutzt deine Tools]
    D --> E[Externer Service]

Jede Erweiterung ist eine Python-Datei die:

  1. Tools definiert die die KI nutzen kann (suchen, erstellen, aktualisieren, etc.)
  2. Sich mit APIs verbindet mit deinen Zugangsdaten
  3. Ergebnisse zurückgibt die die KI verstehen und verwenden kann

Schnellstart: Deine erste Erweiterung

Schritt 1: Template kopieren

Erstelle eine neue Datei in deskagent/mcp/:

deskagent/mcp/meinservice_mcp.py

Schritt 2: Template verwenden

#!/usr/bin/env python3
"""
Mein Service MCP Server
Verbindet DeskAgent mit Mein Service.
"""

import sys
import json
from pathlib import Path
from mcp.server.fastmcp import FastMCP

# Setup
sys.path.insert(0, str(Path(__file__).parent.parent / "scripts"))
from paths import load_config

mcp = FastMCP("meinservice")

# Erforderlich: Icon und Farbe für die WebUI
TOOL_METADATA = {
    "icon": "extension",      # Material Icons Name
    "color": "#2196f3"        # Deine Markenfarbe
}

# API-Zugangsdaten aus config/apis.json laden
def get_config():
    config = load_config()
    return config.get("meinservice", {})

# Deine Tools definieren
@mcp.tool()
def suche_eintraege(suchbegriff: str, limit: int = 10) -> str:
    """
    Suche nach Einträgen in Mein Service.

    Args:
        suchbegriff: Suchbegriffe
        limit: Maximale Ergebnisse (Standard: 10)

    Returns:
        JSON mit passenden Einträgen
    """
    config = get_config()
    api_key = config.get("api_key")

    # Dein API-Aufruf hier
    ergebnisse = []

    return json.dumps(ergebnisse, indent=2)

# Einstiegspunkt
if __name__ == "__main__":
    mcp.run()

Schritt 3: Konfiguration hinzufügen

Füge deine Zugangsdaten zu config/apis.json hinzu:

{
  "meinservice": {
    "enabled": true,
    "api_key": "dein-api-key-hier",
    "base_url": "https://api.meinservice.de"
  }
}

Schritt 4: DeskAgent neu starten

Deine Erweiterung ist jetzt verfügbar! Die KI kann deine neuen Tools nutzen.


Icons finden

Durchsuche Material Icons auf fonts.google.com/icons

Beliebte Auswahl:

Icon Name Vorschau Gut für
mail E-Mail-Dienste
payments Abrechnung/Finanzen
folder Dateiverwaltung
cloud Cloud-Dienste
support_agent Support/Helpdesk
inventory_2 Archive/Speicher

Best Practices

1. Klare Tool-Beschreibungen

Die KI liest deine Docstrings um zu verstehen was Tools tun:

@mcp.tool()
def erstelle_aufgabe(titel: str, faellig_am: str = None) -> str:
    """
    Erstelle eine neue Aufgabe im Projekt.

    Args:
        titel: Aufgabentitel (erforderlich)
        faellig_am: Optionales Fälligkeitsdatum (Format: YYYY-MM-DD)

    Returns:
        JSON mit den erstellten Aufgabendetails
    """

2. JSON zurückgeben

Gib immer strukturierte Daten zurück:

return json.dumps({
    "success": True,
    "id": neuer_eintrag.id,
    "message": "Eintrag erfolgreich erstellt"
}, indent=2)

3. Fehler elegant behandeln

try:
    ergebnis = api.erstellen(daten)
    return json.dumps({"success": True, "data": ergebnis})
except Exception as e:
    return json.dumps({"error": str(e)})

Beispiel: Trello-Integration

Hier ist ein vollständiges Beispiel für die Verbindung mit Trello:

#!/usr/bin/env python3
"""Trello MCP - Verwalte Trello-Boards mit DeskAgent."""

import sys
import json
import requests
from pathlib import Path
from mcp.server.fastmcp import FastMCP

sys.path.insert(0, str(Path(__file__).parent.parent / "scripts"))
from paths import load_config

mcp = FastMCP("trello")

TOOL_METADATA = {
    "icon": "dashboard",
    "color": "#0079bf"  # Trello-Blau
}

def get_config():
    config = load_config()
    return config.get("trello", {})

def api_request(endpoint, method="GET", data=None):
    config = get_config()
    url = f"https://api.trello.com/1{endpoint}"
    params = {
        "key": config["api_key"],
        "token": config["token"]
    }
    response = requests.request(method, url, params=params, json=data)
    return response.json()

@mcp.tool()
def liste_boards() -> str:
    """Liste alle deine Trello-Boards auf."""
    boards = api_request("/members/me/boards")
    return json.dumps([{"id": b["id"], "name": b["name"]} for b in boards], indent=2)

@mcp.tool()
def erstelle_karte(listen_id: str, name: str, beschreibung: str = "") -> str:
    """
    Erstelle eine neue Karte in einer Trello-Liste.

    Args:
        listen_id: Die ID der Liste
        name: Kartentitel
        beschreibung: Optionale Kartenbeschreibung
    """
    karte = api_request(f"/cards", "POST", {
        "idList": listen_id,
        "name": name,
        "desc": beschreibung
    })
    return json.dumps({"success": True, "card_id": karte["id"]})

if __name__ == "__main__":
    mcp.run()

Hilfe bekommen

Lass die KI deine Erweiterung schreiben

  1. Öffne deinen DeskAgent-Ordner in VS Code
  2. Installiere die Claude Code CLI Extension
  3. Beschreibe was du verbinden willst
  4. Claude generiert den Code
  5. Testen und verfeinern

Bestehende Erweiterungen als Referenz

Schau dir vorhandene MCP-Server in deskagent/mcp/ als Beispiele an:

Erweiterung API-Typ Gutes Beispiel für
billomat_mcp.py REST API Rechnungsstellung/Business
outlook_mcp.py COM/Lokal Desktop-Integration
paperless_mcp.py REST API Dokumentenverwaltung
userecho_mcp.py REST API Support-Tickets

Nächste Schritte

  • API-Dokumentation


    Prüfe die API-Docs deines Ziel-Services

  • Nutze Claude Code


    Lass die KI dir bei der Integration helfen

  • Teste deine Erweiterung


    Starte DeskAgent neu und probiere deine neuen Tools