Initialize semcod MCP stack integration for Cursor, VS Code, Claude and other IDEs — init, doctor, validate, analyze.
Project description
Autonomiczny Agent Refaktoryzacji MCP
AI Cost Tracking
- 🤖 LLM usage: $4.5346 (39 commits)
- 👤 Human dev: ~$1311 (13.1h @ $100/h, 30min dedup)
Generated on 2026-07-06 using openrouter/qwen/qwen3-coder-next
System autonomicznej refaktoryzacji kodu oparty na Model Context Protocol (MCP), integrujący:
- MCP Git Proxy - izolowany serwis git z osobnym volume i API do sync/commit/test/push
- MCP Skills Server - analiza kodu i metryki na cache repozytoriów
- LLM Agent (
git2mcp) - planowanie refaktoryzacji i commitowanie zmian przez proxy git - MCP Gateway - publiczny shim OpenAI-compatible (auth, multi-tenant, SSE) do integracji z OpenWebUI
- MCP WebUI - panel testowy QA / admin dla
mcp-skills - gh2mcp Agent - synchronizacja tokenu GitHub z
ghCLI do.env(autostart w Docker)
Quick start
cp .env.example .env # ustaw OPENROUTER_API_KEY i WEBUI_API_KEY
make start # killuje porty hostowe i uruchamia cały stack
Konfiguracja GitHub (opcjonalna, wymagana do clone/push/create-repo)
# Metoda A — gh CLI (zalecana)
gh auth login # jednorazowe logowanie
make setup-github # pobiera token z gh i zapisuje do .env
# Metoda B — przez WebUI (po make start)
# http://localhost:8092/github → "Pobierz token z gh CLI"
# Metoda C — ręcznie
echo "GITHUB_PAT=ghp_xxx" >> .env
# Test integracji GitHub
export GITHUB_PAT=ghp_xxx
make ansible-github-test # weryfikuje token + create-repo + cleanup
Szybki workflow: ostatnie repo -> analiza -> refactor
Masz gotowy skrypt automatyzujący najczęstszy przepływ:
# 1) tylko analiza i plan kolejnych etapów dla ostatnio aktualizowanego repo GitHub
bash scripts/refactor-last-repo.sh
# 2) analiza + execute (commit artefaktów przez gateway/git-proxy)
bash scripts/refactor-last-repo.sh --execute
# 3) analiza + execute + push + PR
bash scripts/refactor-last-repo.sh --execute --push --pr
# 4) praca na konkretnym repo
bash scripts/refactor-last-repo.sh --repo semcod/mcp --execute --task "Etap 2 refaktoryzacji gateway"
Skrypt zapisuje odpowiedzi API i wynik JSON do katalogu:
output/refactor-last-repo-<timestamp>/.
make start uruchamia także gh2mcp-agent, który przy starcie może zsynchronizować token do .env
(GH2MCP_SYNC_ON_START=true).
# make stop # zatrzymuje wszystko
# make smoke # szybki test API gateway/webui
# make generate-demo-repos # tworzy 3 repo demo (auto: github/local fallback)
# make generate-demo-repos-github # wymusza tryb github (gh + fallback)
# make help # pełna lista targetów
| Serwis | URL |
|---|---|
| OpenWebUI (chat) | http://localhost:3000 |
| MCP WebUI (admin) | http://localhost:8092 |
| MCP WebUI GitHub | http://localhost:8092/github |
| MCP Docs (playbooki) | http://localhost:8093 |
| Gateway (API) | http://localhost:9000 |
| Dashboard | http://localhost:8085 |
| Git Proxy (dev) | http://localhost:8081 |
Pełne scenariusze użycia: docs/USAGE.md.
Dialogi chat-playbook (copy/paste): docs/CHAT_PLAYBOOKS.md.
Architektura produktowa: docs/PRODUCT.md.
Spis dokumentacji: docs/README.md.
Cursor Agent + MCP: docs/CURSOR_MCP_WORKFLOW.md.
Integracja IDE / Cursor / VS Code / Devin / A2A: docs/IDE_AND_AGENT_INTEGRATION.md.
CLI semcod-mcp: docs/SEMCOD_MCP_CLI.md.
Plan splitu gateway: docs/GATEWAY_MODULE_SPLIT.md.
Plan refaktoryzacji: REFACTORING_PLAN.md.
Czy to jest gotowe do użycia?
| Obszar | Status |
|---|---|
| Stack Docker + testy E2E | ✅ make start, make smoke, scripts/test.sh |
| Analiza i plan refaktoryzacji | ✅ MCP skills + gateway; largest_files + konkretne targety — code_analysis.py |
| Automatyczna zmiana kodu modułów | ⚠️ na razie głównie artefakty .mcp/* (plan), nie pełne patche |
| Podpięcie IDE (Cursor, VS Code) | ⚠️ ręczna konfiguracja (~5 min) — semcod-mcp init lub IDE_AND_AGENT_INTEGRATION.md |
Szybkie podpięcie Cursor MCP: skopiuj examples/integrations/cursor-mcp.json → .cursor/mcp.json (wymaga działającego make start).
Pakiet CLI semcod-mcp (zalecane)
Szczegóły i idempotentność init: docs/SEMCOD_MCP_CLI.md.
pip install -e ~/github/semcod/mcp # lub: pip install semcod-mcp
cd ~/github/semcod/nlp2cmd # dowolny projekt
semcod-mcp init # merge configów IDE bez nadpisywania
semcod-mcp init # bezpieczny ponownie — bez duplikatów MCP
semcod-mcp doctor # health stack + gateway
semcod-mcp validate # walidacja plików IDE
semcod-mcp analyze --task "Audyt modułów API"
Opcje: --stack-path, --global (Cursor/Claude w ~), --dry-run, --force.
Architektura
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ LLM Agent │────▶│ MCP Skills │◀────│ MCP Git │
│ (git2mcp) │ │ Server │ │ Proxy │
└─────────────┘ └─────────────┘ └─────────────┘
│
▼
┌─────────────┐
│ LLM API │
│ (OpenRouter │
│ lite/model)│
└─────────────┘
Jak działa separacja Git ↔ Skills
mcp-git-proxyzarządza wieloma repozytoriami (team/repo-a,team/repo-b, ...), klonuje je i utrzymuje historię git.git2mcpeksportuje repo jako paczkę (tar.gz + base64) przez endpoint/packages/export.mcp-skillssynchronizuje paczkę do własnego cache (/skills-cache) narzędziemsync_repo_from_git_proxy.llm-agentanalizuje cache, tworzy plan i zapisuje zmiany jako commit przez API proxy (bez ręcznej edycji przez shell).- Commit można lokalnie przetestować (
/run-tests) i dopiero potem wypchnąć (/push).
Tryb transferu do mcp-skills:
- preferowany:
POST /packages/export-fragments(fragmentypath + content_b64, rekonstrukcja plików po stronie skills) - fallback:
POST /packages/export(tar.gz + base64)
mcp-skills nie współdzieli volume /git-repos z git proxy — otrzymuje repo wyłącznie przez MCP transfer.
Szybki Start
1. Wymagania
- Docker & Docker Compose
- Python 3.11+ (dla lokalnego uruchomienia)
- (Opcjonalnie) GitHub PAT - dla operacji na repo
- (Opcjonalnie) OpenAI API Key - dla zaawansowanej analizy LLM
2. Instalacja
# Klonowanie i setup
./scripts/deploy.sh
3. Konfiguracja
# Skopiuj przykładową konfigurację
cp .env.example .env
# Edytuj .env zgodnie z potrzebami
nano .env
4. Uruchomienie
# Uruchom wszystkie serwisy
docker-compose up -d
# Uruchom agenta z analizą repozytorium
docker-compose run --rm llm-agent python agent_git2mcp.py \
--repo team/my-repo \
--repo-url https://github.com/team/my-repo.git
Struktura Projektu
.
├── docker-compose.yml # Konfiguracja Docker (dev)
├── docker-compose.prod.yml # Overlay produkcyjny
├── Makefile # Zarządzanie cyklem życia (start, stop, smoke)
├── .env.example # Przykładowa konfiguracja
├── README.md # Dokumentacja
├── CHANGELOG.md # Historia zmian
├── TODO.md # Zadania do zrobienia
├── REFACTORING_PLAN.md # Plan architektoniczny
│
├── mcp-git-proxy/ # MCP Git Proxy - operacje git przez HTTP API
│ ├── Dockerfile
│ ├── requirements.txt
│ └── server.py
│
├── git2mcp/ # Pakiet Python do operacji git przez MCP
│ ├── git2mcp/
│ │ ├── client.py # Async HTTP client
│ │ └── proxy.py # GitProxyManager (serwer)
│ ├── examples/ # Przykłady użycia (01-05)
│ ├── tests/ # Testy pytest
│ ├── pyproject.toml
│ └── README.md
│
├── gh2mcp/ # NOWOŚĆ: agent sync tokenu GitHub (gh -> .env)
│ ├── gh2mcp/
│ │ ├── sync.py
│ │ ├── server.py
│ │ └── cli.py
│ ├── Dockerfile
│ ├── pyproject.toml
│ └── README.md
│
├── mcp-skills/ # MCP Skills Server - analiza kodu
│ ├── Dockerfile
│ ├── requirements.txt
│ └── server.py # FastAPI HTTP API + MCP STDIO
│
├── mcp-gateway/ # NOWOŚĆ: OpenAI-compatible shim
│ ├── Dockerfile
│ ├── requirements.txt
│ ├── server.py # FastAPI + SSE + multi-tenant
│ └── tenants/ # Konfiguracja tenantów (YAML)
│ └── default.yaml
│
├── mcp-webui/ # NOWOŚĆ: Panel testowy QA/admin
│ ├── Dockerfile
│ ├── requirements.txt
│ ├── server.py # FastAPI + Jinja2 + HTMX
│ └── templates/ # HTML templates
│
├── llm-agent/ # Autonomiczny Agent
│ ├── Dockerfile
│ ├── requirements.txt
│ ├── agent.py
│ ├── agent_standalone.py
│ └── agent_git2mcp.py # Workflow przez git2mcp
│
├── dashboard/ # Wizualizacja wyników
│ ├── Dockerfile
│ ├── server.py
│ └── index.html
│
├── ansible/ # NOWOŚĆ: Ansible E2E tests
│ ├── inventory.ini
│ ├── e2e-docker-stack.yml
│ └── test-github-integration.yml
│
├── env2mcp/ # NOWOŚĆ: konfiguracja .env i GitHub auth helper
│ ├── env2mcp/
│ │ ├── cli.py
│ │ ├── config.py
│ │ └── github_cli.py
│ ├── pyproject.toml
│ └── README.md
│
├── mcp-docs/ # Serwis dokumentacji (Docker, port 8093)
│ ├── Dockerfile
│ ├── requirements.txt
│ └── server.py
│
├── docs/ # Dokumentacja produktowa
│ ├── PRODUCT.md # Architektura produktowa
│ ├── USAGE.md # Scenariusze użycia (10 przepływów)
│ ├── USE_CASES.md # Gotowe use-case + prompty
│ └── CHAT_PLAYBOOKS.md # Dialogi chat jako playbook operacyjny
│
├── scripts/
│ ├── deploy.sh
│ ├── test.sh
│ ├── generate_demo_repos.sh # Generowanie repo demo (GitHub/local)
│ └── refactor-last-repo.sh # Auto workflow: last repo → analyze → refactor
│
├── repos/ # Repo hosta (read-only mount)
└── output/ # Wyniki analizy (volume)
Nowa Architektura Produktowa (Maj 2026)
MCP Gateway - Publiczny Entrypoint
OpenAI-compatible HTTP API shim dla integracji z zewnętrznymi klientami:
- Endpointy:
/v1/models,/v1/chat/completions(z SSE streaming),/jobs/{job_id},/jobs/{job_id}/stream - Autoryzacja: Bearer token (per-tenant API keys)
- Multi-tenant: Konfiguracja przez
tenants/*.yaml - Audit logging: JSONL logi w wolumenie
audit-storage - Prompt parsing: Automatyczne parsowanie pól (Repo, Repo URL, Source, Branch, Execute, Push, Draft, PR, Test, Remote, Zadanie, GitHub Token)
- Komendy systemowe: sync/zapis tokenu, zarządzanie organizacjami, auto-resolve repo z szablonu
{{...}} - Repo template:
Repo: {{pokaż ostatnie repo z github}}→ auto-resolve przez gh2mcp - GitHub auth auto-recovery: automatyczne odświeżenie tokenu przy błędzie 401 + 3-opcji recovery message
- Async mode (Redis/RQ): długie operacje wykonywane w tle z job streaming via SSE (
async_mode: true)
MCP WebUI - Panel Testowy
FastAPI + HTMX + Tailwind dla QA i administratorów:
- Dashboard ze statusem gateway
- Lista repozytoriów + sync form
- Uruchamianie skilli przez gateway
- Podgląd diffów
- Playground dla free-form promptów
- Konfiguracja GitHub i zarządzanie repo na
/github - URL: http://localhost:8092
OpenWebUI - Dla Użytkowników Końcowych
Oficjalny frontend (docker image) podłączony do MCP Gateway:
- Chat z modelami
mcp-skills/refactorimcp-skills/analyze - URL: http://localhost:3000
MCP Skills - HTTP API
Serwer FastAPI z endpointami (poza MCP STDIO):
POST /sync- Synchronizacja repo z git-proxyPOST /analyze/structure- Analiza struktury koduPOST /analyze/metrics- Metryki repozytoriumPOST /analyze/patterns- Wykrywanie wzorcówPOST /refactor/recommend- Rekomendacje refaktoryzacjiGET /health- Healthcheck
MCP Skills - Narzędzia
analyze_code_structure
Analiza struktury kodu dla podanych ścieżek (via HTTP API lub MCP).
compute_metrics_for_repo
Metryki całego repozytorium.
detect_code_patterns
Wykrywanie wzorców i antywzorców.
recommend_refactoring
Rekomendacje refaktoryzacji z priorytetyzacją.
sync_repo_from_git_proxy
Synchronizacja repozytorium z mcp-git-proxy do cache skills.
git2mcp - Pakiet Proxy
git2mcp dostarcza dwa komponenty:
GitProxyManager(serwer wmcp-git-proxy) — sync repo, export paczek, commit/test/pushGit2MCPClient(klient async) — używany przez agentów i gateway
Nowe Operacje Lokalne (v0.1.9)
Operacje na working tree bez commitowania:
worktree_read/write/diff- Bezpośrednia edycja plikówpatch_apply- Aplikowanie unified diffstage- Dodawanie do indeksustash_save/pop- Stash operacjebranch_draft- Tworzenie branchy draft/*checkpoint_create/restore- Snapshoty tarball dla rollbackreset- Git reset (hard/soft/mixed)
Zobacz git2mcp/examples/05_local_iterate.py dla workflow: checkpoint → patch → test → commit (lub rollback).
Najważniejsze endpointy mcp-git-proxy:
POST /repos/sync- klonowanie/pull repo do izolowanego volumePOST /packages/export-fragments- export repo jako fragmenty (path + content_b64)POST /packages/export- eksport pełnego repo do paczkiPOST /repos/{repo_id}/commit- commit zmian przesłanych jako payloadPOST /repos/{repo_id}/run-tests- test commitu przed pushemPOST /repos/{repo_id}/push- push po pozytywnych testach
Przykłady Użycia
Analiza lokalnego repozytorium
# Przygotuj testowe repozytorium
mkdir -p repos/my-project
cp -r /path/to/code/* repos/my-project/
# Uruchom analizę
docker-compose run --rm llm-agent python agent_git2mcp.py \
--repo test/sample-project \
--source-path /host-repos/test/sample-project \
--branch main
Użycie z OpenAI
# W .env ustaw:
# LLM_PROVIDER=openai
# OPENAI_API_KEY=sk-...
docker-compose run --rm llm-agent python agent_git2mcp.py \
--repo team/my-repo \
--source-path /host-repos/my-project
Użycie z lokalnym Ollama
# Uruchom Ollama
docker-compose --profile ollama up -d ollama
# W .env ustaw:
# LLM_PROVIDER=ollama
# OLLAMA_HOST=http://ollama:11434
docker-compose run --rm llm-agent python agent_git2mcp.py \
--repo my-project \
--source-path /host-repos/my-project
Użycie z lokalnym OpenRouter Lite
# LLM Provider: openrouter-lite, mock, openai, ollama
# LLM_PROVIDER=openrouter-lite
# OPENROUTER_API_KEY=...
# LLM_MODEL=openrouter/x-ai/grok-code-fast-1
docker-compose run --rm llm-agent python agent_git2mcp.py \
--repo my-project \
--source-path /host-repos/my-project \
--execute
Workflow Autonomicznej Refaktoryzacji
Nowy Gateway Workflow (via OpenWebUI lub API)
-
Prompt - Użytkownik wysyła prompt przez OpenWebUI (lub API) z polami:
Repo: team/project,Source: /path,Branch: mainExecute: true(opcjonalnie wykonaj commit)Push: true(opcjonalnie wypchnij)Zadanie: Przeanalizuj i zaproponuj refaktor...
-
Gateway Processing:
- Parsuje prompt i routing do
mcp-git-proxy(sync repo) - Wywołuje
mcp-skillsHTTP API (analyze, metrics, patterns) - Generuje plan refaktoryzacji (
.mcp/refactor-plan.json) - Tworzy summary (
.mcp/refactor-summary.md) - Jeśli
Execute=true: commit artefaktów + test + push (jeśliPush=true)
- Parsuje prompt i routing do
-
Wynik - JSON z analizą, planem i statusem wykonania.
Tradycyjny Agent Workflow
- Sync Git -
mcp-git-proxypobiera/aktualizuje repo do własnego volume. - Cache Skills -
git2mcpeksportuje paczkę repo i odświeża cache w skills. - Analiza - agent liczy metryki i wykrywa wzorce.
- Planowanie - lite LLM generuje plan refaktoryzacji.
- Commit via MCP - zmiany idą jako payload do
/commit, bez ręcznej edycji plików przez shell. - Test lokalny -
/run-testsw izolowanym repo git proxy. - Push (opcjonalny) - tylko po przejściu testów.
Użycie z Makefile (Zalecane)
# Start całego stacku (zabija porty, build, up, smoke-test)
make start
# Sprawdź status
make ps
# Logi w czasie rzeczywistym
make logs
# Smoke test API
make smoke
# Stop wszystkiego
make stop
# Produkcja (bez dev mountów)
make prod-up
# Więcej opcji
make help
Dashboard - Wizualizacja Wyników
Dashboard webowy dostarcza interaktywny interfejs do przeglądania wyników analizy.
Uruchomienie dashboardu
# Dashboard startuje automatycznie z deploy.sh
# Lub ręcznie:
docker-compose up -d dashboard
Dostęp do dashboardu
- Dashboard UI: http://localhost:8085
- API Status: http://localhost:8085/api/status
- Lista analiz: http://localhost:8085/api/analyses
Funkcje dashboardu
- Metryki w czasie rzeczywistym - liczba plików, linii, funkcji, klas
- Lista plików - ranking największych plików z metrykami
- Analiza importów - najczęściej używane biblioteki
- Rekomendacje - priorytetowe akcje refaktoryzacji
- Plan refaktoryzacji - podsumowanie z architekturą i ryzykami
- Szczegóły techniczne - pełny JSON z analizy
Przykładowe użycie
# Wygeneruj analizę
docker-compose run --rm llm-agent python agent_git2mcp.py \
--repo test/sample-project \
--source-path /host-repos/test/sample-project \
--execute
# Otwórz dashboard w przeglądarce
open http://localhost:8085
# lub
xdg-open http://localhost:8085
Testowanie
# Uruchom wszystkie testy
./scripts/test.sh
# Uruchom tylko testy e2e API/proxy
python3 -m pytest -q git2mcp/tests/test_git2mcp.py
# E2E skrypt pokrywa też push-path (commit -> test -> push do lokalnego bare remote)
# i waliduje obecność artefaktu .mcp/refactor-plan.json po pushu
# E2E skrypt testuje też 3 repo z /home/tom/github/semcod
# (docs, code2schema, ats-benchmark) oraz transfer do mcp-skills bez shared volume,
# wyłącznie przez MCP fragmenty/path updates.
# Sprawdź strukturę
ls -la repos/ output/
# Sprawdź logi
docker-compose logs -f mcp-git-proxy mcp-skills
Rozwój
Lokalne uruchomienie serwera MCP Skills
cd mcp-skills
pip install -r requirements.txt
python server.py
Lokalne uruchomienie agenta git2mcp
cd llm-agent
pip install -r requirements.txt
PYTHONPATH=.. python agent_git2mcp.py --repo test/sample-project --source-path ../repos/test/sample-project
Dokumentacja Projektu
- docs/README.md - Spis dokumentacji i linki krzyżowe
- docs/USAGE.md - Pełne scenariusze użycia (9 przepływów end-to-end)
- docs/SEMCOD_MCP_CLI.md - CLI
semcod-mcp(init, doctor, validate, analyze) - docs/IDE_AND_AGENT_INTEGRATION.md - Cursor, VS Code, Devin, A2A, rejestry paczek
- docs/GATEWAY_MODULE_SPLIT.md - Plan podziału
mcp-gateway/server.py - docs/USE_CASES.md - Gotowe use-case i prompty dla refactor/migration/integration
- docs/CHAT_PLAYBOOKS.md - Szczegółowe dialogi chat jako playbook operacyjny
- docs/PRODUCT.md - Architektura produktowa, multi-tenant, bezpieczeństwo
- env2mcp/README.md - Konfiguracja
.envi integracja GitHub (gh/PAT) - REFACTORING_PLAN.md - Plan refaktoryzacji i roadmap
- git2mcp/README.md - Dokumentacja pakietu git2mcp
- CHANGELOG.md - Historia zmian
- TODO.md - Zadania do zrobienia i product roadmap
Dokumentacja Zewnętrzna (MCP)
Licencja
Zobacz plik LICENSE.
License
Licensed under Apache-2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file semcod_mcp-0.1.6.tar.gz.
File metadata
- Download URL: semcod_mcp-0.1.6.tar.gz
- Upload date:
- Size: 3.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ca3538fcadb5d79bb1de35ef3986d3e61deb3eb7a3df7c85d6c8574f88f16ca
|
|
| MD5 |
066fb52946bd1ba66f8c6ff9c5270998
|
|
| BLAKE2b-256 |
b3af70c034301a36151cda9950fb23726d16a19cc33239f46435d3198f6890bc
|
File details
Details for the file semcod_mcp-0.1.6-py3-none-any.whl.
File metadata
- Download URL: semcod_mcp-0.1.6-py3-none-any.whl
- Upload date:
- Size: 29.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a07447820d85446df2c0fe748c285a6cfb4c3114e115bcd6a6ee764b8dbdeafb
|
|
| MD5 |
14763f7b31baf40e11b289796ede1cfc
|
|
| BLAKE2b-256 |
fe81db2477e7ee5c1bd25fe147efceb228b42088b163fff379e2fb6a0216f79c
|