Skip to main content Skills Marketplace Découvrez et explorez les compétences IA créées par la communauté.
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Copier le promptAfficher les détails du prompt Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
npx skills add https://github.com/vibeeval/vibecosystem --skill github-mcpLa commande reste sur une seule ligne. Faites défiler horizontalement pour la vérifier avant de la copier.
Vous préférez une copie locale ? Téléchargez les fichiers actuellement disponibles dans SkillsMP.
Télécharger Zip Téléchargement... Métiers associés SOC
Basé sur la classification professionnelle SOC
name github-mcp description GitHub MCP Server ile GitHub API erisimi. Repo, issue, PR, code search, release yonetimi.
GitHub MCP Server
GitHub MCP vs gh CLI
Ozellik GitHub MCP gh CLI Kurulum MCP server config brew install gh Auth PAT token (MCP env) gh auth login (interactive) Kullanim Tool call (agent icinden) Bash komutu Rate limit REST API limit (5000/h) Ayni Avantaj Agent workflow icinde seamless Terminal scripting Dezavantaj MCP server calisir olmali Agent context'ten cikmak lazim
Ne Zaman Hangisi
GitHub MCP kullan:
- Agent workflow icinde GitHub islemleri gerektiginde
- Birden fazla API call zincirlenecekse
- Structured data response lazimsa
gh CLI kullan:
- Tek seferlik terminal islemleri
- PR olusturma/merge (interaktif)
- Git hook'lari icinde
- Script/otomasyon icinde
MCP Server Kurulumu
1. GitHub PAT Token Olustur
GitHub Settings > Developer Settings > Personal Access Tokens > Fine-grained
Gerekli permission'lar:
- Repository: Read/Write
- Issues: Read/Write
- Pull Requests: Read/Write
- Actions: Read/Write (workflow tetikleme)
- Webhooks: Read/Write (webhook yonetimi)
- Organization: Read (org API)
2. MCP Config (~/.mcp.json)
{
"mcpServers" : {
"github"
:
{
"command"
:
"npx"
,
"args"
:
[
"-y"
,
"@modelcontextprotocol/server-github"
]
,
"env"
:
{
"GITHUB_PERSONAL_ACCESS_TOKEN"
:
"<PAT_TOKEN>"
}
}
}
}
3. Alternatif: Docker ile {
"mcpServers" : {
"github" : {
"command" : "docker" ,
"args" : [ "run" , "-i" , "--rm" , "-e" , "GITHUB_PERSONAL_ACCESS_TOKEN" , "ghcr.io/modelcontextprotocol/server-github" ] ,
"env" : {
"GITHUB_PERSONAL_ACCESS_TOKEN" : "<PAT_TOKEN>"
}
}
}
}
Repository Yonetimi
Repo Olusturma mcp_github.create_repository({
name: "my-project",
description: "Proje aciklamasi",
private: true,
auto_init: true // README ile baslat
})
Repo Bilgisi mcp_github.get_repository({
owner: "username",
repo: "repo-name"
})
// Response: stars, forks, open_issues, default_branch, language
Fork mcp_github.fork_repository({
owner: "original-owner",
repo: "original-repo"
})
Branch Yonetimi // Branch olustur
mcp_github.create_branch({
owner: "username",
repo: "repo-name",
branch: "feature/new-feature",
from_branch: "main"
})
// Branch listele
mcp_github.list_branches({
owner: "username",
repo: "repo-name"
})
Issue Yonetimi
Issue Olusturma mcp_github.create_issue({
owner: "username",
repo: "repo-name",
title: "Bug: Login form broken",
body: "## Steps to reproduce\n1. Go to /login\n2. Enter credentials\n3. Click submit\n\n## Expected\nRedirect to dashboard\n\n## Actual\n500 error",
labels: ["bug", "P1"],
assignees: ["developer-username"]
})
Issue Listeleme / Filtreleme mcp_github.list_issues({
owner: "username",
repo: "repo-name",
state: "open",
labels: "bug",
sort: "created",
direction: "desc"
})
Issue Guncelleme mcp_github.update_issue({
owner: "username",
repo: "repo-name",
issue_number: 42,
state: "closed",
labels: ["bug", "resolved"]
})
Issue Yorum mcp_github.add_issue_comment({
owner: "username",
repo: "repo-name",
issue_number: 42,
body: "Fixed in PR #45"
})
Pull Request Yonetimi
PR Olusturma mcp_github.create_pull_request({
owner: "username",
repo: "repo-name",
title: "feat: Add user authentication",
body: "## Summary\n- JWT auth implementation\n- Login/register endpoints\n\n## Test plan\n- [ ] Unit tests pass\n- [ ] Integration tests pass",
head: "feature/auth",
base: "main",
draft: false
})
PR Review // Review olustur
mcp_github.create_review({
owner: "username",
repo: "repo-name",
pull_number: 45,
event: "APPROVE", // APPROVE | REQUEST_CHANGES | COMMENT
body: "LGTM! Clean implementation."
})
PR Merge mcp_github.merge_pull_request({
owner: "username",
repo: "repo-name",
pull_number: 45,
merge_method: "squash" // merge | squash | rebase
})
PR Dosya Degisiklikleri mcp_github.get_pull_request_files({
owner: "username",
repo: "repo-name",
pull_number: 45
})
// Response: filename, status (added/modified/removed), additions, deletions
Code Search
Repository Icinde Arama mcp_github.search_code({
query: "useEffect cleanup repo:username/repo-name",
per_page: 10
})
Global Arama // Dil filtreyle
mcp_github.search_code({
query: "rate limiter language:typescript stars:>100"
})
// Organizasyon icinde
mcp_github.search_code({
query: "database migration org:my-org"
})
Arama Operatorleri repo:owner/name # Spesifik repo
org:organization # Organizasyon icinde
path:src/utils # Path filtresi
filename:config.ts # Dosya adi
extension:py # Uzanti
language:typescript # Dil
stars:>100 # Minimum star
size:>1000 # Minimum byte
Actions Workflow
Workflow Tetikleme mcp_github.create_workflow_dispatch({
owner: "username",
repo: "repo-name",
workflow_id: "deploy.yml",
ref: "main",
inputs: {
environment: "production",
version: "v1.2.3"
}
})
Workflow Runs Listeleme mcp_github.list_workflow_runs({
owner: "username",
repo: "repo-name",
workflow_id: "ci.yml",
status: "completed",
per_page: 5
})
Workflow Run Loglari mcp_github.get_workflow_run_logs({
owner: "username",
repo: "repo-name",
run_id: 12345
})
Release Management
Release Olusturma mcp_github.create_release({
owner: "username",
repo: "repo-name",
tag_name: "v1.2.3",
name: "Release v1.2.3",
body: "## What's Changed\n- feat: User auth (#42)\n- fix: Login redirect (#45)\n\n## Breaking Changes\nNone",
draft: false,
prerelease: false
})
Release Listeleme mcp_github.list_releases({
owner: "username",
repo: "repo-name",
per_page: 10
})
Latest Release mcp_github.get_latest_release({
owner: "username",
repo: "repo-name"
})
Webhook Yonetimi
Webhook Olusturma mcp_github.create_webhook({
owner: "username",
repo: "repo-name",
config: {
url: "https://my-server.com/webhook",
content_type: "json",
secret: "webhook-secret-123"
},
events: ["push", "pull_request", "issues"],
active: true
})
Webhook Events Event Ne Zaman Kullanim push Commit push CI/CD tetikle pull_request PR acildi/kapandi Review notify issues Issue degisti Triage bot release Release yayinlandi Deploy tetikle workflow_run Action tamamlandi Status notify star Repo star'landi Analytics
Organization & Team API
Org Bilgisi mcp_github.get_organization({
org: "my-organization"
})
Team Listeleme mcp_github.list_teams({
org: "my-organization"
})
Team Members mcp_github.list_team_members({
org: "my-organization",
team_slug: "backend-team"
})
Org Repo'lari mcp_github.list_org_repos({
org: "my-organization",
type: "all",
sort: "updated"
})
Rate Limiting
Limitler Auth Tipi Limit Reset PAT (authenticated) 5000 req/h 1 saat Unauthenticated 60 req/h 1 saat Search API 30 req/min 1 dakika GraphQL 5000 points/h 1 saat
Rate Limit Kontrol mcp_github.get_rate_limit()
// Response: { limit, remaining, reset_at }
Best Practices 1. Conditional requests (If-None-Match header) kullan
2. Pagination ile kucuk sayfalarda cek (per_page: 30)
3. Search API'yi 30 req/min altinda tut
4. 403 + "rate limit exceeded" alirsan reset_at kadar bekle
5. Webhook kullan (polling yerine event-driven)
6. GraphQL kullan (birden fazla REST call yerine tek query)
Workflow Ornekleri
Yeni Feature Workflow 1. Issue olustur (task tanimla)
2. Branch olustur (feature/X)
3. Kod yaz, commit et
4. PR olustur (issue'ya referans ver)
5. Review iste
6. Merge et (squash)
7. Release olustur (tag ile)
Bug Fix Workflow 1. Issue olustur (bug raporu)
2. Branch olustur (fix/X)
3. Fix yaz, test ekle
4. PR olustur (Fixes #issue-number)
5. CI gectigini dogrula
6. Merge et
7. Issue otomatik kapanir
CI/CD Tetikleme 1. Push event -> CI workflow calisir
2. PR event -> Test + lint + security scan
3. Release event -> Deploy workflow calisir
4. Workflow dispatch -> Manuel deploy
Anti-Patterns Anti-Pattern Dogru Yol PAT'i koda gomme .env veya MCP config env Tum permission'lari ver Minimum gerekli scope Polling ile status kontrol Webhook kullan Buyuk sayfa boyutu (100+) per_page: 30, pagination Rate limit'i yoksay get_rate_limit ile kontrol Force push main'e Branch protection + PR