Skip to main content
Glama

Schedule MCP · Persönliches Projektplanungs-Tool

Minimalistisches persönliches Projektplanungs-Tool. Ein Python-Dienst übernimmt zwei Rollen gleichzeitig:

  1. MCP-Server: Anbindung an XiaoZhi AI über Plattformen wie Verdure MCP Platform / imcp.pro, sodass XiaoZhi deine Planungsdaten per Sprache/Dialog einfach lesen und schreiben kann und regelbasiert Terminerinnerungen ausgibt (die verbleibende natürliche Sprachorganisation übernimmt das DeepSeek-v4-Modell auf der XiaoZhi-Serverseite).

  2. REST-API + PC-Frontend: Der PC-Browser greift direkt auf die /app-Seite des bereitgestellten Dienstes zu (oder öffnet lokal web/index.html und zeigt auf die Bereitstellungsadresse) und bietet eine übersichtliche Anzeige und Bearbeitung von Kalender / Gantt-Diagramm (bearbeitbar) / Multi-Projektverwaltung / To-do-Planung (kurzfristig/langfristig).

Die Datenspeicherung verwendet SQLite (null zusätzliche Abhängigkeiten), nach der Bereitstellung sofort einsatzbereit, kein lokaler Backend-Betrieb erforderlich.

Referenzprojekt: shiikun-cn/tarot-mcp (MCP-over-HTTP-Kompatibilitätsmodus ist nachweislich funktionsfähig).


Funktionsübersicht

Funktion

Beschreibung

Multi-Projektverwaltung

Projektname/Beschreibung/Status (geplant/laufend/archiviert drei Zustände)/Priorität/Start-End-Datum/Farbe

Terminplanung (Gantt)

Aufgaben unter Projekten, mit Start/Ende-Zeitraum, Fälligkeitsdatum, Status (offen/laufend/abgeschlossen); Gantt-Seite direkt bearbeitbar: Ränder der Balken ziehen für Start/Ende-Datum, Balken anklicken für Eigenschaften, Projekte/Aufgaben hinzufügen, einheitlich speichern

Automatischer Aufgabenstatus

Nach Aktivierung in den Einstellungen werden Aufgaben automatisch nach aktuellem Datum auf offen (nicht begonnen)/laufend/abgeschlossen (abgelaufen) gesetzt, keine Anhäufung von "überfällig"

To-do-Planung

Erfasst noch unbestimmte Projekte/Dinge: unterteilt in kurzfristig/langfristig, mit Priorität (keine Datumseigenschaft, nimmt nicht an Erinnerungen teil)

Terminerinnerungen

Regel-Engine berechnet in Echtzeit: überfällig / heute fällig / bald fällig (Standard: nächste 7 Tage) / Projektende naht (primär basierend auf Aufgaben/Projekten)

Terminanfrage

Neues get_schedule-Tool: range=today/week/month kompakter Zeitplan, KI-Frage "Was steht heute an?" nutzt es bevorzugt

Wochendefinition

In den Einstellungen wählbar Montag / Sonntag als Wochenstart, vereinheitlicht Kalender-Monatsansicht, Wochenübersicht, "diese Woche"-Statistik

PC-Frontend

Übersicht / Kalender / Gantt / Projekte / To-do-Planung / Erinnerungen sechs Ansichten, einzelne HTML-Datei, kein Build erforderlich

Datensicherung

/api/backup exportiert vollständiges JSON (inkl. Einstellungen), /api/restore stellt wieder her


Related MCP server: Todoist MCP Server

Projektstruktur

schedule-mcp/
├── app.py                     # Flask 主服务:MCP JSON-RPC 兼容层 + REST API + 前端托管
├── db.py                      # SQLite 数据层 + 设置 + 自动任务状态 + 提醒规则引擎 + 备份/恢复
├── requirements.txt           # 仅 Flask + gunicorn(SQLite 用标准库)
├── Dockerfile                 # 容器镜像(gunicorn 生产启动,PORT 环境变量)
├── .gitignore
├── .github/workflows/
│   └── keep-alive.yml         # 服务保活(Render 免费版必须,详见下文说明)
├── web/
│   └── index.html             # PC 端前端(单文件,无外部依赖)
├── smoke-test.mjs             # 端到端冒烟测试(35 项断言)
├── seed-demo.mjs              # 演示数据播种(日期相对今天)
└── data/                      # SQLite 数据库文件(data/schedule.db,不入库)

Datenmodell

Tabelle

Felder

projects

id, name, description, color, status(planned/active/archived), priority(1-5), start_date, end_date, created_at, updated_at

tasks

id, project_id(Fremdschlüssel, kaskadierendes Löschen), title, description, status(todo/doing/done), priority, start_date, end_date, due_date

todos

id, text, bucket(soon/later), completed(0/1), completed_at, project_id, priority(1-5) (keine Datumseigenschaft)

settings

key-value: auto_task_status(0/1), week_start(mon/sun), last_auto_date

Alle Datumsformate: YYYY-MM-DD. Erinnerungen werden nicht in der Datenbank gespeichert, sondern von der Regel-Engine in Echtzeit berechnet.

Hinweis: Die alten Projektstatus paused/completed werden beim Start automatisch zu planned/archived migriert; die Felder progress (Aufgabenfortschritt) und due_date (To-do-Fälligkeitsdatum) wurden auf Produktebene entfernt (Datenbankspalten bleiben für die Kompatibilität mit alten Backups erhalten, werden aber beim Lesen/Schreiben und Anzeigen nicht mehr verwendet).


Regeln für den automatischen Aufgabenstatus (wirksam nach Aktivierung in den Einstellungen)

  • Heute vor dem Startdatum → todo (offen)

  • Heute zwischen Startdatum und Ende/Fälligkeitsdatum → doing (laufend)

  • Heute nach dem Ende/Fälligkeitsdatum → done (abgeschlossen, vermeidet Anhäufung von "überfällig")

  • Aufgabe ohne jegliche Datumseigenschaft → Status bleibt unverändert

  • Bei Neuanlage/Aktualisierung von Aufgaben sofortige Einordnung (nicht durch die Tages-Idempotenz eingeschränkt); die vollständige Ausführung läuft pro Tag nur einmal (last_auto_date-Idempotenz), die Schaltfläche "Jetzt ausführen" im Einstellungsfeld erzwingt die Ausführung

  • Bei jeder Abfrage von Aufgaben/Terminen wird ebenfalls automatisch ausgelöst (falls aktiviert)


MCP-Tool-Liste (16 Stück, für XiaoZhi-AI-Aufrufe)

Tool

Funktion

Typische Beispielfrage

list_projects

Projekte auflisten (nach Status filtern)

"Welche Projekte habe ich?"

create_project

Neues Projekt erstellen

"Erstell mir ein 'Renovierung'-Projekt, November bis Dezember, höchste Priorität"

update_project

Projekt aktualisieren (Status/Zeit/Priorität…)

"Markiere Projekt XX als laufend/archiviert"

delete_project

Projekt löschen (kaskadierend Aufgaben löschen)

"Lösche Projekt XX"

list_tasks

Aufgaben auflisten (nach Projekt/Status filtern)

"Welche Aufgaben hat Projekt XX?"

create_task

Neue Aufgabe unter Projekt erstellen

"Füge XX eine Aufgabe hinzu, morgen fällig"

update_task

Aufgabe aktualisieren (Status/Zeit…)

"Markiere Aufgabe XX als abgeschlossen"

delete_task

Aufgabe löschen

"Lösche Aufgabe XX"

list_todos

To-do-Planung auflisten (kurzfristig/langfristig)

"Welche To-dos habe ich?"

create_todo

Neue To-do-Planung erstellen (ohne Datum, mit Priorität)

"Notier ein To-do: Flugtickets kaufen"

update_todo

To-do-Planung aktualisieren (abgeschlossen/Kategorie ändern/Priorität)

"Hak XX ab"

delete_todo

To-do-Planung löschen

"Lösche XX"

get_reminders

Terminerinnerungen (überfällig/heute/bald/Projektende nahe)

"Was gibt es zu erinnern?"

get_schedule

Kompakter Zeitplan: range=today/week/month (Standard: today)

"Was steht heute an?" bevorzugt dieses verwenden

get_schedule_summary

Terminübersicht (heute/diese Woche/diesen Monat + Statistik)

"Wie ist der Gesamtfortschritt?"

get_gantt_data

Projektplanungszeiträume (archivierte Projekte erscheinen nicht)

"Wie ist der Zeitplan von Projekt XX?"

Die an die KI zurückgegebenen Daten sind kompakt: Die Metadaten aller Tools enthalten nicht color, created_at, updated_at, project_color; Aufgaben enthalten kein progress, To-do-Planungen kein due_date. content[0].text ist chinesischer, gut lesbarer Text, die Metadaten sind strukturierte Daten, beide Felder sind konsistent.

So kommentierst du Tools aus / änderst sie (wichtig)

Die Definitionen aller Tools sind zentral in der TOOLS-Liste in app.py (ca. Zeilen 260-560), ein Tool entspricht einem Objekt in geschweiften Klammern in der Liste, mit den vier Feldern name / description / inputSchema / handler. Die tools/list-Liste wird automatisch aus TOOLS generiert, Auskommentieren versteckt es vor der KI, kein anderer Code muss geändert werden, nach dem Speichern Dienst neu starten.

Beispiel 1: create_project-Tool auskommentieren (XiaoZhi soll keine Projekte erstellen können)

# app.py 中 TOOLS 列表里,把整个对象包进注释:
    # {
    #     "name": "create_project",
    #     "description": "新建一个项目。…",
    #     "inputSchema": {…},
    #     "handler": tool_create_project,
    # },

Beispiel 2: Nur die Tool-Beschreibung ändern (KI anleiten, wann es verwendet wird)

    {
        "name": "get_reminders",
        "description": "获取事务提醒…。建议每天早上询问用户时优先调用。",
        # ↑ 只改 description 字符串即可
        …
    },

Beispiel 3: Nur "Aufgabenerinnerungs"-Tools behalten

Kommentiere in der TOOLS-Liste alle Nicht-Erinnerungs-Tools (wie create_project, list_tasks, create_todo usw.) komplett aus und behalte nur get_reminders, get_schedule, get_schedule_summary. Nach erneuter Erkennung auf der Verdure-Plattform sieht XiaoZhi nur noch die verbleibenden Tools.

Tipp: Nach dem Auskommentieren empfiehlt es sich, die MCP-Server-Konfiguration auf der Verdure-Plattform erneut zu speichern/zu aktualisieren, um die erneute Erkennung auszulösen. Nach jeder Änderung an TOOLS kannst du den Dienst lokal neu starten und mit node smoke-test.mjs prüfen, ob die Tool-Liste wie erwartet geändert wurde (die Assertion enthält fest verdrahtete 16 Stück; wenn du Tools auskommentierst, passe das expected-Array in diesem Skript entsprechend an).


REST-API (PC-Frontend-Direktverbindung, CORS vollständig geöffnet)

Methode

Pfad

Beschreibung

GET

/health

Health-Check (für Keep-alive-Erkennung)

GET/POST

/api/projects

Projektliste / neu erstellen

GET/PUT/DELETE

/api/projects/<id>

Projektdetails / aktualisieren / löschen

GET/POST

/api/tasks

Aufgabenliste(?project_id=&status=) / neu erstellen

GET/PUT/DELETE

/api/tasks/<id>

Aufgabendetails / aktualisieren / löschen

GET/POST

/api/todos

To-do-Planungsliste(?bucket=&completed=) / neu erstellen

GET/PUT/DELETE

/api/todos/<id>

To-do-Planungsdetails / aktualisieren / löschen

GET

/api/reminders?window_days=7

Terminerinnerungen

GET

/api/summary

Terminübersicht (inkl. week_start)

GET

/api/gantt

Gantt-Planungsdaten (ohne archivierte Projekte)

GET/PUT

/api/settings

Einstellungen lesen/ändern (auto_task_status / week_start)

POST

/api/settings/apply-auto

Automatische Aufgabenstatus-Aktualisierung sofort ausführen

GET

/api/backup

Vollständiges Backup-JSON exportieren (inkl. Einstellungen)

POST

/api/restore

Aus Backup-JSON wiederherstellen

GET

/app

PC-Planungspanel (Frontend-Seite)

Einheitliche Rückgabe {"code":0,"data":…}; Fehler geben {"code":4xx/5xx,"error":"…"} zurück. Optionale Authentifizierung: Nach Setzen der Umgebungsvariable API_KEY müssen alle Anfragen den Header X-API-KEY mitführen (außer /health und /app, damit Keep-alive und Seitenzugriff nicht beeinträchtigt werden).


Lokaler Schnellstart (Verifizierung)

cd schedule-mcp
python -m venv .venv
# Windows: .venv\Scripts\activate     macOS/Linux: source .venv/bin/activate
pip install -r requirements.txt
python app.py        # 默认监听 0.0.0.0:8080,可用环境变量 PORT 修改

💡 gunicorn nur unter Linux verfügbar: gunicorn hängt von Unix fcntl ab, unter Windows lokal nicht direkt ausführbar (Bereitstellung auf Render/Docker-Linux-Containern ist nicht betroffen). Für lokale Debugging-Zwecke immer python app.py verwenden (Flask-Entwicklungsserver, funktional identisch), in der Produktion verwendet das Dockerfile gunicorn.

Verifizierung:

# 1) 健康检查
curl http://127.0.0.1:8080/health

# 2) MCP 握手
curl -X POST http://127.0.0.1:8080/ -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{}}'

# 3) 列出工具(应 16 个)
curl -X POST http://127.0.0.1:8080/ -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'

# 4) 今日日程(新工具)
curl -X POST http://127.0.0.1:8080/ -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"get_schedule","arguments":{"range":"today"}}}'

# 5) 事务提醒
curl -X POST http://127.0.0.1:8080/ -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":4,"method":"tools/call","params":{"name":"get_reminders","arguments":{}}}'

# 6) 设置:星期定义 / 自动任务状态
curl http://127.0.0.1:8080/api/settings
curl -X PUT http://127.0.0.1:8080/api/settings -H "Content-Type: application/json" \
  -d '{"week_start":"sun","auto_task_status":"1"}'

Browser öffnen http://127.0.0.1:8080/app für die PC-Panel-Nutzung (Same-Origin-Direktverbindung, keine Konfiguration erforderlich); wenn du web/index.html direkt per Doppelklick öffnest, musst du in den ⚙-Einstellungen die API-Adresse auf http://127.0.0.1:8080 setzen.

Beigefügte Selbsttest-/Demo-Skripte:

node smoke-test.mjs            # 端到端冒烟测试(35 项断言,含自动状态/设置/字段精简)
node seed-demo.mjs             # 播种演示数据(一个项目+4任务+4待办,日期相对今天)

Daten zurücksetzen: data/schedule.db löschen und Dienst neu starten (die Datenbankdatei ist im Repository standardmäßig per gitignore ausgeschlossen).


Bereitstellungsschritte (GitHub → Render → Verdure → XiaoZhi-AI)

Schritt 1: Auf GitHub hochladen

  1. Neues Repository auf GitHub erstellen (z. B. schedule-mcp, Private oder Public).

  2. Code pushen (nicht data/*.db committen, .gitignore schließt es aus; es wird auch empfohlen, .venv/ nicht zu committen):

cd schedule-mcp
git init
git add .
git commit -m "feat: schedule-mcp 个人排程 MCP 服务"
git branch -M main
git remote add origin https://github.com/<你的用户名>/schedule-mcp.git
git push -u origin main

Schritt 2: Auf Render bereitstellen (kostenlos)

  1. render.com öffnen → New → Web Service → dein GitHub-Repository verbinden.

  2. Konfiguration:

    • Name: schedule-mcp (beliebig)

    • Environment: Python 3 (oder Docker; bei Docker entfallen die folgenden Build/Start-Angaben)

    • Build Command: pip install -r requirements.txt

    • Start Command: gunicorn -w 2 -b 0.0.0.0:${PORT:-8080} app:app --timeout 30

    • Instance Type: Free

    • (Optional) Environment Variables: API_KEY=dein_zufälliger_Schlüssel (wenn gesetzt, müssen MCP/REST-Anfragen X-API-KEY mitführen)

  3. Deploy, auf Build-Abschluss warten. Dienstadresse erhalten: https://schedule-mcp.onrender.com.

  4. Verifizieren: Browser öffnen https://schedule-mcp.onrender.com/health sollte {"code":0,"status":"ok",…} zurückgeben.

⚠️ Hinweise zur Render-Free-Version:

  • Kostenlose Instanzen schlafen nach ca. 15 Minuten ohne Traffic ein, die nächste Anfrage benötigt einen Kaltstart (erste Antwort langsam, ca. 5-30 Sekunden). → Keep-alive muss aktiviert sein (siehe unten).

  • Das Dateisystem der kostenlosen Version ist temporär: Erneutes Bereitstellen/Neustarten löscht die SQLite-Daten. Für den persönlichen Gebrauch wird empfohlen, in den ⚙-Einstellungen regelmäßig "Backup exportieren" durchzuführen oder nach dem Neuaufbau die Daten neu einzugeben (für kurzfristige Alltagsplanung unkritisch).

Schritt 3: Keep-alive aktivieren (für Render-Free-Version erforderlich)

  1. .github/workflows/keep-alive.yml bearbeiten, URL auf deine Dienstadresse ändern (z. B. https://schedule-mcp.onrender.com/health).

  2. (Optional) Wenn API_KEY gesetzt ist, im GitHub-Repository Settings → Secrets and variables → Actions → New repository secret SERVICE_API_KEY hinzufügen und die entsprechende Zeile im Workflow aktivieren.

  3. Änderung pushen. Actions pingt alle 10 Minuten /health, der Dienst bleibt aktiv.

  4. Falls der Workflow-Keep-alive ausfällt: cron-job.org verwenden, um GET-Anfragen an die Dienstadresse zu senden. Die Zugriffsfrequenz auf alle 10 bis 14 Minuten einstellen.

Schritt 4: MCP-Server auf der Verdure MCP Platform hinzufügen

  1. Bei der Verdure MCP Platform anmelden (falls noch kein Konto, auf dieselbe Weise registrieren wie beim Referenzprojekt; die Plattform verbindet sich mit XiaoZhi / Tuya usw. Assistenten-Endpunkten).

  2. Zur Seite "MCP-Server hinzufügen / verwalten" gehen, HTTP-Typ wählen (Verdure erkennt POST / als JSON-RPC, dieser Dienst ist entsprechend implementiert, identisch mit tarot-mcp).

  3. Ausfüllen:

    • Dienstadresse (URL): https://schedule-mcp.onrender.com/ (Wurzelpfad genügt, der Dienst verarbeitet MCP-JSON-RPC unter /)

    • Falls Authentifizierung gesetzt ist, den Schlüssel für X-API-KEY eintragen (oder Header gemäß Plattformanforderungen)

  4. Nach dem Speichern führt die Plattform automatisch initialize + tools/list-Erkennung durch, die 16 Tools oben sollten sichtbar sein. Wenn die Tool-Liste leer ist, prüfen, ob /health des Dienstes erreichbar ist und ob am Ende der Adresse versehentlich /api usw. angehängt wurde.

  5. Den hinzugefügten MCP-Server an deinen XiaoZhi-AI-Assistenten binden (in der Plattform Assistent auswählen → Server verknüpfen).

Schritt 5: XiaoZhi-AI-Sprachverifizierung

Zu XiaoZhi ähnliche Befehle sprechen, um Lesen/Schreiben zu testen:

  • "Was steht heute an?" / "Was habe ich heute vor?" → löst get_schedule aus (bevorzugt)

  • "Was gibt es zu erinnern?" → löst get_reminders aus

  • "Was steht diese Woche an?" / "Was steht diesen Monat an?" → löst get_schedule(range=week/month) aus

  • "Notier ein To-do: Flugtickets kaufen, hohe Priorität" → löst create_todo aus

  • "Erstell ein Projekt namens Renovierung, November bis Dezember, höchste Priorität" → löst create_project aus

  • "Füge dem Renovierungsprojekt eine Aufgabe hinzu: Designkonzept festlegen, fällig am 1. Dezember" → löst create_task aus

  • "Welche Projekte habe ich? Wie ist der Fortschritt von Projekt XX?" → löst list_projects / list_tasks / get_gantt_data aus

  • "Markiere Aufgabe XX als abgeschlossen" → löst update_task aus


Keep-alive-Erläuterung (Forschungsergebnis)

Fazit: Keep-alive ist keine Anforderung des MCP-Protokolls und auch keine Anforderung der Verdure MCP Platform; es ist nur erforderlich, wenn der Dienst auf einem kostenlosen Hosting mit Schlafmodus bei fehlendem Traffic bereitgestellt wird (z. B. Render Free / Railway-Freikontingent).

Begründung:

  1. Die keep-alive.yml im Referenzprojekt tarot-mcp ist ein GitHub-Actions-Zeitplan, der alle 10 Minuten mit curl ein GET auf /health ausführt, wobei die URL auf https://tarot-mcp.onrender.com/health zeigt — dies ist eine Keep-alive-Maßnahme gegen den Schlafmodus der Render-Free-Instanz nach ca. 15 Minuten ohne Traffic.

  2. Das MCP-Protokoll selbst (initialize / tools/list / tools/call) hat keine Keep-alive-Anforderungen; die Verdure-Plattform ist eine Verwaltungsebene für "Anbindung + Remote-Injektion", sie ist dafür verantwortlich, die Tools in XiaoZhi zu injizieren, solange dein Dienst online ist, und startet keine schlafenden externen Dienste für dich.

  3. Daher:

    • Bereitstellung auf Render Free / Railway-Freikontingent usw. mit Schlafmodus → Keep-alive muss beibehalten werden (sonst ist der Kaltstart bei Tool-Aufrufen durch XiaoZhi langsam oder zeitüberschreitend, schlechte Erfahrung);

    • Bereitstellung auf kostenpflichtigen Dauerinstanzen (Render Starter+, Cloud-Server usw.) oder Verdure-eigenem Hosting (falls von der Plattform unterstützt) → .github/workflows/keep-alive.yml kann gelöscht werden, ohne Nebenwirkungen.

  4. Dieses Projekt behält standardmäßig keep-alive.yml bei und passt es an (URL muss auf deine Dienstadresse geändert werden), da die Referenzkette die Render-Free-Version verwendet, was mit deiner Bereitstellungsweise übereinstimmt.


Häufige Fragen

F: Nach der Bereitstellung sagt XiaoZhi "keine verfügbaren Tools"? A: Zuerst prüfen, ob https://<dein-Dienst>/health erreichbar ist; dann auf der Verdure-Plattform die Serverkonfiguration erneut speichern/aktualisieren, um die erneute Erkennung auszulösen. Beachte, dass die Adresse den Wurzelpfad (/) verwenden muss, nicht /api.

F: Wie bringe ich die KI dazu, nur Aufgabenerinnerungen zu machen und weniger Hinzufügen/Löschen-Tools zu haben? A: Siehe oben "So kommentierst du Tools aus / änderst sie" — in der TOOLS-Liste in app.py die nicht benötigten Tools auskommentieren, nach dem Auskommentieren Dienst neu starten und auf Verdure erneut erkennen lassen.

F: Überschreibt der automatische Aufgabenstatus meine manuell gesetzten Abschluss-Status? A: Nach Aktivierung wird der Aufgabenstatus vollständig aus dem Datum abgeleitet (nicht begonnen→offen, laufend→laufend, abgelaufen→abgeschlossen). Wenn du manuell steuern möchtest, schalte den Schalter in den Einstellungen aus; nach dem Ausschalten bleiben nur manuelle Änderungen.

F: Daten nach Neustart der Render-Free-Version verloren? A: Das Dateisystem der kostenlosen Instanz ist temporär. In ⚙ Einstellungen → Backup exportieren regelmäßig JSON speichern; nach dem nächsten Neuaufbau mit "Aus Backup wiederherstellen" importieren (Backup enthält Einstellungen).

F: Wie füge ich API-Authentifizierung hinzu? A: Render-Umgebungsvariable API_KEY=xxx hinzufügen. Danach erfordern MCP (POST /) und REST (/api/*) den X-API-KEY-Header; im Frontend in den ⚙-Einstellungen den Schlüssel eintragen, im Keep-alive-Workflow ein Secret konfigurieren.

F: Kann ich woanders bereitstellen? A: Ja, jedes Hosting, das Python ausführen kann (Railway / Fly.io / Cloud-Server / internes NAS). Die SQLite-Datei liegt in data/, mit persistentem Volume kann Datenverlust vermieden werden.

F: Wie sehe ich, welche Tools XiaoZhi tatsächlich aufgerufen hat? A: In den Render-Logs werden die Parameter und Ergebnisse jedes tools/call ausgegeben; die Tool-Liste kann auch in der GET-Antwort von / eingesehen werden.


Technische Punkte (Kompatibilität mit tarot-mcp beibehalten)

  • MCP läuft über JSON-RPC over HTTP (einzelner Endpunkt POST /) und implementiert initialize (protocolVersion 2024-11-05)、notifications/initializedtools/listtools/callping;für unbekannte Methoden wird ein leeres Ergebnis zurückgegeben. Dies entspricht dem Kompatibilitäts-Patch von tarot-mcp und wurde auf Plattformen wie Verdure / imcp.pro als funktionsfähig verifiziert.

  • CORS ist vollständig aktiviert(Access-Control-Allow-Origin: *), sodass die HTML-Oberfläche auf dem PC das REST-API direkt domänenübergreifend ansprechen kann.

  • SQLite nutzt den WAL-Modus sowie eine unabhängige Verbindung pro Anfrage, was zusammen mit den mehreren gunicorn-Workern sicheres Lesen und Schreiben gewährleistet.

  • Die Tools geben content[0].text (auf Chinesisch gut verständlich) und metadata (strukturiertes JSON, bereinigt um KI-unrelevante Felder wie color/created_at/updated_at/project_color) zurück, was sowohl das Verständnis der KI als auch die maschinelle Auswertung ermöglicht.

  • Die Einstellungen (Status der automatischen Aufgaben / Wochendefinition) werden in der serverseitigen Tabelle settings gespeichert; das Frontend-Panel und die MCP-Abfragen nutzen dieselbe Konfiguration. Die Statistik „diese Woche“ sowie der Frontend-Kalender und der Wochenkalender folgen sämtlich dieser Wochendefinition.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

  • Manage projects, tasks, time tracking, and team collaboration through natural language.

  • Schedule tasks for later from your AI agent: reminders, delayed webhooks, recurring jobs.

  • Calendar API for AI agents: events, availability, Google/Microsoft setup, scheduling, and iCal.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/shiikun-cn/schedule-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server