Integracja GitHub i GitLab przez MCP
Twoje AI właśnie napisało funkcję pomocniczą, która już istnieje w Twoim codebase — ukrytą trzy katalogi głęboko w pliku, o którym nikt nie pamięta. Utworzyło branch z nazwą naruszającą konwencję Twojego zespołu. Napisało wiadomość commita “fix stuff.” Wszystkie te problemy znikają, gdy AI może faktycznie czytać Twoją historię git i wchodzić w interakcje z platformą kontroli wersji.
Czego się nauczysz
Dział zatytułowany „Czego się nauczysz”- Konfiguracja GitHub MCP (oficjalny) i GitLab MCP dla wszystkich trzech narzędzi
- Prompty do wyszukiwania kodu, przeglądu PR, zarządzania branchami i workflow commitów
- Wytyczne bezpieczeństwa dotyczące scopingu tokenów dostępu personalnego
- Strategie używania MCP kontroli wersji w środowiskach monorepo
Serwer GitHub MCP (oficjalny)
Dział zatytułowany „Serwer GitHub MCP (oficjalny)”Oficjalny serwer MCP GitHub zapewnia głęboką integrację z GitHub API: wyszukiwanie kodu, zarządzanie PR, śledzenie ticketów, status CI i operacje na repozytoriach.
{ "mcpServers": { "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "<your-token>" } } }}{ "mcpServers": { "github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"], "env": { "GITHUB_PERSONAL_ACCESS_TOKEN": "<your-token>" } } }}[mcp.github]transport = "stdio"command = "npx"args = ["-y", "@modelcontextprotocol/server-github"]
[mcp.github.env]GITHUB_PERSONAL_ACCESS_TOKEN = "<your-token>"Serwer Git MCP (lokalne repozytoria)
Dział zatytułowany „Serwer Git MCP (lokalne repozytoria)”Serwer Git MCP działa z Twoim lokalnym repozytorium. Daje AI ustrukturyzowany dostęp do branchów, commitów, diffów i logów bez kruchego parsowania shell.
{ "mcpServers": { "git": { "command": "uvx", "args": ["mcp-server-git"] } }}Claude Code ma wbudowane możliwości git przez natywne narzędzie Bash. Może uruchamiać komendy git bezpośrednio. Oddzielny Git MCP jest przydatny, jeśli chcesz ustrukturyzowanych odpowiedzi zamiast surowego wyjścia komend.
[mcp.git]transport = "stdio"command = "uvx"args = ["mcp-server-git"]GitLab MCP
Dział zatytułowany „GitLab MCP”Dla zespołów na GitLab serwer GitLab MCP zapewnia integrację z pipeline’ami CI/CD, merge requestami i śledzeniem ticketów.
{ "mcpServers": { "gitlab": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-gitlab"], "env": { "GITLAB_TOKEN": "<your-token>", "GITLAB_URL": "https://gitlab.com" } } }}{ "mcpServers": { "gitlab": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-gitlab"], "env": { "GITLAB_TOKEN": "<your-token>", "GITLAB_URL": "https://gitlab.com" } } }}[mcp.gitlab]transport = "stdio"command = "npx"args = ["-y", "@modelcontextprotocol/server-gitlab"]
[mcp.gitlab.env]GITLAB_TOKEN = "<your-token>"GITLAB_URL = "https://gitlab.com"Scoping tokenów dla bezpieczeństwa
Dział zatytułowany „Scoping tokenów dla bezpieczeństwa”Tworząc tokeny dostępu personalnego, stosuj zasadę najmniejszych uprawnień:
| Zakres | GitHub | GitLab | Przypadek użycia |
|---|---|---|---|
| Czytanie kodu | repo (read) | read_repository | Wyszukiwanie kodu, czytanie plików |
| Czytanie PR/MR | repo (read) | read_api | Przegląd PR, analiza diffów |
| Zapis PR/MR | repo (write) | api | Tworzenie PR, aktualizacja ticketów |
| Status CI | repo (read) | read_api | Monitorowanie pipeline’ów |
Zacznij od zakresów read-only. Dodawaj dostęp do zapisu tylko wtedy, gdy AI musi tworzyć branche, PR-y lub aktualizować tickety.
Gdy coś się zepsuje
Dział zatytułowany „Gdy coś się zepsuje”Błąd “Bad credentials”. Wygeneruj ponownie token z poprawnymi zakresami. Fine-grained tokens na GitHubie wymagają jawnego dostępu do repozytorium — upewnij się, że wybrałeś właściwe repozytoria.
Wyszukiwanie kodu nie zwraca wyników. Wyszukiwanie kodu GitHub wymaga zindeksowania repozytorium. Nowe repozytoria lub niedawno wypchnięte branche mogą potrzebować kilku minut, aby pojawić się w wynikach wyszukiwania.
Rate limiting. GitHub API ma limity zapytań (5000 zapytań/godzinę dla uwierzytelnionych użytkowników). Jeśli AI wykonuje zbyt wiele wywołań, zobaczysz błędy 403. Zmniejsz zakres promptów lub użyj lokalnego Git MCP dla operacji, które nie wymagają GitHub API.