mcp-git-proxy— FastAPI + GitPython, wszystkie operacje Git przez APIgit2mcp— klient Python (Git2MCPClient) + manager (GitProxyManager)mcp-skills— serwer MCP z własnym cache repo (/skills-cache), brak shared volume/git-reposllm-agent— workflowagent_git2mcp.pyoparty o OpenRouter litedashboard— statyczny widok JSON-ów zoutput/
LLM_PROVIDER=openrouter-liteLLM_MODEL=openrouter/x-ai/grok-code-fast-1- Ollama usunięta z
docker-compose.ymli.env
GET /healthGET /reposPOST /repos/syncPOST /packages/exportPOST /packages/export-fragmentsPOST /packages/importPOST /repos/{repo_id}/commitPOST /repos/{repo_id}/run-testsPOST /repos/{repo_id}/pushPOST /repos/{repo_id}/reset
- Refaktoryzacja = commit przez API, bez edycji plików na dysku przez shell
- Izolacja Git ↔ Skills:
mcp-skillsdostaje repo wyłącznie przez MCP (fragmenty) - Migracja różnic po stronie
mcp-skills:files_updated,files_unchanged,files_deleted - Rollback:
POST /repos/{repo_id}/resetdla cofnięcia commitu przy failu testów - Hardening:
safe.directory, walidacjaPushInfo, retry w kliencie HTTP
01_sync_and_commit.py— sync + commit +compileall02_fragment_sync_to_skills.py— MCP fragmenty + migracja różnic w skills cache03_agent_git2mcp.py— wrapper pełnego flow agenta04_dry_run_vs_execute.py—--dry-runvs--executez auto-revertem
scripts/test.sh:- struktura/składnia/docker validate
- git2mcp workflow (
sample-project,another-project) - push do lokalnego bare remote
- 3x repo
semcod/*→ MCP fragmenty domcp-skillsbez shared volume - walidacja
files_unchangedprzy powtórnym sync
pytest git2mcp/tests/test_git2mcp.py:sync → export → commit → run-testscommit → reset(rollback)sync → commit → pushdo bare remote
- Czy zmiany w repo są robione przez
git2mcp? Tak, przez endpoint/commit. - Czy lokalny
git2mcpaktualizuje dowolne repo przez MCP/API? Tak, przykłady 01/03/04. - Czy
mcp-skillswykrywa różnice i migruje? Tak, fragment diff + per-file update/unchanged/delete.
mcp-gateway— FastAPI, OpenAI-compatible shim:GET /v1/models,POST /v1/chat/completions(z opcjonalnym SSE)- Bearer auth + multi-tenant routing (
tenants/*.yaml) - audit log JSONL w
audit-storage - in-memory job store (Redis → Etap 5+)
mcp-webui— FastAPI + Jinja + HTMX + Tailwind, port8092:- dashboard, repos, skills, diff, playground
- OpenWebUI w compose (
profile=openwebui), port3000, podpięty pod gateway - Sieci Docker:
mcp-internal(private) +mcp-public(gateway/webui/openwebui/dashboard) docker-compose.prod.yml— overlay produkcyjny (bez dev mountów)
worktree/write|read|diff,patch/apply,stage,stash/save|popbranch/draft,checkpoint,checkpoint/restorereset(rollback po failu testów)
GET /health-> ok, lista tenantów["default"]GET /v1/modelsz auth -> 200, bez auth -> 401POST /v1/chat/completions(analyze, refactor) -> 200, payload zjob_idmcp-webui /-> 200
Gotowe i przetestowane. Wszystkie testy (scripts/test.sh + pytest) przechodzą.
Gateway, WebUI, OpenWebUI w compose; smoke-test wykonany na żywych kontenerach.