Skip to main content
Glama
brnbio
by brnbio
README.md
# Project Planner MCP

MCP-Server für strukturierte Laravel-Projektplanung. Scannt dein Projekt, erstellt Tickets, exportiert als JSON.

```
inspect → plan → export → GitLab/Todoist
```

## Installation

### Via Claude Code (empfohlen)

```bash
claude mcp add project-planner -- npx @brnbio/project-planner-mcp
```

### Manuell in `~/.claude.json`

```json
{
  "mcpServers": {
    "project-planner": {
      "command": "npx",
      "args": ["@brnbio/project-planner-mcp"]
    }
  }
}
```

Dann Claude Code neustarten.

---

## Usage

### Schritt 1: Projekt analysieren

Navigiere in dein Laravel-Projekt und starte Claude Code:

```bash
cd /pfad/zu/deinem/laravel-projekt
claude
```

Dann:

```
> Analysiere das Projekt.
> Aktueller Stand: Auth funktioniert, Dashboard ist leer
> Ziel: User können Zeiten erfassen und sehen eine Wochen-Übersicht
```

Claude nutzt `inspect` und scannt automatisch:
- Models + Relations
- Migrations (DB-Schema)
- Controllers + Methods  
- Routes
- Vue Pages & Components

**Output:** `project_context.json`

### Schritt 2: Tickets planen

```
> Plane die Umsetzung
```

Claude analysiert den Gap zwischen IST und SOLL, stellt Rückfragen:
- Welche Entitäten werden benötigt?
- Wie hängen sie zusammen?
- Was ist der MVP?

Dann generiert er Tickets mit 4h/8h Schätzungen.

**Output:** `tickets_draft.json`

### Schritt 3: Tickets exportieren

```
> Exportiere die Tickets
```

Review der Ticket-Liste, dann Bestätigung.

**Output:** `tickets_final.json`

```json
[
  {
    "title": "TimeEntry Model + Migration",
    "description": "Erstelle TimeEntry Model mit user_id, started_at, ended_at, description.\n\n## Checkliste\n- [ ] Migration erstellen\n- [ ] Model mit Fillables\n- [ ] Factory erstellen\n- [ ] Relation zu User",
    "estimate": "4h",
    "labels": ["Backend", "Database"]
  }
]
```

### Schritt 4: Issues erstellen (optional)

Mit deinen bestehenden MCPs:

```
> Erstelle GitLab Issues aus tickets_final.json
> Erstelle Todoist Tasks aus tickets_final.json
```

---

## Tools

| Tool | Input | Output |
|------|-------|--------|
| `inspect` | currentState, targetState | `project_context.json` |
| `plan` | (clarifications) | `tickets_draft.json` |
| `export` | confirm: true | `tickets_final.json` |

---

## Output-Dateien

Alle Dateien landen im Projektverzeichnis und können versioniert werden:

```
dein-laravel-projekt/
├── project_context.json   # IST + SOLL + Analyse
├── tickets_draft.json     # Entwürfe
├── tickets_final.json     # Finale Tickets
└── ...
```

**Tipp:** Füge die JSON-Dateien zum Git hinzu als Planungs-Dokumentation.

---

## Ticket-Schema

```typescript
interface Ticket {
  title: string;
  description: string;      // Mit Markdown-Checkliste
  estimate: "4h" | "8h";
  labels: ("Backend" | "Frontend" | "Testing" | "Database")[];
}
```

---

## Tech Stack

Optimiert für:
- Laravel 12 + Inertia.js v2
- Vue 3 Composition API
- PestPHP
- Tailwind CSS

---

## Publishing (für Maintainer)

```bash
npm login
npm publish --access public
```

---

## Lizenz

MIT

TDQS

A4.2/5.0

Scored across 3 tools

Disambiguation5/5

Each tool has a distinct phase: inspect captures the current state, plan creates tickets from that context, and export finalizes them. No overlap in purpose; they form a clear sequence.

Naming Consistency5/5

All tool names are single-word verbs in lowercase (inspect, plan, export), following a consistent imperative style. The naming clearly indicates the action each performs.

Tool Count5/5

With only 3 tools, the set is tightly scoped to the planning workflow. Each tool is necessary and the pipeline is complete without unnecessary extras.

Completeness5/5

The tools cover the entire lifecycle from analyzing the project to generating and exporting tickets. The export tool also handles confirmation/changes, closing the loop with no obvious gaps.

Maintenance

ActivityInactive
ResponsivenessNo issues