Skip to main content
Glama
kamiwaza-drew

Git MCP Assistant Tool

README.md
# git-mcp-extensions

Kamiwaza extensions repository for kamiwazaai.

## Overview

This repository contains Kamiwaza platform extensions:
- **Apps** (`apps/`): Multi-service applications deployed to App Garden
- **Services** (`services/`): App Garden backend services (e.g., vector databases)
- **Tools** (`tools/`): MCP protocol servers deployed to Tool Shed

## Quick Start

### Prerequisites

- Docker and Docker Compose
- Python 3.10+
- [uv](https://github.com/astral-sh/uv) (recommended) or pip

### Setup

```bash
# Install development dependencies
make install

# List available extensions
make list
```

### Creating Extensions

```bash
# Create a new app
make new TYPE=app NAME=my-app

# Create a new service
make new TYPE=service NAME=service-milvus

# Create a new tool
make new TYPE=tool NAME=my-tool
```

### Development Workflow

```bash
# Build an extension
make build TYPE=app NAME=my-app

# Test an extension
make test TYPE=app NAME=my-app

# Validate all extensions
make validate

# Run full CI pipeline
make ci-pipeline
```

## Structure

```
git-mcp-extensions/
├── apps/                    # Multi-service applications
│   └── {app-name}/
│       ├── kamiwaza.json    # Extension metadata
│       ├── docker-compose.yml
│       ├── backend/
│       └── frontend/
├── services/                # App Garden backend services
│   └── {service-name}/
│       ├── kamiwaza.json
│       └── docker-compose.yml
├── tools/                   # MCP tool servers
│   └── {tool-name}/
│       ├── kamiwaza.json
│       ├── Dockerfile
│       └── src/
├── shared/                  # Shared libraries
│   ├── python/
│   └── typescript/
├── make/                    # Build system modules
├── scripts/                 # Build/test scripts
└── .ai/                     # AI assistant rules
```

## Extension Requirements

Each extension must have:
- `kamiwaza.json` with name, version, risk_tier
- `Dockerfile` for each service
- `docker-compose.yml` for local development
- Health endpoint at `GET /health` (apps only)

See `.ai/rules/architecture.md` for detailed requirements.

## Updating from Upstream

This repository was created from the Kamiwaza extensions template. To pull infrastructure updates:

```bash
# Update shared infrastructure (preserves apps/, services/, and tools/)
copier update --trust --skip-answered --defaults

# Review changes
git diff

# Commit updates
git add -A && git commit -m "Update infrastructure from upstream"
```

Tip: keep `.copier-answers.yml` committed so the template source is known. The flags above make the update non-interactive by reusing stored answers.

## Commands Reference

| Command | Description |
|---------|-------------|
| `make list` | List all extensions |
| `make new TYPE=app NAME=x` | Create new app |
| `make new TYPE=service NAME=x` | Create new service |
| `make new TYPE=tool NAME=x` | Create new tool |
| `make build TYPE=app NAME=x` | Build extension |
| `make test TYPE=app NAME=x` | Test extension |
| `make validate` | Validate all extensions |
| `make sync-compose` | Generate App Garden configs |
| `make build-registry` | Build extension registry |
| `make ci-pipeline` | Run full CI pipeline |

## Configuration

Docker images are prefixed with: `kamiwazaai/`

## GitHub Bootstrap

After creating the repo on GitHub, configure topics, branches, and protection rules:

```bash
# Interactive mode - prompts for each option
./scripts/setup-github-repo.sh

# Or use a config file for non-interactive setup
cp .github/repo-setup.yml.example .github/repo-setup.yml
# Edit config as needed, then run:
./scripts/setup-github-repo.sh
```

**What it configures:**
- Topics (`extensions`)
- Develop branch from main
- Branch naming rules (enforces `feature/*`, `fix/*`, etc.)
- Branch protection (PR reviews, status checks, force push blocking)

See `.github/repo-setup.yml.example` for all configuration options.

## License

Proprietary - kamiwazaai