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 (recommended) or pip
Setup
# Install development dependencies
make install
# List available extensions
make list
Creating Extensions
# 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
# 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.jsonwith name, version, risk_tierDockerfilefor each servicedocker-compose.ymlfor 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:
# 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:
# 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
Tools 4
git_cloneClones a remote repository into the local workspacegit_commitCommits staged changes to the repositorygit_pushPushes local commits to the remote repositorygit_branchCreates or switches branches in the repository