Eksplorasi repositori — Minta asisten Anda untuk menjelajahi kode, mencari file, dan menganalisis komit di repositori mana pun yang dapat Anda akses.
Manajemen issue dan PR — Biarkan AI membuat, memperbarui, dan menriase issue serta pull request, termasuk meninjau perubahan kode.
Pemantauan CI/CD — Dapatkan wawasan tentang proses GitHub Actions, analisis kegagalan build, dan kelola rilis.
Analisis keamanan — Periksa temuan pemindaian kode dan tinjau peringatan Dependabot untuk kerentanan.
Kolaborasi tim — Akses diskusi, kelola notifikasi, dan analisis aktivitas tim di seluruh proyek Anda.
Server MCP Terhosting
npx add-mcp 'https://api.githubcopilot.com/mcp/'
Terpasang ke Claude Code, Codex, Cursor, dan lainnya
Dokumentasi
Server GitHub MCP
Server GitHub MCP menghubungkan alat AI secara langsung ke platform GitHub. Ini memberikan kemampuan kepada agen AI, asisten, dan chatbot untuk membaca repositori dan file kode, mengelola isu dan PR, menganalisis kode, serta mengotomatiskan alur kerja. Semua melalui interaksi bahasa alami.
Kasus Penggunaan
Manajemen Repositori: Jelajahi dan kueri kode, cari file, analisis commit, dan pahami struktur proyek di seluruh repositori yang Anda miliki aksesnya.
Otomatisasi Isu & PR: Buat, perbarui, dan kelola isu serta pull request. Biarkan AI membantu triase bug, meninjau perubahan kode, dan memelihara papan proyek.
Intelijen CI/CD & Alur Kerja: Pantau proses GitHub Actions, analisis kegagalan build, kelola rilis, dan dapatkan wawasan tentang pipeline pengembangan Anda.
Analisis Kode: Periksa temuan keamanan, tinjau peringatan Dependabot, pahami pola kode, dan dapatkan wawasan komprehensif tentang basis kode Anda.
Kolaborasi Tim: Akses diskusi, kelola notifikasi, analisis aktivitas tim, dan sederhanakan proses untuk tim Anda.
Dibangun untuk pengembang yang ingin menghubungkan alat AI mereka dengan konteks dan kemampuan GitHub, dari kueri bahasa alami sederhana hingga alur kerja agen multi-langkah yang kompleks.
Menggunakan modul Go
Jalur modul Go adalah github.com/github/github-mcp-server/v2. Konsumen pustaka
harus menggunakan awalan ini dalam impor, misalnya
github.com/github/github-mcp-server/v2/pkg/github, dan dalam perintah go get.
Tidak ada subdirektori /v2 yang diperlukan saat membangun dari checkout repositori.
Tag v2.0.0 yang ada mendahului koreksi jalur modul ini dan tidak dapat digunakan
sebagai modul Go. Setelah perubahan ini digabungkan, rilis baru seperti v2.0.1 harus
ditandai dari commit yang berisi jalur modul yang telah dikoreksi. Sampai saat itu,
konsumen dapat menggunakan pseudo-versi dari commit yang berisi perubahan ini.
Server GitHub MCP Jarak Jauh
Server GitHub MCP jarak jauh dihosting oleh GitHub dan menyediakan metode termudah untuk memulai. Jika host MCP Anda tidak mendukung server MCP jarak jauh, jangan khawatir! Anda dapat menggunakan versi lokal Server GitHub MCP sebagai gantinya.
Prasyarat
Host MCP yang kompatibel dengan dukungan server jarak jauh (VS Code 1.101+, Claude Desktop, Cursor, Windsurf, dll.)
Untuk instalasi cepat, gunakan salah satu tombol instalasi satu-klik di atas. Setelah Anda menyelesaikan alur tersebut, aktifkan mode Agen (terletak di dekat input teks Copilot Chat) dan server akan mulai. Pastikan Anda menggunakan VS Code 1.101 atau yang lebih baru untuk dukungan MCP jarak jauh dan OAuth.
Atau, untuk mengonfigurasi VS Code secara manual, pilih blok JSON yang sesuai dari contoh di bawah ini dan tambahkan ke konfigurasi host Anda:
Rovo Dev CLI - Panduan instalasi untuk Rovo Dev CLI
Catatan: Setiap aplikasi host MCP perlu mengonfigurasi GitHub App atau OAuth App untuk mendukung akses jarak jauh melalui OAuth. Aplikasi host apa pun yang mendukung server MCP jarak jauh harus mendukung server GitHub jarak jauh dengan autentikasi PAT. Detail konfigurasi dan tingkat dukungan bervariasi menurut host. Pastikan untuk merujuk pada dokumentasi aplikasi host untuk informasi lebih lanjut.
Konfigurasi
Konfigurasi toolset
Lihat Dokumentasi Server Jarak Jauh untuk detail lengkap tentang konfigurasi server jarak jauh, toolset, header, dan penggunaan lanjutan. File ini menyediakan instruksi dan contoh komprehensif untuk menghubungkan, menyesuaikan, dan menginstal Server GitHub MCP jarak jauh di VS Code dan host MCP lainnya.
Jika tidak ada toolset yang ditentukan, toolset default yang digunakan.
Mode Insiders
Coba fitur baru lebih awal! Server jarak jauh menawarkan versi insiders dengan akses awal ke fitur baru dan alat eksperimental.
Catatan: Saat menggunakan OAuth dengan GitHub Enterprise di VS Code dan GitHub Copilot, Anda juga perlu mengonfigurasi pengaturan VS Code Anda untuk menunjuk ke instance GitHub Enterprise Anda - lihat Autentikasi dari VS Code
Untuk menjalankan server dalam kontainer, Anda perlu menginstal Docker.
Setelah Docker terinstal, Anda juga perlu memastikan Docker berjalan. Image Docker tersedia di ghcr.io/github/github-mcp-server. Image bersifat publik; jika Anda mendapatkan error saat menarik, Anda mungkin memiliki token yang kedaluwarsa dan perlu docker logout ghcr.io.
Autentikasi. Di github.com Anda tidak perlu membuat apa pun di awal — tombol satu-klik di atas akan masuk dengan OAuth pada penggunaan pertama (alur berbasis browser; token hanya disimpan di memori). Tombol Docker menerbitkan port callback tetap (127.0.0.1:8085) sehingga callback login kontainer dapat dijangkau. Lihat Login OAuth Server Lokal untuk cara kerjanya, fallback headless/kode perangkat, dan membawa OAuth atau GitHub App sendiri (diperlukan untuk GitHub Enterprise Server dan ghe.com).
Lebih suka token? Anda masih dapat mengautentikasi dengan GitHub Personal Access Token dengan mengatur GITHUB_PERSONAL_ACCESS_TOKEN sebagai gantinya (ini lebih diutamakan daripada OAuth). Server MCP dapat menggunakan banyak API GitHub, jadi aktifkan izin yang Anda rasa nyaman untuk diberikan ke alat AI Anda (untuk mempelajari lebih lanjut tentang token akses, silakan periksa dokumentasi).
Menangani PAT dengan Aman
Variabel Lingkungan (Direkomendasikan)
Untuk menjaga PAT GitHub Anda tetap aman dan dapat digunakan kembali di berbagai host MCP:
Simpan PAT Anda di variabel lingkungan
export GITHUB_PAT=your_token_here
Atau buat file .env:
GITHUB_PAT=your_token_here
Lindungi file .env Anda
# Add to .gitignore to prevent accidental commits
echo ".env" >> .gitignore
Rujuk token dalam konfigurasi
# CLI usage
claude mcp add github -e GITHUB_PERSONAL_ACCESS_TOKEN=$GITHUB_PAT -- docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server
# In config files (where supported)
"env": {
"GITHUB_PERSONAL_ACCESS_TOKEN": "$GITHUB_PAT"
}
Catatan: Dukungan variabel lingkungan bervariasi menurut aplikasi host dan IDE. Beberapa aplikasi (seperti Windsurf) memerlukan token yang di-hardcode dalam file konfigurasi.
Praktik Terbaik Keamanan Token
Cakupan minimum: Hanya berikan izin yang diperlukan
repo - Operasi repositori
read:packages - Akses image Docker
read:org - Akses tim organisasi
Token terpisah: Gunakan PAT yang berbeda untuk proyek/lingkungan yang berbeda
Rotasi rutin: Perbarui token secara berkala
Jangan pernah commit: Jauhkan token dari kontrol versi
Izin file: Batasi akses ke file konfigurasi yang berisi token
chmod 600 ~/.your-app/config.json
GitHub Enterprise Server dan Enterprise Cloud dengan residensi data (ghe.com)
Flag --gh-host dan variabel lingkungan GITHUB_HOST dapat digunakan untuk mengatur
hostname untuk GitHub Enterprise Server atau GitHub Enterprise Cloud dengan residensi data.
Untuk GitHub Enterprise Server, awali hostname dengan skema URI https://. HTTPS diperlukan dan ditegakkan: host non-HTTPS ditolak sehingga kredensial tidak pernah dikirim melalui teks biasa (satu-satunya pengecualian adalah host loopback seperti http://localhost untuk pengembangan lokal).
Untuk GitHub Enterprise Cloud dengan residensi data, gunakan https://YOURSUBDOMAIN.ghe.com sebagai hostname.
Untuk instalasi cepat, gunakan salah satu tombol instalasi satu-klik di atas. Setelah Anda menyelesaikan alur tersebut, aktifkan mode Agen (terletak di dekat input teks Copilot Chat) dan server akan mulai.
Pelajari lebih lanjut tentang menggunakan alat server MCP di dokumentasi mode agen VS Code.
Instal di GitHub Copilot di IDE lainnya (JetBrains, Visual Studio, Eclipse, dll.)
Tambahkan salah satu blok JSON berikut ke pengaturan MCP IDE Anda.
Masuk dengan OAuth (tidak ada token yang perlu dibuat atau disimpan). Di github.com image resmi sudah menyertakan kredensial aplikasi, jadi Anda tidak perlu menyediakannya sendiri: image menjalankan login berbasis browser pada penggunaan pertama dan menyimpan token yang dihasilkan hanya di memori. Di Docker ini memerlukan port callback tetap yang dipublikasikan ke loopback sehingga callback login kontainer dapat dijangkau:
Lihat Login OAuth Server Lokal untuk alur biner asli (tidak perlu port tetap), fallback headless/kode perangkat, GitHub Enterprise Server / ghe.com, dan membawa OAuth atau GitHub App sendiri.
Secara opsional, Anda dapat menambahkan contoh serupa (mis. tanpa kunci mcp) ke file bernama .vscode/mcp.json di workspace Anda. Ini akan memungkinkan Anda berbagi konfigurasi dengan aplikasi host lain yang menerima format yang sama.
Catatan: Aplikasi host apa pun yang mendukung server MCP lokal seharusnya dapat mengakses server GitHub MCP lokal. Namun, proses konfigurasi spesifik, sintaks, dan stabilitas integrasi akan bervariasi tergantung aplikasi host. Meskipun banyak yang mungkin mengikuti format serupa dengan contoh di atas, hal ini tidak dijamin. Silakan merujuk ke dokumentasi aplikasi host Anda untuk sintaks konfigurasi MCP yang benar dan proses pengaturannya.
Build dari sumber
Jika Anda tidak memiliki Docker, Anda dapat menggunakan go build untuk membangun biner di direktori
cmd/github-mcp-server, dan gunakan perintah github-mcp-server stdio dengan variabel lingkungan GITHUB_PERSONAL_ACCESS_TOKEN diatur ke token Anda. Untuk menentukan lokasi output dari build, gunakan flag -o. Anda harus mengonfigurasi server Anda untuk menggunakan executable yang telah dibangun sebagai command.
Permintaan API STDIO mengidentifikasi server sebagai github-mcp-server/<version> dan mempertahankan nama/versi klien MCP upstream dalam tanda kurung jika tersedia. Karakter kontrol, tanda kutip, garis miring terbalik, dan tanda kurung dalam metadata klien di-escape agar header HTTP tetap valid; nama biasa, versi, spasi, dan Unicode yang dapat dicetak dipertahankan. Build rilis mempertahankan versi rilisnya. Build Docker sumber dan default dengan metadata revisi menggunakan vcs-<full-commit-sha>. Alur kerja penerbitan Docker mempertahankan versi tag, termasuk prarilis, dan memungkinkan build cabang, pull-request, dan nightly menggunakan revisi sumber tertaut. Penanda -dirty hanya berlaku ketika baik revisi maupun status modifikasi berasal dari metadata VCS tertanam, tidak pernah untuk main.commit yang valid dan diberikan secara eksplisit. Ini adalah pengidentifikasi build VCS, bukan nomor rilis.
Bangun paket lengkap dengan go build -o github-mcp-server ./cmd/github-mcp-server dari checkout Git untuk menyematkan revisi VCS-nya. Untuk build tanpa metadata VCS, berikan rilis aktual dengan -ldflags '-X main.version=<release>' atau revisi sumber lengkap dengan -ldflags '-X main.commit=<sha>'. Metadata valid dipilih dalam urutan ini: rilis eksplisit, revisi sumber eksplisit, revisi VCS tertanam, lalu versi modul utama yang terinstal. Revisi eksplisit yang valid tetap otoritatif bahkan jika pemfilteran konteks build mengubah metadata VCS tertanam. Kandidat yang hilang atau salah format akan jatuh ke sumber berikutnya yang dapat digunakan. Jika tidak ada yang tersedia, STDIO tetap dimulai dengan label pengembangan dev dan mengeluarkan peringatan di stderr, meninggalkan stdout tersedia untuk protokol MCP. Berikan metadata rilis atau revisi yang sebenarnya saat atribusi khusus versi diperlukan.
Server GitHub MCP mendukung mengaktifkan atau menonaktifkan kelompok fungsionalitas tertentu melalui flag --toolsets. Ini memungkinkan Anda mengontrol kemampuan API GitHub mana yang tersedia untuk alat AI Anda. Mengaktifkan hanya toolset yang Anda butuhkan dapat membantu LLM dalam pemilihan alat dan mengurangi ukuran konteks.
Toolset tidak terbatas pada Alat. Sumber Daya MCP dan Prompt yang relevan juga disertakan jika berlaku.
Ketika tidak ada toolset yang ditentukan, toolset default digunakan.
Mencari contoh? Lihat Panduan Konfigurasi Server untuk resep umum seperti pengaturan minimal, mode hanya-baca, dan menggabungkan alat dengan toolset.
Menentukan Toolset
Untuk menentukan toolset yang ingin Anda sediakan untuk LLM, Anda dapat memberikan daftar izin dengan dua cara:
Variabel lingkungan GITHUB_TOOLSETS memiliki prioritas lebih tinggi daripada argumen baris perintah jika keduanya diberikan.
Menentukan Alat Individual
Anda juga dapat mengonfigurasi alat tertentu menggunakan flag --tools. Alat dapat digunakan secara independen atau dikombinasikan dengan toolset untuk kontrol yang lebih terperinci.
Ini mendaftarkan semua alat dari toolset repos dan issues, plus get_gist.
Catatan Penting:
Alat dan toolset dapat digunakan bersama
Mode hanya-baca memiliki prioritas: alat tulis dilewati jika --read-only diatur, bahkan jika diminta secara eksplisit melalui --tools
Nama alat harus cocok persis (misalnya, get_file_contents, bukan getFileContents). Nama alat yang tidak valid akan menyebabkan server gagal saat startup dengan pesan kesalahan
Ketika alat diubah namanya, nama lama dipertahankan sebagai alias untuk kompatibilitas mundur. Lihat Penggantian Nama Alat untuk detailnya.
Menggunakan Toolset dengan Docker
Saat menggunakan Docker, Anda dapat meneruskan toolset sebagai variabel lingkungan:
Sangat disarankan: Alat yang menyediakan konteks tentang pengguna saat ini dan konteks GitHub tempat Anda beroperasi
actions
Alur kerja GitHub Actions dan operasi CI/CD
code_quality
Alat terkait Kualitas Kode GitHub
code_security
Alat terkait keamanan kode, seperti GitHub Code Scanning
copilot
Alat terkait Copilot
copilot_issue_intents
Alat penugasan masalah Copilot opt-in yang membawa metadata niat (alasan, keyakinan, saran)
dependabot
Alat Dependabot
discussions
Alat terkait GitHub Discussions
gists
Alat terkait GitHub Gist
git
Alat terkait GitHub Git API untuk operasi Git tingkat rendah
governance
Alat tata kelola repositori untuk mengelola ruleset dan properti kustom di tingkat repositori, organisasi, dan perusahaan
issues
Alat terkait GitHub Issues
labels
Alat terkait GitHub Labels
notifications
Alat terkait GitHub Notifications
orgs
Alat terkait GitHub Organization
projects
Alat terkait GitHub Projects
pull_requests
Alat terkait GitHub Pull Request
repos
Alat terkait GitHub Repository
secret_protection
Alat terkait perlindungan rahasia, seperti GitHub Secret Scanning
security_advisories
Alat terkait security advisories
stargazers
Alat terkait GitHub Stargazers
users
Alat terkait GitHub User
Toolset Tambahan di Server GitHub MCP Jarak Jauh
Toolset
Deskripsi
copilot
Alat terkait Copilot (misalnya Copilot Coding Agent)
copilot_spaces
Alat terkait Copilot Spaces
github_support_docs_search
Cari dokumen untuk menjawab pertanyaan produk dan dukungan GitHub
Alat
Alat repositori mengekspos skema output dan structuredContent yang diketik ketika versi protokol MCP yang dinegosiasikan adalah versi yang didukung 2026-07-28 atau lebih baru. Klien yang lebih lama, klien dengan versi protokol yang tidak diketahui, dan klien yang menghilangkan versi menerima konten yang ada tanpa skema output atau output terstruktur. Versi yang tidak diketahui tidak diperlakukan sebagai didukung hanya karena diurutkan setelah 2026-07-28.
Untuk get_file_contents, hasil direktori (termasuk proyeksi bidang) adalah array terstruktur. Unduhan file dan respons hanya metadata menggunakan array content dari blok teks yang diketik, sumber daya tertanam, atau tautan sumber daya, mempertahankan pesan status, teks, blob base64, file kosong, dan tautan unduhan. Mutasi repositori hanya teks seperti penandaan bintang dan penghapusan juga mengembalikan message terstruktur; respons fork membedakan referensi repositori dari pesan yang sedang berlangsung. Penghapusan repositori masih memerlukan alur konfirmasi yang ada sebelum mengembalikan hasil yang selesai.
Hasil repositori terstruktur menggunakan DTO ringkas daripada objek REST mentah. Pencarian rilis berbagi bentuk rilis ringkas dengan daftar rilis; referensi Git mempertahankan ref, tipe objek, dan SHA; tag beranotasi mempertahankan informasi tag/pesan/penanda/target; komit penghapusan mempertahankan SHA, pesan, penulis, SHA pohon, SHA induk, dan html_url yang menghadap pengguna saat tersedia. Entri direktori mempertahankan metadata file dan tautan HTML/unduhan yang berguna, tetapi menghilangkan URL perutean API dan hypermedia bahkan ketika bidang tersebut diminta dalam proyeksi. Versi protokol lama dan tidak dikenal mempertahankan teks asli byte-demi-byte; respons JSON teks modern menyerialkan DTO ringkas yang sama dengan structuredContent. Blok sumber daya non-teks dan kesalahan alat mempertahankan perilaku konten yang ada. Proyeksi terstruktur menggunakan sumber yang sama yang disanitasi dan difilter seperti pemformat lama.
Untuk get_repository_tree, list_gists, get_gist, create_gist, dan update_gist, hasil gist mempertahankan nama file, konten, ukuran, informasi bahasa/tipe, stempel waktu, visibilitas, dan profil pemilik ringkas, sambil menghilangkan API/node dan URL transport Git. Entri pohon menghilangkan URL API yang dapat diturunkan. Hasil pembuatan/pembaruan gist berisi ID gist dan URL HTML. Teks JSON modern dan konten terstruktur menyerialkan hasil ringkas yang sama. Versi protokol lama atau tidak dikenal mempertahankan teks lama byte-demi-byte tanpa skema keluaran atau konten terstruktur.
Alat metadata masalah (list_issue_types, list_issue_fields), komentar (add_issue_comment, update_issue_comment), dependensi (issue_dependency_read, issue_dependency_write), dan deteksi duplikat (find_duplicate) menyediakan outputSchema dan structuredContent yang diketik untuk versi protokol yang didukung yang dinegosiasikan 2026-07-28 atau lebih baru. Versi protokol lama atau tidak dikenal mempertahankan respons teks yang sama tanpa bidang ini. Kesalahan alat tidak mengembalikan konten terstruktur. Alat dependensi dan deteksi duplikat mempertahankan gerbang fitur yang ada.
Untuk versi protokol yang didukung yang dinegosiasikan 2026-07-28 atau lebih baru, alat Actions yang dikonsolidasikan (actions_list, actions_get, actions_run_trigger) mengembalikan objek terstruktur dengan diskriminan method dan bidang yang diketik khusus metode; teks JSON berisi proyeksi ringkas yang sama. Proyeksi alur kerja, pekerjaan, dan artefak menghilangkan URL API/hypermedia sambil mempertahankan tautan browser dan pengidentifikasi yang berguna, status, stempel waktu, dan durasi penggunaan. Daftar penggunaan run mencantumkan lingkungan runner yang dapat ditagih dalam urutan nama yang deterministik. Respons teks protokol lama dan tidak dikenal tetap tidak berubah; get_job_logs mempertahankan konten yang diketik, URL, atau varian koleksi pekerjaan yang gagal.
Actions
actions_get - Dapatkan detail sumber daya GitHub Actions (alur kerja, run alur kerja, pekerjaan, dan artefak)
Cakupan Tantangan OAuth: repo
method: Metode yang akan dieksekusi (string, wajib)
owner: Pemilik repositori (string, wajib)
repo: Nama repositori (string, wajib)
resource_id: Pengidentifikasi unik sumber daya. Ini akan bervariasi berdasarkan "metode" yang diberikan, jadi pastikan Anda memberikan ID yang benar:
Berikan ID alur kerja atau nama file alur kerja (mis. ci.yaml) untuk metode 'get_workflow'.
Berikan ID run alur kerja untuk metode 'get_workflow_run', 'get_workflow_run_usage', dan 'get_workflow_run_logs_url'.
Berikan ID artefak untuk metode 'download_workflow_run_artifact'.
Berikan ID pekerjaan untuk metode 'get_workflow_job'.
(string, wajib)
actions_list - Daftar alur kerja GitHub Actions di repositori
Cakupan Tantangan OAuth: repo
method: Tindakan yang akan dilakukan (string, wajib)
owner: Pemilik repositori (string, wajib)
page: Nomor halaman untuk paginasi (default: 1) (angka, opsional)
perPage: Hasil per halaman untuk paginasi (default: 30, maks: 100) (angka, opsional)
repo: Nama repositori (string, wajib)
resource_id: Pengidentifikasi unik sumber daya. Ini akan bervariasi berdasarkan "metode" yang diberikan, jadi pastikan Anda memberikan ID yang benar:
Jangan berikan ID sumber daya apa pun untuk metode 'list_workflows'.
Berikan ID alur kerja atau nama file alur kerja (mis. ci.yaml) untuk metode 'list_workflow_runs', atau hilangkan untuk mencantumkan semua run alur kerja di repositori.
Berikan ID run alur kerja untuk metode 'list_workflow_jobs' dan 'list_workflow_run_artifacts'.
(string, opsional)
workflow_jobs_filter: Filter untuk pekerjaan alur kerja. HANYA digunakan saat metode adalah 'list_workflow_jobs' (objek, opsional)
workflow_runs_filter: Filter untuk run alur kerja. HANYA digunakan saat metode adalah 'list_workflow_runs' (objek, opsional)
actions_run_trigger - Picu tindakan alur kerja GitHub Actions
Cakupan Tantangan OAuth: repo
inputs: Input yang diterima alur kerja. Hanya digunakan untuk metode 'run_workflow'. (objek, opsional)
method: Metode yang akan dieksekusi (string, wajib)
owner: Pemilik repositori (string, wajib)
ref: Referensi git untuk alur kerja. Referensi dapat berupa nama cabang atau tag. Diperlukan untuk metode 'run_workflow'. (string, opsional)
repo: Nama repositori (string, wajib)
run_id: ID run alur kerja. Diperlukan untuk semua metode kecuali 'run_workflow'. (angka, opsional)
workflow_id: ID alur kerja (numerik) atau nama file alur kerja (mis., main.yml, ci.yaml). Diperlukan untuk metode 'run_workflow'. (string, opsional)
get_job_logs - Dapatkan log pekerjaan alur kerja GitHub Actions
Cakupan Tantangan OAuth: repo
failed_only: Saat true, dapatkan log untuk semua pekerjaan yang gagal dalam run alur kerja yang ditentukan oleh run_id. Memerlukan run_id untuk diberikan. (boolean, opsional)
job_id: Pengidentifikasi unik pekerjaan alur kerja. Diperlukan saat mendapatkan log untuk satu pekerjaan. (angka, opsional)
run_id: Pengidentifikasi unik run alur kerja. Diperlukan saat failed_only true untuk mendapatkan log untuk semua pekerjaan yang gagal dalam run. (angka, opsional)
tail_lines: Jumlah baris yang akan dikembalikan dari akhir log (angka, opsional)
Kualitas Kode
get_code_quality_finding - Dapatkan temuan kualitas kode
Cakupan Tantangan OAuth: repo
findingNumber: Nomor temuan. (angka, wajib)
owner: Pemilik repositori. (string, wajib)
repo: Nama repositori. (string, wajib)
Keamanan Kode
get_code_scanning_alert - Dapatkan peringatan pemindaian kode
Cakupan Tantangan OAuth: security_events
alertNumber: Nomor peringatan. (angka, wajib)
owner: Pemilik repositori. (string, wajib)
repo: Nama repositori. (string, wajib)
list_code_scanning_alerts - Daftar peringatan pemindaian kode
Cakupan Tantangan OAuth: security_events
owner: Pemilik repositori. (string, wajib)
page: Nomor halaman untuk paginasi (min 1) (angka, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (angka, opsional)
ref: Referensi Git untuk hasil yang ingin Anda daftarkan. (string, opsional)
repo: Nama repositori. (string, wajib)
severity: Filter peringatan pemindaian kode berdasarkan tingkat keparahan (string, opsional)
state: Filter peringatan pemindaian kode berdasarkan status. Default ke open (string, opsional)
tool_name: Nama alat yang digunakan untuk pemindaian kode. (string, opsional)
Konteks
get_me - Dapatkan profil pengguna saya
UI Aplikasi MCP: ui://github-mcp-server/get-me
Tidak ada parameter yang diperlukan
get_team_members - Dapatkan anggota tim
Cakupan Tantangan OAuth: read:org
org: Login organisasi (pemilik) yang berisi tim. (string, wajib)
team_slug: Slug tim (string, wajib)
get_teams - Dapatkan tim
Cakupan Tantangan OAuth: read:org
user: Nama pengguna untuk mendapatkan tim. Jika tidak diberikan, menggunakan pengguna yang diautentikasi. (string, opsional)
ui_get - Dapatkan data UI
Cakupan Tantangan OAuth: repo, read:org
method: Jenis data yang akan diambil (string, wajib)
owner: Pemilik repositori (wajib untuk semua metode) (string, wajib)
repo: Nama repositori (wajib untuk label, penugasan, tonggak, cabang, bidang masalah, peninjau) (string, opsional)
Copilot
assign_copilot_to_issue - Tetapkan Copilot ke masalah
Cakupan Tantangan OAuth: repo
base_ref: Referensi Git (mis., cabang) tempat agen akan memulai pekerjaannya. Jika tidak ditentukan, default ke cabang default repositori (string, opsional)
custom_instructions: Instruksi kustom opsional untuk memandu agen di luar isi masalah. Gunakan ini untuk memberikan konteks tambahan, batasan, atau panduan yang tidak tercakup dalam deskripsi masalah (string, opsional)
issue_number: Nomor masalah (angka, wajib)
owner: Pemilik repositori (string, wajib)
repo: Nama repositori (string, wajib)
request_copilot_review - Minta tinjauan Copilot
Cakupan Tantangan OAuth: repo
owner: Pemilik repositori (string, wajib)
pullNumber: Nomor permintaan tarik (angka, wajib)
repo: Nama repositori (string, wajib)
Niat Masalah Copilot
- **assign_copilot_to_issue_with_intent** - Menetapkan Copilot ke isu dengan maksud
- **Cakupan Tantangan OAuth**: `repo`
- `base_ref`: Referensi Git (misalnya, cabang) tempat agen akan memulai pekerjaannya. Jika tidak ditentukan, defaultnya adalah cabang default repositori. Diabaikan saat is_suggestion bernilai true (string, opsional)
- `confidence`: Seberapa yakin Anda terhadap pilihan ini. 'HIGH' untuk sinyal yang jelas atau permintaan eksplisit dari pengguna, 'MEDIUM' untuk inferensi yang masuk akal dengan beberapa ambiguitas, 'LOW' untuk tebakan terbaik dengan sinyal terbatas. (string, wajib)
- `custom_instructions`: Instruksi khusus opsional untuk memandu agen di luar isi isu. Diabaikan saat is_suggestion bernilai true (string, opsional)
- `is_suggestion`: Jika true, mencatat maksud penugasan Copilot yang tertunda daripada meluncurkan agen. Persetujuan nanti menyediakan konteks peluncuran; base_ref dan custom_instructions diabaikan dalam kasus ini. (boolean, wajib)
- `issue_number`: Nomor isu (angka, wajib)
- `owner`: Pemilik repositori (string, wajib)
- `rationale`: Satu kalimat ringkas yang menjelaskan apa yang secara spesifik tentang isu tersebut yang menyebabkan pemilihan Copilot. Nyatakan sinyal konkretnya (misalnya, 'Tugas yang terdefinisi dengan baik dengan kriteria penerimaan yang jelas'). (string, wajib)
- `repo`: Nama repositori (string, wajib)
Dependabot
get_dependabot_alert - Mendapatkan peringatan dependabot
body: Konten komentar (wajib untuk metode 'add', 'reply', dan 'update') (string, opsional)
commentNodeID: ID Node dari komentar diskusi (wajib untuk metode 'reply', 'update', 'delete', 'mark_answer', dan 'unmark_answer'). Untuk 'reply', ini adalah komentar tingkat atas yang akan dibalas; GitHub Discussions hanya mendukung satu tingkat penyarangan. (string, opsional)
discussionNumber: Nomor diskusi (wajib untuk metode 'add' dan 'reply') (angka, opsional)
method: Operasi tulis yang akan dilakukan pada komentar diskusi.
Opsinya adalah:
'add' - menambahkan komentar tingkat atas baru ke diskusi.
'reply' - membalas komentar diskusi tingkat atas (GitHub Discussions hanya mendukung satu tingkat penyarangan).
'update' - memperbarui komentar diskusi yang ada.
'delete' - menghapus komentar diskusi.
'mark_answer' - menandai komentar diskusi sebagai jawaban (khusus Q&A).
owner: Pemilik repositori (wajib untuk metode 'add' dan 'reply') (string, opsional)
repo: Nama repositori (wajib untuk metode 'add' dan 'reply') (string, opsional)
get_discussion - Mendapatkan diskusi
Cakupan Tantangan OAuth: repo
discussionNumber: Nomor diskusi (angka, wajib)
owner: Pemilik repositori (string, wajib)
repo: Nama repositori (string, wajib)
get_discussion_comments - Mendapatkan komentar diskusi
Cakupan Tantangan OAuth: repo
after: Kursor untuk paginasi. Gunakan kursor dari respons sebelumnya. (string, opsional)
discussionNumber: Nomor diskusi (angka, wajib)
includeReplies: Saat true, setiap komentar tingkat atas akan menyertakan balasannya yang disarangkan di dalamnya (hingga 100 balasan per komentar, yang merupakan maksimum API GitHub). Defaultnya adalah false. (boolean, opsional)
owner: Pemilik repositori (string, wajib)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (angka, opsional)
repo: Nama repositori. Jika tidak diberikan, kategori diskusi akan ditanyakan di tingkat organisasi. (string, opsional)
list_discussions - Mendaftar diskusi
Cakupan Tantangan OAuth: repo
after: Kursor untuk paginasi. Gunakan kursor dari respons sebelumnya. (string, opsional)
category: Filter opsional berdasarkan ID kategori diskusi. Jika diberikan, hanya diskusi dengan kategori ini yang akan didaftar. (string, opsional)
direction: Arah urutan. (string, opsional)
orderBy: Urutkan diskusi berdasarkan bidang. Jika diberikan, 'direction' juga perlu diberikan. (string, opsional)
owner: Pemilik repositori (string, wajib)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (angka, opsional)
repo: Nama repositori. Jika tidak diberikan, diskusi akan ditanyakan di tingkat organisasi. (string, opsional)
Gists
create_gist - Membuat Gist
Cakupan Tantangan OAuth: gist
content: Konten untuk pembuatan gist satu file sederhana (string, wajib)
description: Deskripsi gist (string, opsional)
filename: Nama file untuk pembuatan gist satu file sederhana (string, wajib)
public: Apakah gist bersifat publik (boolean, opsional)
get_gist - Mendapatkan Konten Gist
gist_id: ID gist (string, wajib)
list_gists - Mendaftar Gists
page: Nomor halaman untuk paginasi (min 1) (angka, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (angka, opsional)
since: Hanya gist yang diperbarui setelah waktu ini (stempel waktu ISO 8601) (string, opsional)
username: Nama pengguna GitHub (abaikan untuk gist pengguna yang terautentikasi) (string, opsional)
update_gist - Memperbarui Gist
Cakupan Tantangan OAuth: gist
content: Konten untuk file (string, wajib)
description: Deskripsi gist yang diperbarui (string, opsional)
filename: Nama file untuk diperbarui atau dibuat (string, wajib)
gist_id: ID gist yang akan diperbarui (string, wajib)
Git
get_repository_tree - Mendapatkan pohon repositori
Cakupan Tantangan OAuth: repo
owner: Pemilik repositori (nama pengguna atau organisasi) (string, wajib)
path_filter: Awalan jalur opsional untuk memfilter hasil pohon (misalnya, 'src/' untuk hanya menampilkan file di direktori src) (string, opsional)
recursive: Menyetel parameter ini ke true mengembalikan objek atau subpohon yang direferensikan oleh pohon. Defaultnya adalah false (boolean, opsional)
repo: Nama repositori (string, wajib)
tree_sha: Nilai SHA1 atau nama ref (cabang atau tag) dari pohon. Defaultnya adalah cabang default repositori (string, opsional)
Governance
create_repository_ruleset - Membuat aturan repositori
bypass_actors: Aktor yang dapat melewati aturan dalam aturan ini (object[], opsional)
conditions: Kondisi kapan aturan ini berlaku, misalnya {"ref_name": {"include": ["refs/heads/main"], "exclude": []}} (object, opsional)
enforcement: Tingkat penegakan aturan. 'evaluate' memungkinkan admin menguji aturan sebelum menegakkannya (string, wajib)
enterprise: Slug perusahaan. Wajib saat levelnya 'enterprise'. (string, opsional)
level: Tingkat di mana aturan dikonfigurasi:
'repository': Aturan pada satu repositori (memerlukan 'owner' dan 'repo').
'organization': Aturan yang mencakup repositori dalam organisasi (memerlukan 'org').
'enterprise': Aturan yang mencakup repositori di seluruh perusahaan (memerlukan 'enterprise'). (string, wajib)
name: Nama aturan (string, wajib)
org: Nama organisasi. Wajib saat levelnya 'organization'. (string, opsional)
owner: Pemilik repositori. Wajib saat levelnya 'repository'. (string, opsional)
repo: Nama repositori. Wajib saat levelnya 'repository'. (string, opsional)
rules: Array aturan dalam aturan. Setiap aturan adalah objek dengan 'type' (misalnya 'creation', 'deletion', 'non_fast_forward', 'required_signatures', 'pull_request', 'required_status_checks') dan, untuk aturan yang memerlukan konfigurasi, objek 'parameters' (object[], wajib)
target: Target aturan. Defaultnya adalah 'branch'. 'repository' hanya valid untuk aturan tingkat 'organization' dan 'enterprise'. (string, opsional)
org: Nama organisasi. Diperlukan saat level adalah 'organization'. (string, opsional)
owner: Pemilik repositori. Diperlukan saat level adalah 'repository'. (string, opsional)
properties: Properti kustom yang akan dibuat atau diperbarui. Pada level repositori, setiap item menetapkan nilai ('property_name' dan 'value'); pada level organisasi dan enterprise, setiap item mendefinisikan skema ('property_name' dan 'value_type', plus kolom definisi opsional). (object[], wajib)
repo: Nama repositori. Diperlukan saat level adalah 'repository'. (string, opsional)
actor_name: Handle untuk akun pengguna GitHub yang digunakan untuk memfilter rule suite. Digunakan oleh metode 'list_rule_suites'. (string, opsional)
branch: Nama cabang. Diperlukan untuk metode 'get_rules_for_branch'. (string, opsional)
enterprise: Slug enterprise. Diperlukan saat level adalah 'enterprise'. (string, opsional)
evaluate_status: Filter rule suite berdasarkan mode evaluasi ruleset. Digunakan oleh metode 'list_rule_suites'. (string, opsional)
includes_parents: Sertakan ruleset yang dikonfigurasi di level lebih tinggi yang juga berlaku. Defaultnya adalah true. Digunakan oleh metode 'get' dan 'list' pada level repositori. (boolean, opsional)
level: Level di mana ruleset dikonfigurasi:
'repository': Ruleset pada satu repositori (memerlukan 'owner' dan 'repo').
'organization': Ruleset yang mencakup repositori dalam organisasi (memerlukan 'org').
'enterprise': Ruleset yang mencakup repositori di seluruh enterprise (memerlukan 'enterprise'). (string, wajib)
method: Operasi yang akan dilakukan:
'get': Mendapatkan ruleset tertentu berdasarkan ID (memerlukan 'ruleset_id'). Didukung di setiap level.
'list': Mendaftar semua ruleset. Didukung di setiap level.
'get_rules_for_branch': Mendapatkan semua aturan yang berlaku untuk cabang (memerlukan 'branch'). Hanya level repositori.
'list_rule_suites': Mendaftar rule suite, yaitu evaluasi aturan terhadap push. Hanya level repositori dan organisasi.
'get_rule_suite': Mendapatkan rule suite tertentu berdasarkan ID (memerlukan 'rule_suite_id'). Hanya level repositori dan organisasi. (string, wajib)
org: Nama organisasi. Diperlukan saat level adalah 'organization'. (string, opsional)
owner: Pemilik repositori. Diperlukan saat level adalah 'repository'. (string, opsional)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
ref: Nama ref (cabang, tag, dll.) untuk memfilter rule suite. Digunakan oleh metode 'list_rule_suites'. (string, opsional)
repo: Nama repositori. Diperlukan saat level adalah 'repository'. (string, opsional)
repository_name: Nama repositori untuk memfilter rule suite. Digunakan oleh metode 'list_rule_suites' pada level organisasi. (string, opsional)
rule_suite_id: ID rule suite. Diperlukan untuk metode 'get_rule_suite'. (number, opsional)
rule_suite_result: Hasil rule suite untuk memfilter. Digunakan oleh metode 'list_rule_suites'. (string, opsional)
ruleset_id: ID ruleset. Diperlukan untuk metode 'get'. (number, opsional)
time_period: Periode waktu untuk memfilter rule suite. Digunakan oleh metode 'list_rule_suites'. (string, opsional)
Masalah
add_issue_comment - Menambahkan komentar ke masalah atau pull request
comment_id: ID numerik dari komentar masalah atau pull request yang akan diberi reaksi. Gunakan ini untuk reaksi pada komentar; abaikan untuk memberi reaksi pada masalah atau pull request itu sendiri. Tidak dapat digabungkan dengan body. (integer, opsional)
issue_number: Nomor masalah atau pull request untuk dikomentari atau diberi reaksi. (number, wajib)
owner: Pemilik repositori (string, wajib)
reaction: Reaksi emoji yang akan ditambahkan. Diperlukan kecuali body diberikan. (string, opsional)
repo: Nama repositori (string, wajib)
get_label - Mendapatkan label tertentu dari repositori
OAuth Challenge Scopes: repo
name: Nama label. (string, wajib)
owner: Pemilik repositori (nama pengguna atau nama organisasi) (string, wajib)
repo: Nama repositori (string, wajib)
issue_read - Mendapatkan detail masalah
OAuth Challenge Scopes: repo
issue_number: Nomor masalah (number, wajib)
method: Operasi baca yang akan dilakukan pada satu masalah.
Opsinya adalah:
get - Mendapatkan detail masalah. Juga mengembalikan flag hierarki upaya terbaik (has_parent, has_children); parent dan sub_issues_summary adalah ringkasan hubungan opsional, dan closed_by_pull_requests merangkum pull request yang dikonfigurasi untuk menutup masalah sebagai total_count plus hingga 5 references.
get_comments - Mendapatkan komentar masalah.
get_sub_issues - Mendapatkan sub-masalah (anak) dari masalah.
get_parent - Mendapatkan masalah induk, jika masalah ini adalah sub-masalah dari masalah lain.
get_labels - Mendapatkan label yang ditetapkan ke masalah.
(string, wajib)
owner: Pemilik repositori (string, wajib)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
repo: Nama repositori (string, wajib)
issue_write - Membuat atau memperbarui masalah/pull request
OAuth Challenge Scopes: repo
MCP App UI: ui://github-mcp-server/issue-write
assignees: Nama pengguna yang akan ditetapkan ke masalah ini (string[], opsional)
body: Konten body masalah (string, opsional)
duplicate_of: Nomor masalah yang merupakan duplikat dari masalah ini. Diperlukan saat state_reason adalah 'duplicate'. (number, opsional)
issue_fields: Nilai kolom masalah yang akan diatur atau dihapus. Setiap item memerlukan 'field_name' dan tepat satu dari 'value', 'field_option_name', atau 'delete: true'. (object[], opsional)
issue_number: Nomor masalah yang akan diperbarui (number, opsional)
labels: Label yang akan diterapkan ke masalah ini (string[], opsional)
method: Operasi tulis yang akan dilakukan pada satu masalah.
Opsinya adalah:
'create' - membuat masalah baru.
'update' - memperbarui masalah yang ada.
(string, wajib)
milestone: Nomor milestone (number, opsional)
owner: Pemilik repositori (string, wajib)
parent_issue_number: Nomor masalah dari masalah induk. Hanya digunakan saat method adalah 'create' dan tidak dapat digabungkan dengan issue_fields. Masalah baru dibuat dan dilampirkan ke induk ini dalam operasi yang sama. (number, opsional)
parent_owner: Pemilik repositori dari masalah induk. Harus diberikan bersama parent_repo. Abaikan keduanya untuk menggunakan owner dan repo. Hanya digunakan saat method adalah 'create' dan parent_issue_number diberikan. (string, opsional)
parent_repo: Nama repositori dari masalah induk. Harus diberikan bersama parent_owner. Abaikan keduanya untuk menggunakan owner dan repo. Hanya digunakan saat method adalah 'create' dan parent_issue_number diberikan. (string, opsional)
repo: Nama repositori (string, wajib)
state: State baru (string, opsional)
state_reason: Alasan untuk perubahan state. Diabaikan kecuali state diubah. (string, opsional)
title: Judul masalah (string, opsional)
type: Tipe dari masalah ini. Untuk pembaruan, berikan null untuk menghapus tipe saat ini. Hanya gunakan jika tipe masalah diaktifkan untuk repositori ini. Gunakan list_issue_types untuk mendapatkan nilai tipe yang valid untuk repositori ini atau organisasi pemiliknya. Jika repositori tidak mendukung tipe masalah, abaikan parameter ini. (string | null, opsional)
list_issue_fields - Mendaftar kolom masalah
OAuth Challenge Scopes: repo, read:org
owner: Pemilik akun dari repositori atau organisasi. Nama tidak peka huruf besar/kecil. (string, wajib)
repo: Nama repositori. Saat diberikan, mengembalikan kolom untuk repositori spesifik ini (diwarisi dari organisasinya). Saat diabaikan, mengembalikan kolom level organisasi secara langsung. (string, opsional)
list_issue_types - Mendaftar tipe masalah yang tersedia
OAuth Challenge Scopes: repo, read:org
owner: Pemilik akun dari repositori atau organisasi. (string, wajib)
repo: Nama repositori. Saat diberikan, mengembalikan tipe masalah untuk repositori spesifik ini. Saat diabaikan, mengembalikan tipe masalah level organisasi secara langsung. (string, opsional)
list_issues - Mendaftar masalah
OAuth Challenge Scopes: repo
after: Kursor untuk paginasi. Gunakan kursor dari respons sebelumnya. (string, opsional)
direction: Arah urutan. Jika diberikan, 'orderBy' juga perlu diberikan. (string, opsional)
field_filters: Filter berdasarkan nilai kolom masalah kustom. Setiap entri mengambil field_name dan value; server mencari kolom dan mengonversi nilai ke tipe yang sesuai (nama opsi pilihan tunggal, teks, angka, atau tanggal YYYY-MM-DD). (object[], opsional)
fields: Subset kolom yang akan dikembalikan untuk setiap masalah. Jika diabaikan, semua kolom dikembalikan. Gunakan ini untuk mengurangi ukuran respons saat Anda hanya memerlukan kolom tertentu; mengabaikan 'body' dan 'field_values' khususnya menghilangkan data per-hasil terbesar. (string[], opsional)
labels: Filter berdasarkan label (string[], opsional)
orderBy: Urutkan masalah berdasarkan kolom. Jika diberikan, 'direction' juga perlu diberikan. (string, opsional)
owner: Pemilik repositori (string, wajib)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
repo: Nama repositori (string, wajib)
since: Filter berdasarkan tanggal (timestamp ISO 8601) (string, opsional)
state: Filter berdasarkan state, secara default masalah terbuka dan tertutup dikembalikan saat tidak diberikan (string, opsional)
search_issues - Mencari isu
OAuth Challenge Scopes: repo
fields: Subset bidang yang akan dikembalikan untuk setiap hasil isu. Jika dihilangkan, semua bidang akan dikembalikan. Gunakan ini untuk mengurangi ukuran respons ketika Anda hanya memerlukan bidang tertentu; menghilangkan 'body', 'reactions', dan 'labels' secara khusus menghapus data per hasil terbesar. (string[], opsional)
order: Urutan pengurutan (string, opsional)
owner: Pemilik repositori opsional. Jika disediakan dengan repo, hanya isu untuk repositori ini yang akan dicantumkan. (string, opsional)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
query: Kueri pencarian, sebagai bahasa alami. Ketika pengguna memberikan kata-kata alternatif, sertakan sebagai kata biasa daripada menggabungkannya dengan OR. (string, wajib)
repo: Nama repositori opsional. Jika disediakan dengan pemilik, hanya isu untuk repositori ini yang akan dicantumkan. (string, opsional)
sort: Bidang pengurutan berdasarkan jumlah kecocokan kategori, default ke kecocokan terbaik (string, opsional)
sub_issue_write - Mengubah sub-issue
OAuth Challenge Scopes: repo
after_id: ID sub-issue yang akan diprioritaskan setelahnya (baik after_id ATAU before_id harus ditentukan) (number, opsional)
before_id: ID sub-issue yang akan diprioritaskan sebelumnya (baik after_id ATAU before_id harus ditentukan) (number, opsional)
issue_number: Nomor isu induk (number, wajib)
method: Tindakan yang akan dilakukan pada satu sub-issue
Opsinya adalah:
'add' - menambahkan sub-issue ke isu induk di repositori GitHub.
'remove' - menghapus sub-issue dari isu induk di repositori GitHub.
'reprioritize' - mengubah urutan sub-issue dalam isu induk di repositori GitHub. Gunakan 'after_id' atau 'before_id' untuk menentukan posisi baru.
Menulis hierarki isu. Untuk memindahkan sub-issue ke induk baru, gunakan add dengan replace_parent=true; tidak ada bidang induk yang dapat ditulis.
(string, wajib)
owner: Pemilik repositori (string, wajib)
replace_parent: Jika true, menggantikan isu induk saat ini dari sub-issue. Gunakan hanya dengan metode 'add'. (boolean, opsional)
repo: Nama repositori (string, wajib)
sub_issue_id: ID sub-issue yang akan ditambahkan. ID tidak sama dengan nomor isu (number, wajib)
update_issue_comment - Memperbarui komentar isu
OAuth Challenge Scopes: repo
body: Konten komentar baru (string, wajib)
comment_id: ID numerik dari komentar percakapan isu atau pull request yang akan diperbarui. Jangan gunakan ID komentar tinjauan pull request. (integer, wajib)
owner: Pemilik repositori (string, wajib)
repo: Nama repositori (string, wajib)
Label
get_label - Mendapatkan label tertentu dari repositori
OAuth Challenge Scopes: repo
name: Nama label. (string, wajib)
owner: Pemilik repositori (nama pengguna atau nama organisasi) (string, wajib)
repo: Nama repositori (string, wajib)
label_write - Operasi tulis pada label repositori
OAuth Challenge Scopes: repo
color: Warna label sebagai kode hex 6 karakter tanpa awalan '#' (misalnya, 'f29513'). Diperlukan untuk 'create', opsional untuk 'update'. (string, opsional)
description: Teks deskripsi label. Opsional untuk 'create' dan 'update'. (string, opsional)
method: Operasi yang akan dilakukan: 'create', 'update', atau 'delete' (string, wajib)
name: Nama label - diperlukan untuk semua operasi (string, wajib)
new_name: Nama baru untuk label (hanya digunakan dengan metode 'update' untuk mengganti nama) (string, opsional)
owner: Pemilik repositori (nama pengguna atau nama organisasi) (string, wajib)
repo: Nama repositori (string, wajib)
list_label - Mencantumkan label dari repositori
OAuth Challenge Scopes: repo
after: Kursor untuk paginasi. Gunakan kursor dari respons sebelumnya. (string, opsional)
owner: Pemilik repositori (nama pengguna atau nama organisasi) - diperlukan untuk semua operasi (string, wajib)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
repo: Nama repositori - diperlukan untuk semua operasi (string, wajib)
Notifikasi
dismiss_notification - Menutup notifikasi
OAuth Challenge Scopes: notifications
state: Status baru dari notifikasi (read/done) (string, wajib)
threadID: ID dari utas notifikasi (string, wajib)
get_notification_details - Mendapatkan detail notifikasi
OAuth Challenge Scopes: notifications
notificationID: ID dari notifikasi (string, wajib)
list_notifications - Mencantumkan notifikasi
OAuth Challenge Scopes: notifications
before: Hanya tampilkan notifikasi yang diperbarui sebelum waktu yang diberikan (format ISO 8601) (string, opsional)
filter: Filter notifikasi, gunakan default kecuali ditentukan. Notifikasi yang dibaca adalah notifikasi yang telah diakui oleh pengguna. Notifikasi yang berpartisipasi adalah notifikasi yang melibatkan pengguna secara langsung, seperti isu atau pull request yang telah dikomentari atau dibuat oleh pengguna. (string, opsional)
owner: Pemilik repositori opsional. Jika disediakan dengan repo, hanya notifikasi untuk repositori ini yang akan dicantumkan. (string, opsional)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
repo: Nama repositori opsional. Jika disediakan dengan pemilik, hanya notifikasi untuk repositori ini yang akan dicantumkan. (string, opsional)
since: Hanya tampilkan notifikasi yang diperbarui setelah waktu yang diberikan (format ISO 8601) (string, opsional)
action: Tindakan yang akan dilakukan: ignore, watch, atau delete langganan notifikasi repositori. (string, wajib)
owner: Pemilik akun dari repositori. (string, wajib)
repo: Nama dari repositori. (string, wajib)
mark_all_notifications_read - Menandai semua notifikasi sebagai dibaca
OAuth Challenge Scopes: notifications
lastReadAt: Menjelaskan titik terakhir notifikasi diperiksa (opsional). Default: Sekarang (string, opsional)
owner: Pemilik repositori opsional. Jika disediakan dengan repo, hanya notifikasi untuk repositori ini yang akan ditandai sebagai dibaca. (string, opsional)
repo: Nama repositori opsional. Jika disediakan dengan pemilik, hanya notifikasi untuk repositori ini yang akan ditandai sebagai dibaca. (string, opsional)
Organisasi
search_orgs - Mencari organisasi
OAuth Challenge Scopes: read:org
order: Urutan pengurutan (string, opsional)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
query: Kueri pencarian organisasi. Contoh: 'microsoft', 'location:california', 'created:>=2025-01-01'. Pencarian secara otomatis dibatasi ke type:org. (string, wajib)
sort: Bidang pengurutan berdasarkan kategori (string, opsional)
Proyek
projects_get - Mendapatkan detail sumber daya GitHub Projects
OAuth Challenge Scopes: read:project
field_id: ID bidang. Diperlukan untuk metode 'get_project_field'. (number, opsional)
field_names: Daftar spesifik nama bidang yang akan disertakan dalam respons saat mendapatkan item proyek (misalnya ["Status", "Priority"]). Diselesaikan di sisi server ke ID bidang — berikan ini alih-alih 'fields' ketika Anda hanya mengetahui nama yang dapat dibaca manusia. Saling eksklusif dengan 'fields' — berikan salah satu, bukan keduanya. Hanya digunakan untuk metode 'get_project_item'. (string[], opsional)
fields: Daftar spesifik ID bidang yang akan disertakan dalam respons saat mendapatkan item proyek (misalnya ["102589", "985201", "169875"]). Jika baik 'fields' maupun 'field_names' tidak disediakan, hanya bidang judul yang disertakan. Saling eksklusif dengan 'field_names' — berikan salah satu, bukan keduanya. Hanya digunakan untuk metode 'get_project_item'. (string[], opsional)
item_id: ID item. Diperlukan untuk metode 'get_project_item'. (number, opsional)
method: Metode yang akan dieksekusi (string, wajib)
owner: Pemilik (login pengguna atau organisasi). Nama tidak peka huruf besar/kecil. (string, opsional)
owner_type: Tipe pemilik (user atau org). Jika tidak disediakan, akan dideteksi secara otomatis. (string, opsional)
project_number: Nomor proyek. (number, opsional)
status_update_id: ID node dari pembaruan status proyek. Diperlukan untuk metode 'get_project_status_update'. (string, opsional)
view_id: ID node dari tampilan proyek. Diperlukan untuk metode 'get_project_view'. (string, opsional)
projects_list - Daftar sumber daya GitHub Projects
OAuth Challenge Scopes: read:project
after: Kursor pagination maju dari pageInfo.nextCursor sebelumnya. (string, opsional)
before: Kursor pagination mundur dari pageInfo.prevCursor sebelumnya (jarang). (string, opsional)
field_names: Nama bidang yang akan disertakan saat mendaftar item proyek (misalnya ["Status", "Prioritas"]). Diselesaikan di sisi server menjadi ID bidang — berikan ini alih-alih 'fields' ketika Anda hanya mengetahui nama yang dapat dibaca manusia. Nama yang gagal diselesaikan akan mengembalikan kesalahan terstruktur. Saling eksklusif dengan 'fields' — berikan salah satu, bukan keduanya. Hanya digunakan untuk metode 'list_project_items'. (string[], opsional)
fields: ID bidang yang akan disertakan saat mendaftar item proyek (misalnya ["102589", "985201"]). KRITIS: Selalu berikan untuk mendapatkan nilai bidang. Tanpa ini (dan tanpa 'field_names'), hanya judul yang dikembalikan. Saling eksklusif dengan 'field_names' — berikan salah satu, bukan keduanya. Hanya digunakan untuk metode 'list_project_items'. (string[], opsional)
method: Tindakan yang akan dilakukan (string, wajib)
owner: Pemilik (login pengguna atau organisasi). Nama tidak peka huruf besar/kecil. (string, wajib)
owner_type: Jenis pemilik (pengguna atau org). Jika tidak diberikan, akan otomatis mencoba keduanya. (string, opsional)
perPage: Hasil per halaman (maks 50) (angka, opsional)
project_number: Nomor proyek. Diperlukan untuk metode 'list_project_fields', 'list_project_items', 'list_project_views', dan 'list_project_status_updates'. (angka, opsional)
query: String filter/kueri. Untuk list_projects: filter berdasarkan teks judul dan status (misalnya "roadmap is:open"). Untuk list_project_items: pemfilteran lanjutan menggunakan sintaks pemfilteran proyek GitHub. (string, opsional)
projects_write - Kelola GitHub Projects
OAuth Challenge Scopes: project
body: Isi pembaruan status (markdown). Digunakan untuk metode 'create_project_status_update'. (string, opsional)
field_name: Nama bidang iterasi (misalnya 'Sprint'). Diperlukan untuk metode 'create_iteration_field'. (string, opsional)
filter: Filter tampilan tersimpan; hilangkan saat pembaruan untuk mempertahankannya, atau berikan null untuk menghapusnya. (string | null, opsional)
issue_number: Nomor isu. Diperlukan untuk 'add_project_item' ketika item_type adalah 'issue'. Juga diterima oleh 'update_project_item' untuk menyelesaikan item berdasarkan nomor isu (gabungkan dengan item_owner dan item_repo). (angka, opsional)
item_id: ID item proyek. Diperlukan untuk 'delete_project_item'. Untuk 'update_project_item', berikan item_id, atau (item_owner + item_repo + issue_number) untuk menyelesaikan item berdasarkan isu. (angka, opsional)
item_owner: Pemilik (pengguna atau organisasi) dari repositori yang berisi isu atau pull request. Diperlukan untuk metode 'add_project_item'. Juga diterima oleh 'update_project_item' saat menyelesaikan item berdasarkan nomor isu. (string, opsional)
item_repo: Nama repositori yang berisi isu atau pull request. Diperlukan untuk metode 'add_project_item'. Juga diterima oleh 'update_project_item' saat menyelesaikan item berdasarkan nomor isu. (string, opsional)
item_type: Jenis item, baik issue atau pull_request. Diperlukan untuk metode 'add_project_item'. (string, opsional)
items: Item yang akan diperbarui dengan 'updated_field' tingkat atas. Diperlukan untuk 'update_project_items'; lebih baik gunakan ini daripada memanggil 'update_project_item' dalam loop. Setiap entri harus cocok dengan tepat satu varian referensi: 'node_id', 'item_id' numerik, atau 'item_owner' + 'item_repo' + 'issue_number'. Batas: 50 item per panggilan. (object[], opsional)
iteration_duration: Durasi dalam hari untuk iterasi bidang (misalnya 7 untuk mingguan, 14 untuk dua mingguan). Diperlukan untuk metode 'create_iteration_field'. (angka, opsional)
iterations: Iterasi kustom untuk metode 'create_iteration_field'. Hanya atur ini ketika Anda memerlukan iterasi dengan durasi bervariasi, jeda di antaranya, atau judul spesifik. Jika tidak, hilangkan: GitHub otomatis membuat tiga iterasi 'iteration_duration' hari mulai dari 'start_date', yang merupakan pilihan tepat untuk sebagian besar kasus. (object[], opsional)
layout: Tata letak tampilan; diperlukan saat membuat tampilan. (string, opsional)
method: Metode yang akan dieksekusi (string, wajib)
name: Nama tampilan; diperlukan saat membuat tampilan. (string, opsional)
owner: Pemilik proyek (login pengguna atau organisasi). Nama tidak peka huruf besar/kecil. (string, wajib)
owner_type: Jenis pemilik (pengguna atau org). Diperlukan untuk metode 'create_project'. Jika tidak diberikan untuk metode lain, akan terdeteksi secara otomatis. (string, opsional)
project_number: Nomor proyek. Diperlukan untuk semua metode kecuali 'create_project'. (angka, opsional)
pull_request_number: Nomor pull request (gunakan ketika item_type adalah 'pull_request' untuk metode 'add_project_item'). Berikan issue_number atau pull_request_number. (angka, opsional)
start_date: Tanggal mulai dalam format YYYY-MM-DD. Digunakan untuk metode 'create_project_status_update' dan 'create_iteration_field'. (string, opsional)
status: Status proyek. Digunakan untuk metode 'create_project_status_update'. (string, opsional)
target_date: Tanggal target pembaruan status dalam format YYYY-MM-DD. Digunakan untuk metode 'create_project_status_update'. (string, opsional)
title: Judul proyek. Diperlukan untuk metode 'create_project'. (string, opsional)
updated_field: Bidang/nilai yang akan diterapkan, menggunakan {"id": 123, "value": ...} atau {"name": "Status", "value": ...}; null menghapus bidang. Diperlukan untuk 'update_project_item' dan 'update_project_items', di mana satu bidang/nilai tingkat atas berlaku untuk setiap item dalam batch. Untuk bidang SINGLE_SELECT 'update_project_item', bentuk nama menerima nama opsi; bentuk ID mengharapkan ID opsi. (object, opsional)
view_id: ID node tampilan proyek untuk pembaruan atau penghapusan; harus dimiliki oleh pemilik/nomor_proyek. (string, opsional)
visible_field_names: Nama bidang proyek terurut untuk ditampilkan saat membuat atau mengganti saat pembaruan; hilangkan saat pembaruan untuk mempertahankan, atau berikan [] untuk mengatur ulang. Saling eksklusif dengan visible_fields. Roadmap hanya menerima []. (string[], opsional)
visible_fields: ID basis data bidang proyek terurut untuk ditampilkan saat membuat atau mengganti saat pembaruan; hilangkan saat pembaruan untuk mempertahankan, atau berikan [] untuk mengatur ulang. Saling eksklusif dengan visible_field_names. Roadmap hanya menerima []. (string[], opsional)
Pull Requests
add_comment_to_pending_review - Tambahkan komentar tinjauan ke tinjauan pull request tertunda terbaru dari peminta
OAuth Challenge Scopes: repo
body: Teks komentar tinjauan (string, wajib)
line: Baris blob dalam diff pull request yang berlaku untuk komentar. Untuk komentar multi-baris, baris terakhir dari rentang (angka, opsional)
owner: Pemilik repositori (string, wajib)
path: Jalur relatif ke file yang memerlukan komentar (string, wajib)
pullNumber: Nomor pull request (angka, wajib)
repo: Nama repositori (string, wajib)
side: Sisi diff untuk berkomentar. LEFT menunjukkan keadaan sebelumnya, RIGHT menunjukkan keadaan baru (string, opsional)
startLine: Untuk komentar multi-baris, baris pertama dari rentang yang berlaku untuk komentar (angka, opsional)
startSide: Untuk komentar multi-baris, sisi awal diff yang berlaku untuk komentar. LEFT menunjukkan keadaan sebelumnya, RIGHT menunjukkan keadaan baru (string, opsional)
subjectType: Tingkat di mana komentar ditargetkan (string, wajib)
add_reply_to_pull_request_comment - Tambahkan balasan ke komentar pull request
commentId: ID numerik dari komentar tinjauan pull request untuk dibalas atau diberi reaksi. Gunakan nomor dari jangkar #discussion_r..., bukan ID node thread GraphQL (PRRT_...). (angka, wajib)
owner: Pemilik repositori (string, wajib)
pullNumber: Nomor pull request. Diperlukan ketika body diberikan. (angka, opsional)
reaction: Reaksi emoji untuk ditambahkan. Diperlukan kecuali body diberikan. (string, opsional)
repo: Nama repositori (string, wajib)
create_pull_request - Buka pull request baru
OAuth Challenge Scopes: repo
MCP App UI: ui://github-mcp-server/pr-write
base: Cabang untuk digabungkan (string, wajib)
body: Deskripsi PR (string, opsional)
draft: Buat sebagai PR draf (boolean, opsional)
head: Cabang yang berisi perubahan (string, wajib)
maintainer_can_modify: Izinkan edit oleh maintainer (boolean, opsional)
owner: Pemilik repositori (string, wajib)
repo: Nama repositori (string, wajib)
reviewers: Nama pengguna GitHub atau peninjau tim ORG/team-slug untuk meminta tinjauan (string[], opsional)
title: Judul PR (string, wajib)
list_pull_requests - Daftar pull request
OAuth Challenge Scopes: repo
base: Filter berdasarkan cabang dasar (string, opsional)
direction: Arah pengurutan (string, opsional)
fields: Subset bidang yang akan dikembalikan untuk setiap pull request. Jika dihilangkan, semua bidang dikembalikan. Gunakan ini untuk mengurangi ukuran respons ketika Anda hanya memerlukan bidang tertentu; menghilangkan 'body' khususnya menghapus data per-hasil terbesar. (string[], opsional)
head: Filter berdasarkan pengguna/org head dan cabang (string, opsional)
owner: Pemilik repositori (string, wajib)
page: Nomor halaman untuk pagination (min 1) (angka, opsional)
perPage: Hasil per halaman untuk pagination (min 1, maks 100) (angka, opsional)
repo: Nama repositori (string, wajib)
sort: Urutkan berdasarkan (string, opsional)
state: Filter berdasarkan status (string, opsional)
merge_pull_request - Gabungkan pull request
OAuth Challenge Scopes: repo
commit_message: Detail tambahan untuk commit penggabungan (string, opsional)
commit_title: Judul untuk commit penggabungan (string, opsional)
expectedHeadSha: SHA yang diharapkan dari ref HEAD pull request (string, opsional)
merge_method: Metode penggabungan (string, opsional)
owner: Pemilik repositori (string, wajib)
pullNumber: Nomor pull request (angka, wajib)
repo: Nama repositori (string, wajib)
pull_request_read - Mendapatkan detail untuk satu pull request
OAuth Challenge Scopes: repo
after: Kursor untuk paginasi, hanya digunakan oleh metode get_review_comments. Berikan endCursor dari PageInfo halaman sebelumnya untuk mengambil halaman berikutnya. (string, opsional)
method: Tindakan untuk menentukan data pull request apa yang perlu diambil dari GitHub.
Opsi yang tersedia:
get - Mendapatkan detail pull request tertentu.
get_diff - Mendapatkan diff dari pull request.
get_status - Mendapatkan status commit gabungan dari head commit dalam pull request.
get_files - Mendapatkan daftar file yang diubah dalam pull request. Gunakan dengan parameter paginasi untuk mengontrol jumlah hasil yang dikembalikan.
get_commits - Mendapatkan daftar commit pada pull request. Gunakan dengan parameter paginasi untuk mengontrol jumlah hasil yang dikembalikan.
get_review_comments - Mendapatkan thread review pada pull request. Setiap thread berisi komentar review yang dikelompokkan secara logis pada lokasi kode yang sama selama review pull request. Mengembalikan metadata thread dan komentar dengan koordinat rentang baris saat ini dan asli yang dapat bernilai null (line, start_line, original_line, original_start_line). Koordinat saat ini dihilangkan saat tidak tersedia, seperti untuk komentar yang sudah usang. Gunakan paginasi berbasis kursor (perPage, after) untuk mengontrol hasil.
get_reviews - Mendapatkan review pada pull request. Saat diminta komentar review, gunakan metode get_review_comments. Gunakan dengan parameter paginasi untuk mengontrol jumlah hasil yang dikembalikan.
get_comments - Mendapatkan komentar pada pull request. Gunakan ini jika pengguna tidak secara spesifik menginginkan komentar review. Gunakan dengan parameter paginasi untuk mengontrol jumlah hasil yang dikembalikan.
get_check_runs - Mendapatkan check runs untuk head commit dari pull request. Check runs adalah pekerjaan dan pemeriksaan CI/CD individual yang berjalan pada PR.
(string, wajib)
owner: Pemilik repositori (string, wajib)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
pullNumber: Nomor pull request (number, wajib)
repo: Nama repositori (string, wajib)
pull_request_review_write - Operasi tulis (buat, kirim, hapus) pada review pull request
OAuth Challenge Scopes: repo
body: Teks komentar review (string, opsional)
commitID: SHA dari commit yang akan direview (string, opsional)
event: Tindakan review yang akan dilakukan. (string, opsional)
method: Operasi tulis yang akan dilakukan pada review pull request. (string, wajib)
owner: Pemilik repositori (string, wajib)
pullNumber: Nomor pull request (number, wajib)
repo: Nama repositori (string, wajib)
threadId: ID node dari thread review (misalnya, PRRT_kwDOxxx). Diperlukan untuk metode resolve_thread dan unresolve_thread. Dapatkan ID thread dari pull_request_read dengan metode get_review_comments. (string, opsional)
search_pull_requests - Mencari pull request
OAuth Challenge Scopes: repo
fields: Subset bidang yang akan dikembalikan untuk setiap hasil pull request. Jika dihilangkan, semua bidang dikembalikan. Gunakan ini untuk mengurangi ukuran respons saat Anda hanya membutuhkan bidang tertentu; menghilangkan 'body', 'reactions', dan 'labels' secara khusus menghapus data per-hasil terbesar. (string[], opsional)
order: Urutan pengurutan (string, opsional)
owner: Pemilik repositori opsional. Jika diberikan dengan repo, hanya pull request untuk repositori ini yang dicantumkan. (string, opsional)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
expectedHeadSha: SHA yang diharapkan dari ref HEAD pull request (string, opsional)
owner: Pemilik repositori (string, wajib)
pullNumber: Nomor pull request (number, wajib)
repo: Nama repositori (string, wajib)
Repositori
create_branch - Membuat cabang
OAuth Challenge Scopes: repo
branch: Nama untuk cabang baru (string, wajib)
from_branch: Cabang sumber (default ke default repo) (string, opsional)
owner: Pemilik repositori (string, wajib)
repo: Nama repositori (string, wajib)
create_or_update_file - Membuat atau memperbarui file
OAuth Challenge Scopes: repo, workflow
allow_symlink_write: Setel true untuk memperbarui tautan simbolik itu sendiri; konten harus berupa jalur target barunya. (boolean, opsional)
branch: Cabang untuk membuat/memperbarui file (string, wajib)
content: Konten file, persis seperti yang seharusnya muncul setelah ditulis. Jangan encode base64; server ini melakukannya sebelum memanggil REST API. (string, wajib)
message: Pesan commit (string, wajib)
owner: Pemilik repositori (nama pengguna atau organisasi) (string, wajib)
path: Jalur untuk membuat/memperbarui file (string, wajib)
repo: Nama repositori (string, wajib)
sha: SHA blob dari file yang diganti. Diperlukan jika file sudah ada. Ambil dengan get_file_contents menggunakan owner, repo, dan path yang sama, dengan ref diatur ke nilai cabang alat ini. (string, opsional)
create_repository - Membuat repositori
OAuth Challenge Scopes: repo
autoInit: Inisialisasi dengan README (boolean, opsional)
organization: Organisasi untuk membuat repositori (hilangkan untuk membuat di akun pribadi Anda) (string, opsional)
private: Apakah repositori harus privat. Default ke true (privat) saat dihilangkan. (boolean, opsional)
delete_file - Menghapus file
OAuth Challenge Scopes: repo, workflow
branch: Cabang untuk menghapus file (string, wajib)
message: Pesan commit (string, wajib)
owner: Pemilik repositori (nama pengguna atau organisasi) (string, wajib)
path: Jalur ke file yang akan dihapus (string, wajib)
repo: Nama repositori (string, wajib)
delete_repository - Menghapus repositori
OAuth Challenge Scopes: delete_repo, repo
owner: Pemilik repositori (nama pengguna atau organisasi) (string, wajib)
repo: Nama repositori (string, wajib)
fork_repository - Fork repositori
OAuth Challenge Scopes: repo
organization: Organisasi untuk fork (string, opsional)
owner: Pemilik repositori (string, wajib)
repo: Nama repositori (string, wajib)
get_commit - Mendapatkan detail commit
OAuth Challenge Scopes: repo
detail: Tingkat detail yang disertakan untuk file yang diubah. "none" menghilangkan stats dan files sepenuhnya. "stats" (default) menyertakan metadata per file: nama file, status, dan jumlah baris kode (additions, deletions, changes), tanpa konten patch. "full_patch" juga menyertakan konten diff gabungan untuk setiap file dan bisa sangat besar. (string, opsional)
owner: Pemilik repositori (string, wajib)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
repo: Nama repositori (string, wajib)
sha: SHA commit, nama cabang, atau nama tag (string, wajib)
get_file_contents - Mendapatkan konten file atau direktori
OAuth Challenge Scopes: repo
fields: Subset bidang yang akan dikembalikan untuk setiap entri saat path adalah direktori. Jika dihilangkan, semua bidang dikembalikan. Diabaikan saat path adalah file tunggal. Gunakan ini untuk mengurangi ukuran respons saat mencantumkan direktori dan Anda hanya membutuhkan bidang tertentu, misalnya hanya 'name' dan 'type'. (string[], opsional)
owner: Pemilik repositori (nama pengguna atau organisasi) (string, wajib)
path: Jalur ke file/direktori (string, opsional)
ref: Menerima git ref opsional seperti refs/tags/{tag}, refs/heads/{branch} atau refs/pull/{pr_number}/head (string, opsional)
repo: Nama repositori (string, wajib)
sha: Menerima SHA commit opsional. Jika ditentukan, akan digunakan sebagai pengganti ref (string, opsional)
get_latest_release - Mendapatkan rilis terbaru
OAuth Challenge Scopes: repo
owner: Pemilik repositori (string, wajib)
repo: Nama repositori (string, wajib)
get_release_by_tag - Mendapatkan rilis berdasarkan nama tag
OAuth Challenge Scopes: repo
owner: Pemilik repositori (string, wajib)
repo: Nama repositori (string, wajib)
tag: Nama tag (misalnya, 'v1.0.0') (string, wajib)
get_tag - Mendapatkan detail tag
OAuth Challenge Scopes: repo
owner: Pemilik repositori (string, wajib)
repo: Nama repositori (string, wajib)
tag: Nama tag (string, wajib)
list_branches - Mencantumkan cabang
OAuth Challenge Scopes: repo
owner: Pemilik repositori (string, wajib)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
repo: Nama repositori (string, wajib)
list_commits - Mencantumkan commit
OAuth Challenge Scopes: repo
author: Nama pengguna penulis atau alamat email untuk memfilter commit (string, opsional)
fields: Subset bidang yang akan dikembalikan untuk setiap commit. Jika dihilangkan, semua bidang akan dikembalikan. Gunakan ini untuk mengurangi ukuran respons ketika Anda hanya memerlukan bidang tertentu, misalnya hanya 'sha' dan 'html_url'. (string[], opsional)
owner: Pemilik repositori (string, wajib)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
path: Hanya commit yang berisi jalur file ini yang akan dikembalikan (string, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
repo: Nama repositori (string, wajib)
sha: SHA commit, nama cabang, atau tag untuk mencantumkan commit. Jika tidak disediakan, menggunakan cabang default repositori. Jika SHA commit disediakan, akan mencantumkan commit hingga SHA tersebut. (string, opsional)
since: Hanya commit setelah tanggal ini yang akan dikembalikan (format ISO 8601: YYYY-MM-DDTHH:MM:SSZ atau YYYY-MM-DD) (string, opsional)
until: Hanya commit sebelum tanggal ini yang akan dikembalikan (format ISO 8601: YYYY-MM-DDTHH:MM:SSZ atau YYYY-MM-DD) (string, opsional)
list_releases - Mencantumkan rilis
OAuth Challenge Scopes: repo
fields: Subset bidang yang akan dikembalikan untuk setiap rilis. Jika dihilangkan, semua bidang akan dikembalikan. Gunakan ini untuk mengurangi ukuran respons ketika Anda hanya memerlukan bidang tertentu; menghilangkan 'body' khususnya mengurangi data per-rilis terbesar. (string[], opsional)
owner: Pemilik repositori (string, wajib)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
affiliation: Filter berdasarkan afiliasi. Dapat berupa salah satu dari: 'outside' (kolaborator luar), 'direct' (semua dengan izin terlepas dari keanggotaan organisasi), 'all' (semua kolaborator). Default: 'all' (string, opsional)
owner: Pemilik repositori (string, wajib)
page: Nomor halaman untuk paginasi (default 1, min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (default 30, min 1, maks 100) (number, opsional)
repo: Nama repositori (string, wajib)
list_tags - Mencantumkan tag
OAuth Challenge Scopes: repo
owner: Pemilik repositori (string, wajib)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
repo: Nama repositori (string, wajib)
push_files - Mendorong file ke repositori
OAuth Challenge Scopes: repo, workflow
branch: Cabang untuk mendorong (string, wajib)
files: Array objek file yang akan didorong, setiap objek dengan path (string) dan content (string) (object[], wajib)
message: Pesan commit (string, wajib)
owner: Pemilik repositori (string, wajib)
repo: Nama repositori (string, wajib)
search_code - Mencari kode
OAuth Challenge Scopes: repo
fields: Subset bidang yang akan dikembalikan untuk setiap hasil pencarian kode. Jika dihilangkan, semua bidang akan dikembalikan. Gunakan ini untuk mengurangi ukuran respons ketika Anda hanya memerlukan bidang tertentu; menghilangkan 'repository' dan 'text_matches' khususnya mengurangi data per-hasil terbesar. (string[], opsional)
order: Urutan pengurutan untuk hasil (string, opsional)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
query: Kueri pencarian (GitHub code search REST). AND implisit antar istilah; mendukung OR, NOT, dan "quoted phrase" untuk pencocokan tepat. Kualifikasi: repo:owner/repo, org:, user:, language:, path:dir (pencocokan awalan), filename:exact.ext, extension:, in:file, in:path, size:, is:archived, is:fork. Maks 256 karakter. Contoh: WithContext language:go org:github; "package main" repo:o/r; func extension:go path:cmd repo:o/r; NOT TODO language:go repo:o/r. (string, wajib)
sort: Bidang pengurutan ('indexed' saja) (string, opsional)
search_commits - Mencari commit
OAuth Challenge Scopes: repo
order: Urutan pengurutan (string, opsional)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
query: Kueri pencarian commit (GitHub commit search REST). Mencari pesan commit hanya pada cabang default. Batasi pencarian dengan repo:owner/repo, org:, atau user: (kueri tanpa kualifikasi lingkup mencocokkan seluruh GitHub dan biasanya bukan yang Anda inginkan). Kualifikasi lainnya: author:, committer:, author-name:, committer-name:, author-email:, committer-email:, author-date:, committer-date: (mendukung rentang >, <, >=, <=, dan YYYY-MM-DD..YYYY-MM-DD), merge:true|false, hash:, tree:, parent:, is:public. Contoh: repo:owner/repo fix panic; org:github author:defunkt committer-date:>=2024-01-01; "refactor cache" repo:o/r; hash:abc1234 repo:o/r. (string, wajib)
sort: Urutkan berdasarkan tanggal penulis atau committer (default ke pencocokan terbaik) (string, opsional)
search_repositories - Mencari repositori
OAuth Challenge Scopes: repo
minimal_output: Mengembalikan informasi repositori minimal (default: true). Ketika false, klien modern menerima detail repositori kurasi tambahan, bukan objek GitHub API lengkap. Klien lama mempertahankan objek repositori GitHub API lengkap. (boolean, opsional)
order: Urutan pengurutan (string, opsional)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
repo: Nama repositori. (string, wajib)
resolution: Filter berdasarkan resolusi (string, opsional)
secret_type: Daftar jenis rahasia yang dipisahkan koma untuk dikembalikan. Semua pola rahasia default dikembalikan. Untuk mengembalikan pola generik, berikan nama token dalam parameter. (string, opsional)
state: Filter berdasarkan status (string, opsional)
Advisory Keamanan
get_global_security_advisory - Mendapatkan advisory keamanan global
OAuth Challenge Scopes: security_events
ghsaId: ID Advisory Keamanan GitHub (format: GHSA-xxxx-xxxx-xxxx). (string, wajib)
list_global_security_advisories - Mencantumkan advisory keamanan global
OAuth Challenge Scopes: security_events
affects: Filter advisory berdasarkan paket atau versi yang terpengaruh (misalnya "package1,package2@1.0.0"). (string, opsional)
cveId: Filter berdasarkan ID CVE. (string, opsional)
cwes: Filter berdasarkan ID Common Weakness Enumeration (misalnya ["79", "284", "22"]). (string[], opsional)
ecosystem: Filter berdasarkan ekosistem paket. (string, opsional)
ghsaId: Filter berdasarkan ID Advisory Keamanan GitHub (format: GHSA-xxxx-xxxx-xxxx). (string, opsional)
isWithdrawn: Apakah hanya mengembalikan advisory yang ditarik. (boolean, opsional)
modified: Filter berdasarkan tanggal publikasi atau pembaruan atau rentang tanggal (tanggal ISO 8601 atau rentang). (string, opsional)
published: Filter berdasarkan tanggal publikasi atau rentang tanggal (tanggal ISO 8601 atau rentang). (string, opsional)
severity: Filter berdasarkan tingkat keparahan. (string, opsional)
type: Jenis advisory. (string, opsional)
updated: Filter berdasarkan tanggal pembaruan atau rentang tanggal (tanggal ISO 8601 atau rentang). (string, opsional)
list_org_repository_security_advisories - Mencantumkan advisory keamanan repositori organisasi
OAuth Challenge Scopes: security_events
direction: Arah pengurutan. (string, opsional)
org: Login organisasi. (string, wajib)
sort: Bidang pengurutan. (string, opsional)
state: Filter berdasarkan status advisory. (string, opsional)
state: Filter berdasarkan status advisory. (string, opsional)
Stargazers
list_starred_repositories - Mencantumkan repositori yang dibintangi
OAuth Challenge Scopes: repo
direction: Arah untuk mengurutkan hasil. (string, opsional)
page: Nomor halaman untuk paginasi (min 1) (number, opsional)
perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
sort: Cara mengurutkan hasil. Dapat berupa 'created' (ketika repositori dibintangi) atau 'updated' (ketika repositori terakhir didorong). (string, opsional)
username: Nama pengguna untuk mencantumkan repositori yang dibintangi. Default ke pengguna yang terautentikasi. (string, opsional)
star_repository - Membintangi repositori
OAuth Challenge Scopes: repo
owner: Pemilik repositori (string, wajib)
repo: Nama repositori (string, wajib)
unstar_repository - Membatalkan bintang repositori
OAuth Challenge Scopes: repo
owner: Pemilik repositori (string, wajib)
repo: Nama repositori (string, wajib)
Pengguna
- **search_users** - Mencari pengguna
- **OAuth Challenge Scopes**: `repo`
- `order`: Urutan pengurutan (string, opsional)
- `page`: Nomor halaman untuk paginasi (min 1) (number, opsional)
- `perPage`: Hasil per halaman untuk paginasi (min 1, maks 100) (number, opsional)
- `query`: Kueri pencarian pengguna. Contoh: 'john smith', 'location:seattle', 'followers:>100'. Pencarian secara otomatis dibatasi pada type:user. (string, wajib)
- `sort`: Urutkan pengguna berdasarkan jumlah pengikut atau repositori, atau saat orang tersebut bergabung dengan GitHub. (string, opsional)
Alat Tambahan di Server MCP GitHub Jarak Jauh
Copilot
create_pull_request_with_copilot - Melakukan tugas dengan agen pengkodean GitHub Copilot
owner: Pemilik repositori. Anda dapat menebak pemiliknya, tetapi konfirmasikan dengan pengguna sebelum melanjutkan. (string, wajib)
repo: Nama repositori. Anda dapat menebak nama repositori, tetapi konfirmasikan dengan pengguna sebelum melanjutkan. (string, wajib)
problem_statement: Deskripsi terperinci tentang tugas yang akan dilakukan (misalnya, 'Implementasikan fitur yang melakukan X', 'Perbaiki bug Y', dll.) (string, wajib)
title: Judul untuk pull request yang akan dibuat (string, wajib)
base_ref: Referensi Git (misalnya, cabang) tempat agen akan memulai pekerjaannya. Jika tidak ditentukan, defaultnya adalah cabang default repositori (string, opsional)
Copilot Spaces
Catatan autentikasi
PAT berbutir halus tidak disembunyikan oleh pemfilteran lingkup PAT klasik, sehingga alat-alat ini mungkin tetap muncul bahkan ketika token tidak dapat menggunakannya.
Untuk ruang milik organisasi, PAT berbutir halus harus diinstal pada organisasi pemilik dan menyertakan organization_copilot_spaces: read.
Jika ruang milik organisasi berisi sumber daya yang didukung repositori, token juga harus memiliki akses ke setiap repositori yang dirujuk atau ruang tersebut dapat diperlakukan sebagai tidak ditemukan.
get_copilot_space - Mendapatkan Copilot Space
owner: Pemilik ruang. (string, wajib)
name: Nama ruang. (string, wajib)
list_copilot_spaces - Mendaftar Copilot Spaces
Pencarian Dokumen Dukungan GitHub
github_support_docs_search - Mengambil dokumentasi yang relevan untuk menjawab pertanyaan produk dan dukungan GitHub. Topik dukungan meliputi: GitHub Actions Workflows, Autentikasi, Pertanyaan Dukungan GitHub, Praktik Pull Request, Pemeliharaan Repositori, GitHub Pages, GitHub Packages, GitHub Discussions, Copilot Spaces
query: Masukan dari pengguna tentang pertanyaan yang perlu dijawab. Ini adalah pesan pengguna mentah terbaru yang belum diedit. Anda HARUS SELALU membiarkan pesan pengguna apa adanya, Anda tidak boleh memodifikasinya. (string, wajib)
Mode Hanya-Baca
Untuk menjalankan server dalam mode hanya-baca, Anda dapat menggunakan flag --read-only. Ini hanya akan menawarkan alat hanya-baca, mencegah modifikasi apa pun pada repositori, masalah, pull request, dll.
./github-mcp-server --read-only
Saat menggunakan Docker, Anda dapat meneruskan mode hanya-baca sebagai variabel lingkungan:
Mode lockdown membatasi konten yang akan ditampilkan server dari repositori publik. Saat diaktifkan, server memeriksa apakah penulis setiap item memiliki akses push ke repositori. Repositori pribadi tidak terpengaruh, dan kolaborator tetap memiliki akses penuh ke konten mereka sendiri.
Mode lockdown adalah filter konten upaya terbaik yang dimaksudkan untuk mengurangi risiko injeksi prompt dari konten repositori yang tidak tepercaya (masalah, pull request, komentar, commit, dll.). Ini bukan batas otorisasi: ini tidak mengubah apa yang dapat dibaca atau ditulis oleh kredensial GitHub yang mendasarinya, dan konten yang ditahan dari respons alat yang difilter mungkin masih dapat diakses melalui alat lain atau akses API GitHub langsung dengan kredensial yang sama.
Sebagai pengecualian yang disengaja, konten yang dibuat oleh sekumpulan kecil akun bot tepercaya (saat ini github-actions[bot] dan copilot) selalu diperlakukan sebagai aman, terlepas dari akses push. Ini menghindari pemfilteran output otomasi rutin (misalnya, commit atau komentar yang dihasilkan CI) yang seharusnya ditahan dalam mode lockdown.
./github-mcp-server --lockdown-mode
Saat menjalankan dengan Docker, atur variabel lingkungan yang sesuai:
Dalam mode HTTP, flag ini (atau GITHUB_LOCKDOWN_MODE) adalah batas atas: header permintaan X-MCP-Lockdown dapat mengaktifkan mode lockdown ketika operator belum mengaktifkannya, tetapi tidak dapat menonaktifkan mode lockdown yang sudah diaktifkan operator. Lihat Panduan Konfigurasi Server untuk detailnya.
Perilaku mode lockdown bergantung pada alat yang dipanggil.
Alat-alat berikut akan mengembalikan kesalahan ketika penulis tidak memiliki akses push:
issue_read:get
pull_request_read:get
pull_request_read:get_diff
pull_request_read:get_files
pull_request_read:get_commits
Alat-alat berikut akan memfilter konten dari pengguna yang tidak memiliki akses push:
issue_read:get_comments
issue_read:get_sub_issues
pull_request_read:get_comments
pull_request_read:get_review_comments
pull_request_read:get_reviews
i18n / Menimpa Deskripsi
Deskripsi alat dapat ditimpa dengan membuat file
github-mcp-server-config.json di direktori yang sama dengan biner.
File tersebut harus berisi objek JSON dengan nama alat sebagai kunci dan deskripsi
baru sebagai nilai. Contohnya:
{
"TOOL_ADD_ISSUE_COMMENT_DESCRIPTION": "an alternative description",
"TOOL_CREATE_BRANCH_DESCRIPTION": "Create a new branch in a GitHub repository"
}
Anda dapat membuat ekspor terjemahan saat ini dengan menjalankan biner dengan
flag --export-translations.
Flag ini akan mempertahankan terjemahan/penimpaan yang telah Anda buat, sambil menambahkan
terjemahan baru apa pun yang telah ditambahkan ke biner sejak terakhir kali Anda
mengekspor.
Anda juga dapat menggunakan variabel ENV untuk menimpa deskripsi. Nama variabel
lingkungan sama dengan kunci dalam file JSON, dengan awalan
GITHUB_MCP_ dan semua huruf kapital.
Misalnya, untuk menimpa alat TOOL_ADD_ISSUE_COMMENT_DESCRIPTION, Anda dapat
mengatur variabel lingkungan berikut:
export GITHUB_MCP_TOOL_ADD_ISSUE_COMMENT_DESCRIPTION="an alternative description"
Menimpa Nama Server dan Judul
Mekanisme penimpaan yang sama dapat digunakan untuk menyesuaikan bidang name dan
title server MCP dalam respons inisialisasi. Ini berguna saat menjalankan
beberapa instance Server MCP GitHub (misalnya, satu untuk github.com dan satu untuk
GitHub Enterprise Server) sehingga agen dapat membedakannya.
Kunci
Variabel Lingkungan
Default
SERVER_NAME
GITHUB_MCP_SERVER_NAME
github-mcp-server
SERVER_TITLE
GITHUB_MCP_SERVER_TITLE
GitHub MCP Server
Misalnya, untuk mengonfigurasi instance server untuk GitHub Enterprise Server:
API Go yang diekspor dari modul ini saat ini harus dianggap tidak stabil, dan dapat mengalami perubahan yang merusak. Di masa depan, kami mungkin menawarkan stabilitas; silakan ajukan masalah jika ada kasus penggunaan yang memerlukan ini.
Berkontribusi
Kontribusi diterima. Sebelum membuka pull request, silakan baca panduan kontribusi untuk instruksi pengaturan, pengujian, linting, dan pembuatan dokumentasi.
Dukungan
Untuk bantuan menggunakan Server MCP GitHub, lihat panduan dukungan. Jika Anda menemukan bug atau ingin meminta fitur, silakan cari masalah yang ada sebelum membuka yang baru.
Keamanan
Jangan laporkan kerentanan keamanan melalui masalah publik. Ikuti instruksi dalam kebijakan keamanan untuk melaporkan kerentanan secara bertanggung jawab.
Lisensi
Proyek ini dilisensikan di bawah ketentuan lisensi open source MIT. Silakan merujuk ke MIT untuk ketentuan lengkap.