Skip to main content
Glama

claude-factory

Ein persönliches „Loop-Engineering“-System, das per Sprachdialog gesteuert wird.

Wenn du die Claude-App im Sprachmodus ansprichst, arbeitet das dahinterliegende Claude Code im Repository und stellt Rückfragen, sobald Entscheidungen nötig sind. Antwortest du per Sprache oder über den Bildschirm, geht die Arbeit weiter. Das Konzept liegt in docs/01_企画書.md, die Umsetzungsrichtlinie in docs/02_制作指示書.md, das Sitzungsmanagement in docs/03_セッション管理.md.

あなた(音声)
  └ Claude アプリ/ボイスモード(秘書)
      └ カスタムコネクタ = MCP Bridge Server(Bearer 認証)
          ├ Orchestrator ── Claude Code(claude-agent-sdk)── 各リポジトリ
          └ SQLite ── Dashboard(FastAPI + React)

Im Kern steht ein Gate: Plan → Genehmigung → Ausführung. Arbeiten, bei denen geschrieben wird, kehren immer zuerst als Plan zurück und werden erst ausgeführt, wenn du sie genehmigt hast.


1. Einrichtung

Python 3.12 oder höher, Node.js 18 oder höher, Claude Code CLI (mit Max-Konto angemeldet).

# Mac / Linux
uv sync --extra dev              # または: pip install -r requirements.txt
cp .env.example .env
python -c "import secrets; print(secrets.token_urlsafe(32))"   # → .env の CF_MCP_TOKEN
python -c "import secrets; print(secrets.token_urlsafe(16))"   # → .env の CF_DASHBOARD_PASSWORD
# Windows
python -m venv .venv; .\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
copy .env.example .env    # 中身のトークンを実値に置き換える

Da das SDK die Authentifizierung von Claude Code übernimmt, starte claude auf dem Ausführungshost einmal und melde dich mit dem Max-Konto an.

config.yaml an die eigene Umgebung anpassen

Passe mindestens die Verzeichnisse an, die bearbeitet werden dürfen. Alle Pfade, die nicht dort stehen, werden abgelehnt.

security:
  repo_allowlist:
    - ~/Private_Project           # Mac
    # - C:\Users\<you>\repos      # Windows

Related MCP server: MCP-Claude Code Bridge

2. Start

./scripts/run_mcp.sh          # MCP サーバー(秘書の窓口 + ジョブのワーカー)
./scripts/run_dashboard.sh    # ダッシュボード(初回はフロントも自動ビルド)
.\scripts\run_mcp.ps1
.\scripts\run_dashboard.ps1
  • MCP: http://127.0.0.1:8010/mcp

  • Dashboard: http://127.0.0.1:8787

Der MCP-Serverprozess ist es, der die Jobs tatsächlich ausführt. Wenn nur das Dashboard läuft, kommt die Warteschlange nicht voran. Für den Dauerbetrieb ist run_mcp zuständig.

Verbindungsprüfung:

curl -i http://127.0.0.1:8010/mcp                    # 401 = 認証が効いている
curl -s -X POST http://127.0.0.1:8010/mcp \
  -H "Authorization: Bearer $CF_MCP_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

3. Als Connector registrieren

./scripts/tunnel.sh quick     # 使い捨て(URL は起動ごとに変わる)

Hänge /mcp an das angezeigte https://<ランダム>.trycloudflare.com an und füge es in der Claude-App unter „+“ → Connectors → Custom Connector hinzufügen ein.

Es gibt zwei Möglichkeiten, das Token zu übergeben:

Methode

Zu registrierende URL

Hinweise

Header (empfohlen)

https://.../mcp

In den Connector-Einstellungen Authorization: Bearer <CF_MCP_TOKEN> hinzufügen

Pfad

https://.../t/<CF_MCP_TOKEN>/mcp

Ausweichlösung, falls der Registrierungsbildschirm keine Header setzen kann

Bei der Pfadmethode liegt das Token offen in der URL (bleibt in Logs zurück). Wenn du den Header verwenden kannst, setze mcp.allow_path_token in config.yaml auf false, um diese Möglichkeit zu schließen.


4. Verwendung

Sprich zum Beispiel so mit der Sekretärin (Sprache):

Status erfahren

  • „Wie läuft es gerade?“ → get_org_status (die gesamte Organisation auf einmal – das zuerst)

  • „Was ist mit diesem Job?“ → get_job (mit detail zwischen summary / report / log umschalten)

  • „Lies mir die Ergebnisse der Recherche vor“ → read_board (alle Ergebnisse der Abteilungen stehen hier)

Organisation bewegen (absteigend nach Schweregrad)

  • „Starte eine neue Aufgabe mit ‚Rechnungsparser‘“ → create_task (Verzeichnis anlegen + git init + Registrierung in einem Schritt; config.yaml muss weder bearbeitet noch neu gestartet werden)

  • „Leg die Frage der Speichermethode dem Designteam vor“ → start_council (kann sorglos verwendet werden, weil keine Dateien verändert werden)

  • „Was ist das Ergebnis der Besprechung?“ → get_council (Ergebnis, Diskussion je Streitpunkt, verbleibende Gegenstimmen)

  • „Bitte demo, die fehlgeschlagenen Tests zu beheben“ → dispatch_to_code (es wird nur ein Plan erzeugt)

  • „Genehmigt“ → answer_question (erst hier wird ausgeführt)

  • „Ich beauftrage dich mit diesem Ziel“ → grant_mandate (die autonome Ausführung beginnt; mit revoke_mandate stoppen)

Sitzungen

  • „Verzweige die aktuelle Sitzung und probiere einen anderen Ansatz aus“ → fork_session (per git worktree isolieren)

Organisationsform (Design-Dokument docs/04_組織化設計書.md)

子会社 = プロジェクト(互いに不干渉)
  部署 = 役割        調査 / 設計班 / 実装 / デザイン / 統合管理
    成果ボード       部署はここだけを介して成果を見せ合う

Die Besprechung des Designteams läuft in vier von der Moderation geführten Phasen ab.

  1. Vorbereitende Durchsicht – Die Moderation entscheidet selbst über offensichtliche Punkte (in resolved_by_chair festgehalten) und extrahiert nur die Streitpunkte.

  2. Zuweisung – Für jeden Streitpunkt wird eine Person aus der Personalliste benannt (mit Begründung).

  3. Diskussion – Die benannten Personen äußern ihre Meinung und eine Kritik an den vorangegangenen Beiträgen.

  4. Schlussfolgerung – Die Moderation liefert für jeden Streitpunkt das Ergebnis, verbleibende Gegenstimmen und die Punkte, die der Mensch klären muss.

Die Personalliste steht in config/personas.yaml (1 Moderator + 10 Mitglieder). Sie kann frei bearbeitet werden und wird beim Start übernommen.

Berechtigungen je Abteilung (Prinzip der geringsten Rechte)

Rolle

Web

Dateizugriff

Genehmigung

Recherche

Ja

Nein

Nicht nötig

Designteam

Ja

Nein

Nicht nötig

Implementierung

Nein

Nur im Repository

Mandat

Design

Ja

Nur im Ergebnisverzeichnis

Mandat

Integrationsmanagement

Nein

Nein

Recherche darf das Web sehen, aber keine Dateien schreiben; Implementierung darf Dateien schreiben, aber nicht das Web sehen – so ist es getrennt. Änderungen erfolgen über roles: in config.yaml, und nur Menschen können sie vornehmen (es entsteht kein Weg, über den der Integrationsmanagement-Agent seine eigenen Berechtigungen ausweiten kann).

Autonome Ausführung (Mandat)

Wenn du mit grant_mandate ein Ziel genehmigst, verteilt das Integrationsmanagement die Arbeit an die Abteilungen, und es geht ohne einzelne Genehmigungen weiter. Als Gegenleistung für weniger Genehmigungen läuft es in einer Form, die jederzeit verworfen werden kann.

  • Es wird ein eigener Arbeitsbranch angelegt (main bleibt unberührt).

  • Budget (Jobanzahl, Kosten) und Frist werden gesetzt; wenn beides aufgebraucht ist, stoppt es automatisch.

  • Löschen, git push, Änderungen am Verlauf und das Hinzufügen von Abhängigkeiten liegen außerhalb des Mandats. Es wird immer angehalten und nachgefragt.

  • Mit dem „Stopp“-Button im Dashboard (revoke_mandate) lässt sich alles samt laufender Ausführung widerrufen.

Im Dashboard siehst du die Warteschlange offener Fragen, die Fortschritts-Timeline, Live-Logs, Berichte, den Fork-Baum der Sitzungen und das Audit-Log. Antworten laufen per Sprache wie über den Bildschirm durch denselben Weg.

Sekretärin-Skills (skills/)

Da die Betriebsweise jeden Morgen einen neuen Chat startet, hat die Sekretärin keine Erinnerung an den Vortag. Die Startprozedur ist als Skill unter skills/factory-startup/ abgelegt (Situationserfassung → Vorlesereihenfolge → Vorschläge für heute, samt Vorleseskript). Lade sie in den Einstellungen der Claude-App hoch und rufe sie zu Beginn des Chats mit /factory-startup (Kurzform /cf) auf. Es sind keine Triggerwörter in natürlicher Sprache hinterlegt (um Fehlauslösungen und verpasste Starts zu vermeiden). Die /-Vorschläge der App stammen aus dem name des Skills – der Name selbst ist also das Signal. Details in skills/README.md.

Die Rollen sind getrennt: SECRETARY_GUIDE auf der Connector-Seite (wird bei jeder Anfrage mitgeschickt – also kurz halten) und der Skill (wird nur bei Bedarf gelesen – also Abläufe und Skripte dort ablegen).

Wirksame Anweisung für die Sekretärin (Konzept §Verifikation 4)

Damit die Sekretärin nicht mitten im Gespräch eigenmächtig Aufträge losschickt, sag ihr am besten Folgendes:

Rufe dispatch\_to\_code erst auf, wenn ich „Beauftrage es so“ sage. Bis dahin begleite die Beratung und arbeite die Anweisung mit mir zusammen aus.


5. Sicherheit (Umsetzungsrichtlinie §8)

Umgesetzte Schutzmaßnahmen:

#

Anforderung

Umsetzung

1

MCP erfordert Bearer-Token

BearerAuthMiddleware. Ohne Konfiguration wird der Start verweigert

2

repo_path nur absolute Pfade aus der allowlist

resolve_repo_path. Verweigert auch .. und Symlink-Ausbrüche

3

Sekretärin keine Raw-Shell bieten

MCP-Tools sind nur eine begrenzte Schnittstelle

4

Schreiben/Löschen/Shell-Ausführung hinter Genehmigungs-Gate

Plan → Genehmigung → Ausführung + can_use_tool + OS-Sandbox

5

Keine Secrets committen

.env in .gitignore, nur .env.example wird verteilt

6

Alle dispatch- und answer-Aufrufe im Audit-Log

audit_log-Tabelle, „Verlauf“ im Dashboard

7

Rate-Limit

Token-Bucket für MCP und Dashboard

8

Dashboard hinter Authentifizierung

Cookie-Sitzung oder Cloudflare Access

Need correct table row 8: "Dashboard hinter Authentifizierung" should be "hinter Authentifizierung" and implementation "Cookie-Sitzung oder Cloudflare Access". The above is a bit jumbled because I included "| 8 |" in same line. Final should be clean.

Let's redo table:

| 7 | Rate-Limit | Token-Bucket für MCP und Dashboard | | 8 | Dashboard hinter Authentifizierung | Cookie-Sitzung oder Cloudflare Access |

Need no "MCP" typo.

Then paragraph:

Beim Test mit echtem Claude Code sind zwei wichtige Punkte aufgefallen; sie sind bereits abgesichert:

  • can_use_tool wird für Tools, die der CLI automatisch genehmigt, nicht aufgerufen. Wenn man sich nur auf den Autorisierungs-Callback verlässt, kommt es auch im Plan-Modus zu Schreibvorgängen außerhalb des Repositorys. Deshalb sind das CLI-seitige Verbot über disallowed_tools und eine OS-Sandbox (orchestrator.sandbox) übereinandergelegt.

  • Das Verlassen des Verzeichnisses per cd wird durch die Pfadprüfung nicht gestoppt. Absolute Pfade und .. in Bash-Befehlen werden mit _bash_escapes_workspace überwacht.

  • Die .claude/settings.json des Ziel-Repositorys wird nicht geladen (setting_sources=[]). Wenn sie geladen würde, könnte das Repository sich seine eigenen Berechtigungen selbst genehmigen.


6. Fester öffentlicher Zugang (M5)

Wegwerf-Tunnel ändern die URL bei jedem Start. Wenn du den Dienst regelmäßig nutzt, wechsle zu einem benannten Tunnel.

cloudflared tunnel login
cloudflared tunnel create claude-factory
cloudflared tunnel route dns claude-factory mcp.<domain>
cloudflared tunnel route dns claude-factory dash.<domain>

~/.cloudflared/config.yml:

tunnel: claude-factory
credentials-file: /path/to/<tunnel-id>.json
ingress:
  - hostname: mcp.<domain>
    service: http://localhost:8010
  - hostname: dash.<domain>
    service: http://localhost:8787
  - service: http_status:404

Den Dauerbetrieb übernimmt der systemd-Dienst cloudflared.service (er liest /etc/cloudflared/config.yml).

systemctl status cloudflared          # 状態確認
sudo systemctl restart cloudflared    # 設定変更の反映
journalctl -u cloudflared -f          # ログ

./scripts/tunnel.sh named claude-factory kann den Tunnel ebenfalls starten, wird aber normalerweise nicht verwendet, weil der Connector dann doppelt auf denselben Tunnel gelegt würde wie beim Dienst. Wenn du auf manuellen Betrieb umstellen willst, stoppe zuerst sudo systemctl stop cloudflared. Auch das Skript erkennt den laufenden Dienst, warnt und fragt nach.

Auf der Route-53-Seite erzeugt cloudflared tunnel route dns einen CNAME (<tunnel-id>.cfargotunnel.com). Die Registrierungs-URL für den Connector lautet https://mcp.<domain>/mcp. Vor das Dashboard wird Cloudflare Access gesetzt; nur in diesem Fall wird dashboard.auth: none gesetzt.


7. Entwicklung

.venv/bin/python -m pytest -q                                  # テスト
cd src/claude_factory/dashboard/web && npm run dev             # フロントの開発サーバー

Die Struktur entspricht §2 der Umsetzungsrichtlinie (als Paket unter src/claude_factory/, nicht direkt unter src/):

src/claude_factory/
├─ config.py        設定(config.yaml + .env)
├─ models.py        型・出力規約・その解析
├─ store.py         SQLite DAO
├─ security.py      トークン・allowlist・レート制限
├─ runner.py        claude-agent-sdk ラッパと承認ゲート(役割別の権限)
├─ orchestrator.py  ジョブキュー、計画→承認→実行、自走ループ
├─ sessions.py      セッション一覧/閲覧/分岐(git worktree 隔離)
├─ personas.py      社員名簿と組閣
├─ council.py       設計班の合議エンジン
├─ integrate.py     統合管理(作業計画を出すだけ。実行はしない)
├─ org.py           組織全体の状況
├─ mcp_server.py    秘書向け MCP
└─ dashboard/       FastAPI + React(Vite)

Dokumentation: docs/01_企画書.md (Konzept) → 02_制作指示書.md (Basis) → 03_セッション管理.md (Ergänzung) → 04_組織化設計書.md (Organisation).


8. Was noch offen ist

  • M6 Sprach-E2E: Ein reales Projekt komplett per Sprache durchlaufen lassen (nach der Connector-Registrierung manuell prüfen).

  • Push-Benachrichtigungen bei anstehenden Entscheidungen (v2).

  • Aufräumregeln für verzweigte Worktrees (nach dem Merge löschen oder behalten).

  • Erkennung, wenn das Integrationsmanagement immer wieder dieselbe Arbeit zuteilt (derzeit sind Budget und Frist die einzige Bremse).

  • Ob bei unterschiedlichen Meinungen zwischen Abteilungen der Integrationsmanager als Vermittler eingesetzt wird oder ob die Entscheidung an einen Menschen eskaliert.

Need check typos in the last block: "Umsetzungsrichtlinie" spelled correctly? I wrote "Umsetzungsrichtlinie" with "s" maybe. Let's verify: "Umsetzungsrichtlinie" - actually correct German: "Umsetzungsrichtlinie" (Umsetzung + s + Richtlinie). Yes, "Umsetzungsrichtlinie" has an "s" between. I wrote "Umsetzungsrichtlinie" in section 5. In section 7 "Umsetzungsrichtlinie" maybe. Need consistent. Let's use "Umsetzungsrichtlinie" (with "s"). In my fragment I wrote "Umsetzungsrichtlinie" perhaps. We'll correct.

Also "src/claude_factory/" - I wrote src/claude_factory/ in fragment as src/claude_factory/? Need ensure "claude_factory" with underscore. Good.

Also "docs" text: docs/01_企画書.md etc. Need correct "企画書" etc. In fragment I wrote "企画書" maybe. Ensure no typos.

Let's reconstruct final from section 7 onward cleanly:

7. Entwicklung

.venv/bin/python -m pytest -q                                  # テスト
cd src/claude_factory/dashboard/web && npm run dev             # フロントの開発サーバー

Die Struktur entspricht §2 der Umsetzungsrichtlinie (als Paket unter src/claude_factory/, nicht direkt unter src/):

src/claude_factory/
├─ config.py        設定(config.yaml + .env)
├─ models.py        型・出力規約・その解析
├─ store.py         SQLite DAO
├─ security.py      トークン・allowlist・レート制限
├─ runner.py        claude-agent-sdk ラッパと承認ゲート(役割別の権限)
├─ orchestrator.py  ジョブキュー、計画→承認→実行、自走ループ
├─ sessions.py      セッション一覧/閲覧/分岐(git worktree 隔離)
├─ personas.py      社員名簿と組閣
├─ council.py       設計班の合議エンジン
├─ integrate.py     統合管理(作業計画を出すだけ。実行はしない)
├─ org.py           組織全体の状況
├─ mcp_server.py    秘書向け MCP
└─ dashboard/       FastAPI + React(Vite)

Dokumentation: docs/01_企画書.md (Konzept) → 02_制作指示書.md (Basis) → 03_セッション管理.md (Ergänzung) → 04_組織化設計書.md (Organisation).


8. Was noch offen ist

...

Good.

Need section 5 table row 8 in final clean:

| 8 | Dashboard hinter Authentifizierung | Cookie-Sitzung oder Cloudflare Access |

Need row 7 "MCP" not "MCP" typo: "Token-Bucket für MCP und Dashboard".

Need row 6 "dispatch- und answer-Aufrufe" - "dispatch" is not code? Original "dispatch・answer" no code. We can keep.

Need "answer" should perhaps be answer to show function. But original no code. Keep.

Need "audit_log" code.

Need "dispatch_and_answer" no.

Now, about "Sekretärin" umlaut: "Sekretärin" is correct (S e k r e t ä r i n). I need write "Sekretärin" not "Sekretärin"? Actually correct German: "Sekretärin" (S e k r e t ä r i n). Yes.

Need "Live-Logs" and "Audit-Log" capitalization.

Need "Cloudflare Access" keep.

Need "Route 53" with space. Good.

Need "CNAME" and "cfargotunnel.com" in code. Good.

Need "Cloudflare Access" in section 6 "vor das Dashboard gesetzt" - "gesetzt" repeated with dashboard.auth gesetzt; fine.

Need "dashboard.auth: none" - code span.

Need "mcp.allow_path_token" - code span.

Need "BearerAuthMiddleware" - code span.

Need "resolve_repo_path" - code span.

Need "orchestrator.sandbox" - code span.

Need "gix" in "git worktree" - "git worktree" plain. Good.

Potential issue: "Ein persönliches „Loop-Engineering“-System" - The original "個人用「ループエンジニアリング」システム" could be "personal system for loop engineering". Our version okay.

Need "Claude アプリのボイスモード" - "Sprachmodus" is not exactly "voice mode"; "Voice-Modus" would be more literal. In German, "Sprachmodus" implies voice. Good.

Need "音声か画面で" = "per Sprache oder über den Bildschirm" good.

Need "裏の Claude Code" = "das dahinterliegende Claude Code" good.

Need "計画 → 承認 → 実行" - we kept with arrows. Good.

Need "書き込みが起きる作業" = "Arbeiten, bei denen geschrieben wird" good.

Need "必ず一度計画として返り" = "always return once as plan". We translated.

Need "あなたが承認するまで実行されない" = "not executed until you approve". Good.

Now, final answer should be just that. Need not mention anything else.

Let's produce final with all corrections.# claude-factory

Ein persönliches „Loop-Engineering“-System, das per Sprachdialog gesteuert wird.

Wenn du die Claude-App im Sprachmodus ansprichst, arbeitet das dahinterliegende Claude Code im Repository und stellt Rückfragen, sobald Entscheidungen nötig sind. Antwortest du per Sprache oder über den Bildschirm, geht die Arbeit weiter. Das Konzept liegt in docs/01_企画書.md, die Umsetzungsrichtlinie in docs/02_制作指示書.md, das Sitzungsmanagement in docs/03_セッション管理.md.

あなた(音声)
  └ Claude アプリ/ボイスモード(秘書)
      └ カスタムコネクタ = MCP Bridge Server(Bearer 認証)
          ├ Orchestrator ── Claude Code(claude-agent-sdk)── 各リポジトリ
          └ SQLite ── Dashboard(FastAPI + React)

Im Kern steht ein Gate: Plan → Genehmigung → Ausführung. Arbeiten, bei denen geschrieben wird, kehren immer zuerst als Plan zurück und werden erst ausgeführt, wenn du sie genehmigt hast.


1. Einrichtung

Python 3.12 oder höher, Node.js 18 oder höher, Claude Code CLI (mit Max-Konto angemeldet).

# Mac / Linux
uv sync --extra dev              # または: pip install -r requirements.txt
cp .env.example .env
python -c "import secrets; print(secrets.token_urlsafe(32))"   # → .env の CF_MCP_TOKEN
python -c "import secrets; print(secrets.token_urlsafe(16))"   # → .env の CF_DASHBOARD_PASSWORD
# Windows
python -m venv .venv; .\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
copy .env.example .env    # 中身のトークンを実値に置き換える

Da das SDK die Authentifizierung von Claude Code übernimmt, starte claude auf dem Ausführungshost einmal und melde dich mit dem Max-Konto an.

config.yaml an die eigene Umgebung anpassen

Passe mindestens die Verzeichnisse an, die bearbeitet werden dürfen. Alle Pfade, die nicht dort stehen, werden abgelehnt.

security:
  repo_allowlist:
    - ~/Private_Project           # Mac
    # - C:\Users\<you>\repos      # Windows

2. Start

./scripts/run_mcp.sh          # MCP サーバー(秘書の窓口 + ジョブのワーカー)
./scripts/run_dashboard.sh    # ダッシュボード(初回はフロントも自動ビルド)
.\scripts\run_mcp.ps1
.\scripts\run_dashboard.ps1
  • MCP: http://127.0.0.1:8010/mcp

  • Dashboard: http://127.0.0.1:8787

Der MCP-Serverprozess ist es, der die Jobs tatsächlich ausführt. Wenn nur das Dashboard läuft, kommt die Warteschlange nicht voran. Für den Dauerbetrieb ist run_mcp zuständig.

Verbindungsprüfung:

curl -i http://127.0.0.1:8010/mcp                    # 401 = 認証が効いている
curl -s -X POST http://127.0.0.1:8010/mcp \
  -H "Authorization: Bearer $CF_MCP_TOKEN" \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

3. Als Connector registrieren

./scripts/tunnel.sh quick     # 使い捨て(URL は起動ごとに変わる)

Hänge /mcp an das angezeigte https://<ランダム>.trycloudflare.com an und füge es in der Claude-App unter „+“ → Connectors → Custom Connector hinzufügen ein.

Es gibt zwei Möglichkeiten, das Token zu übergeben:

Methode

Zu registrierende URL

Hinweise

Header (empfohlen)

https://.../mcp

In den Connector-Einstellungen Authorization: Bearer <CF_MCP_TOKEN> hinzufügen

Pfad

https://.../t/<CF_MCP_TOKEN>/mcp

Ausweichlösung, falls der Registrierungsbildschirm keine Header setzen kann

Bei der Pfadmethode liegt das Token offen in der URL (bleibt in Logs zurück). Wenn du den Header verwenden kannst, setze mcp.allow_path_token in config.yaml auf false, um diese Möglichkeit zu schließen.


4. Verwendung

Sprich zum Beispiel so mit der Sekretärin (Sprache):

Status erfahren

  • „Wie läuft es gerade?“ → get_org_status (die gesamte Organisation auf einmal – das zuerst)

  • „Was ist mit diesem Job?“ → get_job (mit detail zwischen summary / report / log umschalten)

  • „Lies mir die Ergebnisse der Recherche vor“ → read_board (alle Ergebnisse der Abteilungen stehen hier)

Organisation bewegen (absteigend nach Schweregrad)

  • „Starte eine neue Aufgabe mit ‚Rechnungsparser‘“ → create_task (Verzeichnis anlegen + git init + Registrierung in einem Schritt; config.yaml muss weder bearbeitet noch neu gestartet werden)

  • „Leg die Frage der Speichermethode dem Designteam vor“ → start_council (kann sorglos verwendet werden, weil keine Dateien verändert werden)

  • „Was ist das Ergebnis der Besprechung?“ → get_council (Ergebnis, Diskussion je Streitpunkt, verbleibende Gegenstimmen)

  • „Bitte demo, die fehlgeschlagenen Tests zu beheben“ → dispatch_to_code (es wird nur ein Plan erzeugt)

  • „Genehmigt“ → answer_question (erst hier wird ausgeführt)

  • „Ich beauftrage dich mit diesem Ziel“ → grant_mandate (die autonome Ausführung beginnt; mit revoke_mandate stoppen)

Sitzungen

  • „Verzweige die aktuelle Sitzung und probiere einen anderen Ansatz aus“ → fork_session (per git worktree isolieren)

Organisationsform (Design-Dokument docs/04_組織化設計書.md)

子会社 = プロジェクト(互いに不干渉)
  部署 = 役割        調査 / 設計班 / 実装 / デザイン / 統合管理
    成果ボード       部署はここだけを介して成果を見せ合う

Die Besprechung des Designteams läuft in vier von der Moderation geführten Phasen ab.

  1. Vorbereitende Durchsicht – Die Moderation entscheidet selbst über offensichtliche Punkte (in resolved_by_chair festgehalten) und extrahiert nur die Streitpunkte.

  2. Zuweisung – Für jeden Streitpunkt wird eine Person aus der Personalliste benannt (mit Begründung).

  3. Diskussion – Die benannten Personen äußern ihre Meinung und eine Kritik an den vorangegangenen Beiträgen.

  4. Schlussfolgerung – Die Moderation liefert für jeden Streitpunkt das Ergebnis, verbleibende Gegenstimmen und die Punkte, die der Mensch klären muss.

Die Personalliste steht in config/personas.yaml (1 Moderator + 10 Mitglieder). Sie kann frei bearbeitet werden und wird beim Start übernommen.

Berechtigungen je Abteilung (Prinzip der geringsten Rechte)

| Rolle | Web | Dateizugriff | Genehmigung | | --- | --- |

A
license - permissive license
Not graded
quality - not tested
B
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

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Connects Claude Desktop directly to GitHub repositories and git commands, enabling users to clone repos, check status, commit changes, push code, create repositories, and manage GitHub resources through natural conversation.
    467
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables natural voice interaction with Claude Code through speech-to-text, supporting wake word activation and multiple backends like Whisper and Google. It allows users to execute commands and control their coding environment hands-free via their microphone.
    2
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables bidirectional voice interaction for Claude Code using local speech-to-text and text-to-speech models optimized for Apple Silicon. It provides tools to listen to user speech via microphone and speak responses aloud through system speakers.
    16
    Apache 2.0

View all related MCP servers

Related MCP Connectors

  • Connect AI assistants to GitHub - manage repos, issues, PRs, and workflows through natural language.

  • Trade Robinhood through natural language in Claude Code.

  • Connect Claude to Fathom meeting recordings, transcripts, and summaries

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/yuritada/claude-factory'

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