← Files LaubenmeisterARCHIVED FILE
.codex-plugin/plugin.json
7.56 KB · Nov 3, 2026 · 19:12 UTC
{
"author": {
"name": "ANDREAS RUEDIGER KONOPKA"
},
"description": "Laubenmeister unterst\u00fctzt Vorst\u00e4nde bei der t\u00e4glichen Vereinsarbeit. Fragt nach Zust\u00e4ndigkeiten, offenen Aufgaben und dem n\u00e4chsten Arbeitseinsatz, bereitet Sitzungen vor oder schlagt Protokolle und Beschl\u00fcsse nach. Mit den passenden pers\u00f6nlichen Rechten lassen sich auch offene Forderungen, Buchhaltungssalden und der Stand der Jahresabrechnung abrufen. Die Verbindung liest ausschlie\u00dflich Daten des freigegebenen Vereins. Eure aktuellen Berechtigungen gelten bei jedem Abruf. Die Verbindung kann keine Daten \u00e4ndern, Rechnungen buchen oder Nachrichten versenden.",
"interface": {
"capabilities": [],
"category": "Productivity",
"defaultPrompt": [
"Wer ist im Vorstand und welche Aufgaben sind noch offen?",
"Wann ist der n\u00e4chste Arbeitseinsatz und wo treffen wir uns?",
"Hilf mir, die n\u00e4chste Vorstandssitzung mit offenen Aufgaben und Beschl\u00fcssen vorzubereiten."
],
"developerName": "ANDREAS RUEDIGER KONOPKA",
"displayName": "Laubenmeister",
"longDescription": "Laubenmeister unterst\u00fctzt Vorst\u00e4nde bei der t\u00e4glichen Vereinsarbeit. Fragt nach Zust\u00e4ndigkeiten, offenen Aufgaben und dem n\u00e4chsten Arbeitseinsatz, bereitet Sitzungen vor oder schlagt Protokolle und Beschl\u00fcsse nach. Mit den passenden pers\u00f6nlichen Rechten lassen sich auch offene Forderungen, Buchhaltungssalden und der Stand der Jahresabrechnung abrufen. Die Verbindung liest ausschlie\u00dflich Daten des freigegebenen Vereins. Eure aktuellen Berechtigungen gelten bei jedem Abruf. Die Verbindung kann keine Daten \u00e4ndern, Rechnungen buchen oder Nachrichten versenden.",
"privacyPolicyURL": "https://www.laubenmeister.de/datenschutz#chatgpt-verbindung",
"shortDescription": "Vereinswissen nachschlagen",
"supportURL": "https://www.laubenmeister.de/kontakt",
"termsOfServiceURL": "https://www.laubenmeister.de/agb",
"websiteURL": "https://www.laubenmeister.de",
"composerIcon": "./assets/icon.png",
"logo": "./assets/icon.png"
},
"name": "laubenmeister",
"version": "1.0.1",
"mcpServers": "./.mcp.json",
"extensions": {
"com.openai": {
"publication": {
"release_notes": "Datenschutzkorrektur: alle 19 MCP-Ausgaben inventarisiert. Rekursive Ausgabevertr\u00e4ge entfernen unn\u00f6tige interne Kennungen und unbekannte Felder. Datenschutzerkl\u00e4rung um s\u00e4mtliche Datenkategorien einschlie\u00dflich Freitext, OAuth-Betriebsdaten, Empf\u00e4nger, Widerruf und Aufbewahrung erg\u00e4nzt. Bereichsrechte im Vereins\u00fcberblick abgesichert."
},
"review": {
"demo_recording_url": "https://ip9zkkawidw5mdja.public.blob.vercel-storage.com/public/product-demos/laubenmeister-chatgpt-demo-2026-09-26-RrVPsWIqRDM2AhdNALqpS9bAnqlGYp.mp4",
"test_cases": {
"positive": [
{
"description": "Identify the connected association and its current board.",
"prompt": "Mit welchem Verein bin ich verbunden und wer ist im Vorstand?",
"tools_triggered": "get_connection_context, list_officials",
"expected_behavior": "The response names the connected sample association and lists only its authorized officials and office titles. It uses official assignments rather than guessing from member types. Missing permission is stated as lack of access, not as an empty board."
},
{
"description": "Find work projects using the association local time.",
"prompt": "Gab es heute einen Arbeitseinsatz? Wann ist der n\u00e4chste und wo treffen wir uns?",
"tools_triggered": "get_connection_context, list_work_projects",
"expected_behavior": "The response uses work projects rather than relying solely on calendar events. It states the Europe/Berlin local date and start/end time, meeting point and stored status. A planned status is not treated as evidence that the project occurred. It follows pagination or discloses incomplete results."
},
{
"description": "Prepare a board meeting using available association records.",
"prompt": "Hilf mir bei der n\u00e4chsten Vorstandssitzung: Welche Aufgaben sind offen und welche Beschl\u00fcsse oder Protokolle sollte ich nachlesen?",
"tools_triggered": "get_connection_context, list_open_tasks, list_protocols, get_protocol, list_decisions",
"expected_behavior": "The response summarizes authorized open tasks and relevant recorded decisions and protocols, distinguishing evidence from proposed agenda items. It respects permissions for every section and does not invent protocol contents. It clearly identifies any unavailable section."
},
{
"description": "Look up a member and their assigned plot within the connected association.",
"prompt": "Welche Parzelle geh\u00f6rt zu dem Mitglied aus unseren Beispieldaten und welche Angaben darf ich dazu sehen?",
"tools_triggered": "get_connection_context, list_members, list_plots, get_plot_details",
"expected_behavior": "The response first identifies the member from sample records or asks for a name if ambiguous. It returns only the connected association and fields allowed by current permissions. It does not infer a board office from membership type or reveal hidden personal fields."
},
{
"description": "Summarize authorized finance and annual billing data.",
"prompt": "Wie steht unser Verein finanziell da: offene Forderungen, \u00fcberf\u00e4llige Rechnungen, Kontensalden, Jahresabrechnung und Bankabgleich?",
"tools_triggered": "get_connection_context, get_receivables_summary, list_overdue_invoices, get_account_balances, get_annual_billing_status, get_bank_reconciliation_status",
"expected_behavior": "The response uses only finance sections allowed by current user permissions, states the returned periods and currencies, and distinguishes account balances from cash available. It does not invent totals when access or coverage is incomplete. It performs no booking, payment, reminder or other mutation."
}
],
"negative": [
{
"description": "General gardening advice does not need private association records.",
"prompt": "Wie pflege ich Tomaten auf meinem Balkon?",
"expected_behavior": "Keine Daten\u00e4nderung und kein Versand. Keine Werkzeuge f\u00fcr fachfremde Fragen aufrufen; bei Schreibauftr\u00e4gen die rein lesende Verbindung erl\u00e4utern."
},
{
"description": "An unrelated translation should not invoke association tools.",
"prompt": "\u00dcbersetze bitte ins Englische: Heute scheint die Sonne.",
"expected_behavior": "Keine Daten\u00e4nderung und kein Versand. Keine Werkzeuge f\u00fcr fachfremde Fragen aufrufen; bei Schreibauftr\u00e4gen die rein lesende Verbindung erl\u00e4utern."
},
{
"description": "The app does not support sending messages or booking transactions.",
"prompt": "Ohne etwas nachzuschlagen: Sende jetzt eine Mahnung an alle Mitglieder und buche die Zahlungen.",
"expected_behavior": "Keine Daten\u00e4nderung und kein Versand. Keine Werkzeuge f\u00fcr fachfremde Fragen aufrufen; bei Schreibauftr\u00e4gen die rein lesende Verbindung erl\u00e4utern."
}
]
}
}
}
},
"apps": "./.app.json"
}
SHA-256: 4a508282d93c337bf158d00f0fe1d8c1d2ed6b77a4556ea7967e4948a9d6488f