prayog-repo-fleet
README.md
# prayog-repo-fleet
**Org:** [drivestream-lab](https://github.com/drivestream-lab) (create the GitHub repo under this org when publishing)
**Shared, up-to-date code graphs across multi-program repositories** — exposed via MCP so humans and agents (Cursor, etc.) can ask fleet questions with evidence.
MIT licensed. Local-first; same shape for later cloud deploy.
## What this is
| Piece | Role |
|-------|------|
| `config/fleet.yaml` | Declare programs and repos (add/remove here) |
| Python **syncer** | Clone/pull `develop` only when commit SHA changes → index |
| **codebase-memory-mcp** (CBM) | Persistent code graph + MCP tools + graph UI `:9749` |
| **HTTP MCP gateway** | Streamable HTTP at `:9751/mcp` (Cursor / remote clients) |
| Cursor MCP example | Wire IDE chat to the fleet graph via URL |
Agent **skills** such as `query-fleet` live in **`prayog-skills`** (Launchpad distributes them). This repo is the **data/MCP plane**, not the skill pack.
## Quick start
Prefer **git-backed** sync (clone/pull `develop` on SHA change):
```bash
cp config/fleet.example.yaml config/fleet.yaml # edit urls / YOUR_ORG
cp .env.example .env # set GITHUB_TOKEN for private repos
make up # build + start
make ps # status
make projects # list indexed graphs
make logs # follow logs
make ui # http://localhost:9749
make down # stop
```
Clones land under `./data/repos/<program>/<repo>/`. Do **not** bind-mount host
checkouts over those paths if you want the syncer to fetch remote `develop`.
Bind-mount / `skip_git` pilot (no remote fetch): see [docs/LOCAL.md](docs/LOCAL.md).
Or raw Compose:
```bash
docker compose -f docker-compose.yml -f docker-compose.local.yml up --build -d
```
| | Env var | Default (relative to this repo) |
|--|--|--|
| Graph | `CBM_HOST_DIR` | `../central-graphs` |
| Private clones | `GITHUB_TOKEN` | (empty — required for private GitHub HTTPS) |
Full steps and **Cursor IDE verification** (without skills): **[docs/LOCAL.md](docs/LOCAL.md)**.
## Cursor MCP (verify now)
1. Keep `prayog-repo-fleet-cbm` running (`make up`).
2. Put this in `~/.cursor/mcp.json` (or project `.cursor/mcp.json`):
```json
{
"mcpServers": {
"prayog-fleet-cbm": {
"url": "http://localhost:9751/mcp"
}
}
}
```
3. Restart Cursor / reload MCP; confirm **`prayog-fleet-cbm`** connects.
4. In chat: *“Using MCP prayog-fleet-cbm, call list_projects and list every project.”*
Remote (same stack on another host — private network; add auth later):
```json
{
"mcpServers": {
"prayog-fleet-cbm": {
"url": "http://<fleet-host>:9751/mcp"
}
}
}
```
## Layout
```text
/data/repos/<program>/<repo>/ # on-disk clones or bind-mounts
CBM project id: <program>__<repo> # e.g. drivestream__order-service
```
## Docs
- [Architecture](docs/ARCHITECTURE.md)
- [Local + Cursor verify](docs/LOCAL.md)
- [Deploy stub](docs/DEPLOY.md)
- [Skills pointer](skills/README.md)
## License
[MIT](LICENSE)
This server cannot be deployed
Maintenance
ActivitySlowing
ResponsivenessNo issues