Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,071Paid calls: 1,539Letters: 14Defects: 1,323counted 3 min ago
teppi

Server definition

Hash
sha256:d5a42a9663935ee1a8848f1a1f118caf9b0375e2db986d2e9f76785c80edf0fb
What it is
What a remote MCP server returned when asked what it offers: 6 tools

The blob, as servednamed by its sha256

{ "instructions": "Löst Dienstpläne (shift schedules) über die vigotime Planner API. Ablauf: 1) example_payload ansehen, 2) solve_submit mit einem self-contained Payload (Mitarbeiter/Schichten/Regeln als JSON, IDs statt Klarnamen — Datenminimierung!), 3) solve_status pollen bis 'completed', 4) solve_result holen. Datumsformat ISO (YYYY-MM-DD), Zeiten HH:MM. Ein Solve kostet Tokens (account_balance zeigt das Guthaben; HTTP 402 = Guthaben aufladen, 429 = warten). WICHTIG: Der Solver erzwingt NUR die Regeln im Payload (planning_rules) — ohne sie gilt nur 'max. eine Schicht pro Tag': keine Ruhezeiten, keine Folgetage-Grenzen, keine Wochenstunden-Kappen. Fuer rechtssichere Plaene (z.B. ArbZG) Regeln explizit mitgeben — example_payload(kind='rules') zeigt ein verifiziertes Beispiel. Param-Namen sind EXAKT (requireMinRest {hours}, limitConsecutiveDays {maxDays, requiredRestDays}): falsche Namen machen die Regel STILL wirkungslos — im Ergebnis rule_effectiveness pruefen und den Nutzer auf fehlende Regeln hinweisen. ZUKUNFTSKONTEXT bei Datums-Kopplungen (worksOnDate->blockDate, z.B. 'Ostern gearbeitet -> Pfingsten frei'): liegen die Block-Tage HINTER dem Planfenster, MUESSEN bekannte Abwesenheiten fuer diese Tage im Payload stehen — vacations DARF und SOLL Termine nach end_date enthalten. Der Solver waehlt dann bevorzugt Personen als Feiertags-Crew, deren Block ohnehin in Abwesenheit fiele; ohne diese Angaben plant er blind und Folgeplaene koennen unloesbar werden. Im Zweifel den Nutzer aktiv nach Urlauben/Abwesenheiten im Block-Zeitraum fragen. PRECHECKS: solve_submit liefert ggf. prechecks[] (z.B. RULE_NEEDS_FUTURE_CONTEXT). Diese Rueckfragen MUESSEN an den Nutzer weitergegeben werden — Daten nachliefern (vacations um die genannten blockDates ergaenzen) oder die Bestaetigung des Nutzers einholen, NIE stillschweigend weitermachen. PLANBILD-Regeln fuer menschliche Plaene (alle mit exakten Params, Referenz im Developer-Portal): requireMinWorkBlock/requireMinFreeBlock {minDays}, keepShiftTypeBlocks {minBlock}, preferForwardRotation {order} (immer weich), requireShiftBlocks {shiftType, minBlock, targetBlock, maxBlock, minIsHard} (dreistufig: minBlock+minIsHard=harte Untergrenze, targetBlock=weiches Ziel, maxBlock=immer harte Obergrenze; ohne minIsHard ist minBlock das weiche Ziel; es gilt minBlock <= targetBlock <= maxBlock, sonst wird die Regel verworfen), keepWeekendsWhole {}, limitConsecutiveWorkingWeekends {max}, limitShiftTypesPerWeek {max}. SERIEN-Regel shiftSequence {pattern: [{shiftType, days}|{free}], repeat, tail, cycle, anchorDate, employeeOffsets}: feste Rotation (z.B. 2 Frueh, 2 Spaet, 2 Nacht, 3 frei) ab absolutem Anker-Datum, je Mitarbeiter phasenversetzt — die Phasenlage bleibt ueber Planungszeitraeume erhalten.", "tools": [ { "description": "Aktuelles Token-Guthaben der eigenen Organisation (Solves kosten Tokens).", "inputSchema": { "properties": {}, "title": "account_balanceArguments", "type": "object" }, "name": "account_balance", "outputSchema": { "additionalProperties": true, "title": "account_balanceDictOutput", "type": "object" } }, { "description": "Ein sofort lauffähiger Beispiel-Payload für solve_submit. kind='simple' (1 Woche, 3 MA, 2 Schichten), kind='wishes' (Wünsche, Social Points, Wunschkosten) oder kind='rules' (ArbZG-Planungsregeln: 11 h Ruhe hart + max. 5 Folgetage — zeigt, wie Regeln den Plan formen; Param-Namen sind exakt, falsche werden still ignoriert).", "inputSchema": { "properties": { "kind": { "default": "simple", "title": "Kind", "type": "string" } }, "title": "example_payloadArguments", "type": "object" }, "name": "example_payload", "outputSchema": { "additionalProperties": true, "title": "example_payloadDictOutput", "type": "object" } }, { "description": "Build-Stand des laufenden Planner-Service: version (fortlaufende Build-Nummer), gitCommit, buildTime (UTC). Fuer Support-Anfragen und um Ergebnisse einem Software-Stand zuzuordnen.", "inputSchema": { "properties": {}, "title": "service_infoArguments", "type": "object" }, "name": "service_info", "outputSchema": { "additionalProperties": true, "title": "service_infoDictOutput", "type": "object" } }, { "description": "Ergebnis eines fertigen Solve-Jobs: assignments [{employee_id, shift_id, date}], unassigned_shifts mit Begründung, Statistiken.", "inputSchema": { "properties": { "job_id": { "title": "Job Id", "type": "string" } }, "required": [ "job_id" ], "title": "solve_resultArguments", "type": "object" }, "name": "solve_result", "outputSchema": { "additionalProperties": true, "title": "solve_resultDictOutput", "type": "object" } }, { "description": "Status eines Solve-Jobs (pending/running/completed/failed) inkl. Fortschritt.", "inputSchema": { "properties": { "job_id": { "title": "Job Id", "type": "string" } }, "required": [ "job_id" ], "title": "solve_statusArguments", "type": "object" }, "name": "solve_status", "outputSchema": { "additionalProperties": true, "title": "solve_statusDictOutput", "type": "object" } }, { "description": "Reicht einen Dienstplan-Solve-Job ein. `payload` ist der self-contained Request: Pflicht: start_date, end_date (ISO), department {id}, employees [{id, contractHoursPerWeek, qualificationIds}], shifts [{id, departmentId, name, startTime, endTime, shiftType, minStaff}]. Optional u. a.: planning_rules, wishes, vacations, sick_leaves, holiday_dates, locked_assignments, social_points, wish_costs, config {timeout_seconds}. vacations darf Termine NACH end_date enthalten — noetig bei Datums-Kopplungsregeln mit Block-Tagen hinter dem Fenster (siehe Instructions). Datenschutz: IDs statt Namen verwenden. Antwort: {job_id, status}.", "inputSchema": { "properties": { "payload": { "additionalProperties": true, "title": "Payload", "type": "object" } }, "required": [ "payload" ], "title": "solve_submitArguments", "type": "object" }, "name": "solve_submit", "outputSchema": { "additionalProperties": true, "title": "solve_submitDictOutput", "type": "object" } } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:d5a42a9663935ee1a8848f1a1f118caf9b0375e2db986d2e9f76785c80edf0fb | sha256sum