Skip to main content
Glama
drivestream-lab

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)