OpenVerein

io.github.KI-Klub-Werder-e-V由 GitHub 账号 KI-Klub-Werder-e-V 发布v0.1.1更新于 Nov 4, 2026

Club management for German e.V. clubs: members, fees, invoices, events and member portal.

已验证Streamable HTTP可网页运行效率与工作流金融商业与电商

概览

AI 生成的概览

OpenVerein 的远程 MCP 服务器,面向德国注册协会(e.V.)的自托管会务管理软件,让助手读取并操作会员、会费、发票、活动和会员门户。

可以做什么
  • 会员:查看和管理会员、分组、家庭、自定义字段与名单
  • 财务:处理会费、报价、发票、催款信、SEPA 直接借记和银行对账导入
  • 账务:处理簿记、凭证、捐赠及税务相关导出
  • 协会生活:管理带报名和候补名单的活动,以及邮件、文档、物资、问卷和任务
  • 门户与平台:操作会员自助数据、角色、API 令牌和 Webhook
  • 访问范围限于登录用户在会务管理或会员门户中可见和可执行的操作
适用场景
适合已经运行 OpenVerein 的德国注册协会,让助手回答诸如哪些发票未付、谁报名了某场活动等问题,或通过协会自己的实例完成日常管理工作。
运行要求
需要一个在协会自有地址上运行并可访问的 OpenVerein 实例,MCP 端点位于该地址下。客户端需填写协会地址,并通过浏览器 OAuth 登录:会员使用门户中的邮件验证码,管理员使用常规登录加第二因素。令牌不会写入任何文件。
安装前请注意
可授予助手只读或读写权限;读写权限允许其修改协会数据,请谨慎选择范围,并可在“设置 → 代理”中撤销。相关操作可能发送邮件、开具发票和直接借记,并涉及财务记录。只连接你预期的协会地址,并注意项目仍处于早期开发阶段。

安装

在 SourceWeft 中

  1. 打开 控制台中的 OpenVerein,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

OpenVerein

Vereinsverwaltung für den eingetragenen Verein: offen, selbst gehostet, komplett exportierbar.

[CI] [Lizenz: AGPL-3.0] [Node 24] [Status: frühe Entwicklung]

Demo ausprobieren · Funktionen · Lokal starten · Mit Claude Code verbinden · Mitmachen

[OpenVerein in zwei Minuten erklärt]

Klick aufs Bild für das Video in voller Auflösung. Die interaktive Fassung liegt in docs/media/erklaervideo/index.html.

Open-Source-Vereinsverwaltung für eingetragene Vereine (e.V.): Mitglieder, Gruppen, Beiträge und Rechnungen, SEPA-Lastschrift, Buchhaltung, Termine, Mail, Dokumente und ein Mitgliederportal. Du kannst alles selbst hosten, jeden Datensatz exportieren und jede Aktion auch über die REST-API ausführen.

Lizenz: AGPL-3.0. Status: frühe Entwicklung, Stück für Stück gebaut (siehe openspec/).

Warum OpenVerein?

  • Deine Daten bleiben bei Dir. Selbst gehostet, vollständiger Export, keine Abo-Falle.
  • Gemacht für deutsches Vereinsrecht. EÜR, GoBD, SEPA, XRechnung, Zuwendungsbestätigungen nach BMF-Muster, DATEV-Export.
  • Alles per API. Die Oberfläche nutzt nur die öffentliche /api/v1, mit OpenAPI-Dokumentation, Webhooks und MCP-Anbindung für KI-Agenten.
  • Frei. AGPL-3.0, offen entwickelt, Beiträge willkommen.

Inhalt

Was OpenVerein kann

BereichHighlights
MitgliederGruppenmitgliedschaften mit Datum, Haushalte mit Zahler und Familienrabatt, eigene Felder, Dubletten, gespeicherte Ansichten, Massenaktionen, altersabhängiger Gruppenwechsel, Bestandserhebung für den Landessportbund, Ehrungsregister und Glückwunschmails, Kontaktprotokoll, Hinweise zur Datenqualität, Arbeitsstunden, Mitgliedsbescheinigungen, Listen als PDF und vCard
GeldBeiträge mit Gültigkeitsdatum und Altersstaffeln, verpflichtende Vorschau vor jedem Beitragslauf und optional eine automatische Monatsvorschau, Angebote, die zu Rechnungen werden, Rechnungen mit Standardtexten und Netto- oder Bruttopreisen, Mahnwesen mit Briefen, SEPA-Lastschrift (Vorlage für den Verwendungszweck) und Überweisungen, CAMT-Import mit Zuordnung, XRechnung ausgehend und eingehend (ZUGFeRD/UBL/CII), Artikelkatalog, Briefe als ein Duplex-PDF
BücherEinnahmen-Überschuss-Rechnung (EÜR) auf einem ausgeglichenen Journal, an das nur angehängt wird (GoBD-Festschreibung, Stornos), Belege und Kassenbuch, Kontobewegungen sammeln und buchen, eigene Steuersätze, DATEV-Export, Kassenbericht als PDF, Soll-Ist-Vergleich, Ehrenamtspauschalen, Spenden und Zuwendungsbestätigungen nach BMF-Muster (Geld- und Sachspenden) per Mail oder Brief
VereinslebenTermine mit Zu- und Absagen, Warteliste und Anwesenheitslisten für Fördermittel, ICS-Feed und -Import, öffentliches Kalender-Widget, Mail mit Vorlagen und Versandprotokoll, Dokumente mit Ordnerrechten, Inventar und Verleih, Umfragen, Aufgaben, Mitgliederversammlungen und Vorstandssitzungen mit Protokoll
PortalSelbstbedienung für Mitglieder: Datenänderungen, Rechnungen mit GiroCode, Dokumente, Umfragen, Auslagenerstattung, Haushaltsvertretung für den Zahler, Funktionen pro Verein und Gruppe schaltbar
PlattformRollen mit Spartenbezug und Feldbeschränkungen, TOTP für die Finanzen, API-Tokens und OpenAPI, signierte Webhooks, Hintergrundjobs, Komplettexport, DSGVO-Werkzeuge, ovctl für Installation, Backup, Wiederherstellung und Update

Demo ausprobieren

Ohne Installation: Die öffentliche Demo läuft unter https://openverein.ki-klub-werder.de. Sie wird regelmäßig zurückgesetzt, verschickt keine echten Mails und enthält nur erfundene Daten.

Lokal lädst Du den Demoverein so:

sh
npm run seed:demo    # lädt den „SV Lindenhof 1921 e.V.“ mit 150 erfundenen Mitgliedern in eine leere Instanznpm run dev

Melde Dich mit [email protected] / verein-demo-2026 an. npm run seed:demo -- --reset leert eine Demo-Instanz und lädt sie neu; eine Instanz mit einem echten Verein fasst der Befehl nicht an.

Mit DEMO_MODE=true lädt der Server die Demo selbst und setzt sie alle DEMO_RESET_HOURS (Standard 24) zurück. Er verschickt dann keine echten Mails, zeigt ein Demo-Banner, versieht jedes PDF mit einem Wasserzeichen und sperrt Konten, Rollen, API-Schlüssel, Uploads und Importe, damit eine öffentliche Demo für alle nutzbar bleibt. Vereinseinstellungen, Texte und Mitglieder können Besucher bis zum nächsten Zurücksetzen bearbeiten. Das Mitgliederportal zeigt den Anmeldecode auf dem Bildschirm, statt ihn zu mailen. Auf einer Instanz mit einem echten Verein startet ein Server mit DEMO_MODE=true nicht:

sh
DEMO_MODE=true docker compose --profile app up --build

Lokal starten

Voraussetzungen: Node 24, Docker.

sh
cp .env.example .envnpm installnpm run dev

npm run dev startet Postgres und Mailpit in Docker, spielt die Migrationen ein und startet die API auf http://localhost:3300 und die Web-App auf http://localhost:5173. Beim ersten Aufruf richtest Du Deinen Verein ein. Mails, die die App verschickt, landen in Mailpit unter http://localhost:18025.

API-Referenz: http://localhost:3300/api/docs (OpenAPI-Dokument unter /api/v1/openapi.json).

Die ganze App in Docker

sh
docker compose --profile app up --build

Dann http://localhost:3300 öffnen.

Für den Verein

Mit Claude Code verbinden

Das Plugin verbindet Claude Code über den Remote-MCP-Server unter <club>/mcp mit einem Verein. Dein Agent sieht und tut genau das, was Du in der Vereinsverwaltung oder im Mitgliederportal siehst und tust, nicht mehr.

  1. Installiere das Plugin in Claude Code:

    /plugin marketplace add KI-Klub-Werder-e-V/openverein/plugin install openverein@openverein

    Ab Claude Code 2.1.275 geht das auch in einem Schritt: /plugin install openverein --marketplace KI-Klub-Werder-e-V/openverein.

  2. Gib die Adresse Deines Vereins ein, wenn Du danach gefragt wirst, zum Beispiel https://verein.example.org. Für die öffentliche Demo gibst Du https://openverein.ki-klub-werder.de ein. Später änderst Du die Adresse mit /plugin configure openverein@openverein; danach meldest Du Dich neu an. In der Shell gibst Du die Adresse direkt beim Installieren mit: claude plugin install openverein@openverein --config club_url=https://verein.example.org.

  3. Anmelden: Führe /mcp aus, wähle openverein und authentifiziere Dich. Im Browser gilt:

    • Mitglieder melden sich mit ihrem E-Mail-Code im Portal an
    • die Vereinsverwaltung meldet sich mit ihrem normalen Login und zweitem Faktor an

    Prüfe vor der Anmeldung, dass der Browser die Adresse Deines Vereins zeigt. Wähle dann „nur lesen“ oder „lesen und schreiben“ und erlaube den Zugriff. Dabei landet kein Token in irgendeiner Datei.

  4. Frag zum Beispiel: „Welche Rechnungen sind bei mir offen?“ oder „Wer hat sich für das Training am Dienstag angemeldet?“.

Die Aufrufe des Agenten siehst Du unter Einstellungen → Agenten (oder Portal → Agenten), dort kannst Du ihm den Zugriff auch wieder entziehen. Skripte und das Kommandozeilenwerkzeug ov nutzen statt OAuth ein Token von derselben Seite. claude.ai und ChatGPT verbinden sich als benutzerdefinierter Connector mit derselben Adresse <club>/mcp.

Auf einem Server betreiben

./ovctl install richtet Caddy (HTTPS), die App und Postgres mit Docker Compose ein; ./ovctl backup, restore, update und doctor halten alles am Laufen. Details in docs/operations.md.

Tests

sh
npm run typecheck && npm run lintnpm test            # Unit- und Integrationstests (braucht den Postgres-Container)npm run test:e2e    # End-to-End-Tests mit Playwrightnpm run validate:xrechnung  # Beispiel-E-Rechnungen durch den offiziellen KoSIT-Validator (braucht Java 17+ oder Docker)

Wie das Projekt aufgebaut ist

  • openspec/specs/ ist die verbindliche Beschreibung des Verhaltens, eine Spezifikation pro Fähigkeit. Jedes Stück entsteht über einen OpenSpec-Change in openspec/changes/ und wird nach dem Merge archiviert.
  • src/server/ Fastify-API, src/web/ React-App, src/shared/ gemeinsame Schemas für beide, migrations/ SQL-Migrationen, die nur vorwärts laufen.
  • docs/adr/ Architekturentscheidungen, docs/decisions.md kleinere Entscheidungen.
  • PRODUCT.md und DESIGN.md beschreiben das Produkt und das Designsystem.
  • android/, ios/, capacitor.config.ts, codemagic.yaml: mobile Apps, die den Web-Build einpacken, siehe docs/mobile.md.

Mitmachen

Beiträge sind willkommen, ob Fehlerbericht, Funktionswunsch, Doku oder Code.

  • CONTRIBUTING.md: Einrichtung, Arbeitsweise mit OpenSpec, Regeln und PR-Checkliste.
  • SECURITY.md: Sicherheitslücken bitte vertraulich melden, nicht als öffentliches Issue.
  • CODE_OF_CONDUCT.md: unser Verhaltenskodex.
  • Issues: Fehler melden oder Funktionen vorschlagen.

来源:README.md,提交 588923f

工具

0
SourceWeft 尚未读取此服务器的工具。

版本历史

2
  1. v0.1.1最新Nov 4, 2026
  2. v0.1.0Nov 3, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式必需10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分