gabriel / musehub public
README.md markdown
73 lines 2.0 KB
cd448303 Initial extraction of MuseHub from maestro monorepo. Gabriel Cardona <gabriel@tellurstori.com> 7d ago
1 # MuseHub
2
3 **MuseHub** — the music composition version control platform for Stori DAW.
4
5 GitHub for music. Push commits, open pull requests, track issues, browse public repos, publish releases, and expose your work to AI agents via MCP tools.
6
7 ## URL scheme
8
9 ```
10 /{owner}/{slug} → repo home page
11 musehub://{owner}/{slug} → clone URL
12 ```
13
14 ## Architecture
15
16 ```
17 musehub/
18 api/routes/musehub/ 44 route handlers (thin HTTP)
19 services/ 26 musehub_*.py business logic modules
20 db/ SQLAlchemy ORM models (Postgres)
21 models/ Pydantic request/response models
22 mcp/tools/ 7 MCP browsing tools for AI agents
23 templates/musehub/ Jinja2 + HTMX + Alpine.js web UI
24 muse_cli/ CLI-side ORM models (read by MuseHub)
25 auth/ JWT auth dependencies
26 config.py Pydantic Settings (env vars)
27 ```
28
29 ## Running locally
30
31 ```bash
32 # Start with Docker Compose
33 docker compose up -d
34
35 # Run Alembic migrations
36 docker compose exec musehub alembic upgrade head
37
38 # Seed development data
39 docker compose exec musehub python3 scripts/seed_musehub.py
40 ```
41
42 ## API
43
44 Interactive docs available at `/docs` when `DEBUG=true`.
45
46 OpenAPI spec always available at `/api/v1/openapi.json`.
47
48 ## Auth
49
50 Write endpoints and private-repo reads require:
51 ```
52 Authorization: Bearer <jwt>
53 ```
54
55 Public repo reads are unauthenticated.
56
57 ## MCP Tools
58
59 MuseHub exposes 7 server-side MCP browsing tools:
60
61 | Tool | Description |
62 |------|-------------|
63 | `musehub_browse_repo` | Repo metadata, branches, recent commits |
64 | `musehub_list_branches` | All branches with head commit IDs |
65 | `musehub_list_commits` | Commits newest-first, optional branch filter |
66 | `musehub_read_file` | Artifact metadata (MIDI/MP3/WebP) |
67 | `musehub_get_analysis` | 13-dimension musical analysis |
68 | `musehub_search` | Keyword/path search over commits |
69 | `musehub_get_context` | Full AI context document for a repo |
70
71 ## License
72
73 Proprietary — Tellurstori / Stori.