GitHub MCP

resmi

Server MCP resmi GitHub untuk pencarian repositori, isu, permintaan tarik, konteks kode, dan alur kerja GitHub di klien AI yang kompatibel dengan MCP.

Apa yang bisa Anda lakukan dengan GitHub MCP?

  • 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

Go Report Card

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

Install in VS Code Install in VS Code Insiders Install in Visual Studio

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

  1. Host MCP yang kompatibel dengan dukungan server jarak jauh (VS Code 1.101+, Claude Desktop, Cursor, Windsurf, dll.)
  2. Kebijakan yang berlaku telah diaktifkan

Instal di VS Code

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:

Menggunakan OAuthMenggunakan PAT GitHub
VS Code (versi 1.101 atau lebih baru)
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    }
  }
}
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${input:github_mcp_pat}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "github_mcp_pat",
      "description": "GitHub Personal Access Token",
      "password": true
    }
  ]
}

Instal di host MCP lainnya

  • Copilot CLI - Panduan instalasi untuk GitHub Copilot CLI
  • GitHub Copilot di IDE lainnya - Instalasi untuk JetBrains, Visual Studio, Eclipse, dan Xcode dengan GitHub Copilot
  • Aplikasi Claude - Panduan instalasi untuk Claude Desktop dan Claude Code CLI
  • Codex - Panduan instalasi untuk OpenAI Codex
  • Cursor - Panduan instalasi untuk IDE Cursor
  • OpenCode - Panduan instalasi untuk agen terminal OpenCode
  • Windsurf - Panduan instalasi untuk IDE Windsurf
  • Zed - Panduan instalasi untuk editor Zed
  • 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.

Menggunakan Jalur URLMenggunakan Header
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/insiders"
    }
  }
}
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "X-MCP-Insiders": "true"
      }
    }
  }
}

Lihat Dokumentasi Server Jarak Jauh untuk detail dan contoh lebih lanjut, dan Fitur Insiders untuk daftar lengkap yang tersedia.

GitHub Enterprise

GitHub Enterprise Cloud dengan residensi data (ghe.com)

GitHub Enterprise Cloud juga dapat memanfaatkan server jarak jauh.

Contoh untuk https://octocorp.ghe.com dengan token PAT GitHub:

{
    ...
    "github-octocorp": {
      "type": "http",
      "url": "https://copilot-api.octocorp.ghe.com/mcp",
      "headers": {
        "Authorization": "Bearer ${input:github_mcp_pat}"
      }
    },
    ...
}

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

GitHub Enterprise Server

GitHub Enterprise Server tidak mendukung hosting server jarak jauh. Silakan merujuk ke GitHub Enterprise Server dan Enterprise Cloud dengan residensi data (ghe.com) dari konfigurasi server lokal.


Server GitHub MCP Lokal

Install with Docker in VS Code Install with Docker in VS Code Insiders Install with Docker in Visual Studio

Prasyarat

  1. Untuk menjalankan server dalam kontainer, Anda perlu menginstal Docker.

  2. 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.

  3. 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:

  1. Simpan PAT Anda di variabel lingkungan

    export GITHUB_PAT=your_token_here
    

    Atau buat file .env:

    GITHUB_PAT=your_token_here
    
  2. Lindungi file .env Anda

    # Add to .gitignore to prevent accidental commits
    echo ".env" >> .gitignore
    
  3. 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.
"github": {
    "command": "docker",
    "args": [
    "run",
    "-i",
    "--rm",
    "-e",
    "GITHUB_PERSONAL_ACCESS_TOKEN",
    "-e",
    "GITHUB_HOST",
    "ghcr.io/github/github-mcp-server"
    ],
    "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}",
        "GITHUB_HOST": "https://<your GHES or ghe.com domain name>"
    }
}

Instalasi

Instal di GitHub Copilot di VS Code

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:

{
  "mcp": {
    "servers": {
      "github": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-p",
          "127.0.0.1:8085:8085",
          "-e",
          "GITHUB_OAUTH_CALLBACK_PORT",
          "ghcr.io/github/github-mcp-server"
        ],
        "env": {
          "GITHUB_OAUTH_CALLBACK_PORT": "8085"
        }
      }
    }
  }
}

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.

Untuk deployment stdio non-interaktif, lihat Autentikasi GitHub App.

Atau autentikasi dengan Personal Access Token. Atur GITHUB_PERSONAL_ACCESS_TOKEN sebagai gantinya (ini lebih diutamakan daripada OAuth):

{
  "mcp": {
    "inputs": [
      {
        "type": "promptString",
        "id": "github_token",
        "description": "GitHub Personal Access Token",
        "password": true
      }
    ],
    "servers": {
      "github": {
        "command": "docker",
        "args": [
          "run",
          "-i",
          "--rm",
          "-e",
          "GITHUB_PERSONAL_ACCESS_TOKEN",
          "ghcr.io/github/github-mcp-server"
        ],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
        }
      }
    }
  }
}

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.

Contoh blok JSON tanpa kunci MCP
{
  "inputs": [
    {
      "type": "promptString",
      "id": "github_token",
      "description": "GitHub Personal Access Token",
      "password": true
    }
  ],
  "servers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "${input:github_token}"
      }
    }
  }
}

Instal di Host MCP Lainnya

Untuk aplikasi host MCP lainnya, silakan merujuk ke panduan instalasi kami:

Untuk gambaran lengkap semua opsi instalasi, lihat Indeks Panduan Instalasi.

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.

Misalnya:

{
  "mcp": {
    "servers": {
      "github": {
        "command": "/path/to/github-mcp-server",
        "args": ["stdio"],
        "env": {
          "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
        }
      }
    }
  }
}

Konfigurasi Alat

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:

  1. Menggunakan Argumen Baris Perintah:

    github-mcp-server --toolsets repos,issues,pull_requests,actions,code_security
    
  2. Menggunakan Variabel Lingkungan:

    GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" ./github-mcp-server
    

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.

  1. Menggunakan Argumen Baris Perintah:

    github-mcp-server --tools get_file_contents,issue_read,create_pull_request
    
  2. Menggunakan Variabel Lingkungan:

    GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" ./github-mcp-server
    
  3. Menggabungkan dengan Toolset (aditif):

    github-mcp-server --toolsets repos,issues --tools get_gist
    

    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:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_TOOLSETS="repos,issues,pull_requests,actions,code_security" \
  ghcr.io/github/github-mcp-server

Menggunakan Alat dengan Docker

Saat menggunakan Docker, Anda dapat meneruskan alat tertentu sebagai variabel lingkungan. Anda juga dapat menggabungkan alat dengan toolset:

# Tools only
docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_TOOLS="get_file_contents,issue_read,create_pull_request" \
  ghcr.io/github/github-mcp-server

# Tools combined with toolsets (additive)
docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_TOOLSETS="repos,issues" \
  -e GITHUB_TOOLS="get_gist" \
  ghcr.io/github/github-mcp-server

Toolset Khusus

Toolset "all"

Toolset khusus all dapat diberikan untuk mengaktifkan semua toolset yang tersedia terlepas dari konfigurasi lainnya:

./github-mcp-server --toolsets all

Atau menggunakan variabel lingkungan:

GITHUB_TOOLSETS="all" ./github-mcp-server

Toolset "default"

Toolset default default adalah konfigurasi yang diteruskan ke server jika tidak ada toolset yang ditentukan.

Konfigurasi default adalah:

  • context
  • repos
  • issues
  • pull_requests
  • users

Untuk mempertahankan konfigurasi default dan menambahkan toolset tambahan:

GITHUB_TOOLSETS="default,stargazers" ./github-mcp-server

Mode Insiders

Server GitHub MCP lokal menawarkan versi insiders dengan akses awal ke fitur baru dan alat eksperimental.

  1. Menggunakan Argumen Baris Perintah:

    ./github-mcp-server --insiders
    
  2. Menggunakan Variabel Lingkungan:

    GITHUB_INSIDERS=true ./github-mcp-server
    

Saat menggunakan Docker:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_INSIDERS=true \
  ghcr.io/github/github-mcp-server

Toolset yang Tersedia

Kumpulan alat berikut tersedia:

ToolsetDeskripsi
personcontextSangat disarankan: Alat yang menyediakan konteks tentang pengguna saat ini dan konteks GitHub tempat Anda beroperasi
workflowactionsAlur kerja GitHub Actions dan operasi CI/CD
code-squarecode_qualityAlat terkait Kualitas Kode GitHub
codescancode_securityAlat terkait keamanan kode, seperti GitHub Code Scanning
copilotcopilotAlat terkait Copilot
copilotcopilot_issue_intentsAlat penugasan masalah Copilot opt-in yang membawa metadata niat (alasan, keyakinan, saran)
dependabotdependabotAlat Dependabot
comment-discussiondiscussionsAlat terkait GitHub Discussions
logo-gistgistsAlat terkait GitHub Gist
git-branchgitAlat terkait GitHub Git API untuk operasi Git tingkat rendah
lawgovernanceAlat tata kelola repositori untuk mengelola ruleset dan properti kustom di tingkat repositori, organisasi, dan perusahaan
issue-openedissuesAlat terkait GitHub Issues
taglabelsAlat terkait GitHub Labels
bellnotificationsAlat terkait GitHub Notifications
organizationorgsAlat terkait GitHub Organization
projectprojectsAlat terkait GitHub Projects
git-pull-requestpull_requestsAlat terkait GitHub Pull Request
reporeposAlat terkait GitHub Repository
shield-locksecret_protectionAlat terkait perlindungan rahasia, seperti GitHub Secret Scanning
shieldsecurity_advisoriesAlat terkait security advisories
starstargazersAlat terkait GitHub Stargazers
peopleusersAlat terkait GitHub User

Toolset Tambahan di Server GitHub MCP Jarak Jauh

ToolsetDeskripsi
copilotAlat terkait Copilot (misalnya Copilot Coding Agent)
copilot_spacesAlat terkait Copilot Spaces
github_support_docs_searchCari 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.

workflow 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)
    • owner: Pemilik repositori (string, wajib)
    • repo: Nama repositori (string, wajib)
    • return_content: Mengembalikan konten log aktual alih-alih URL (boolean, 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)
code-square 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)
codescan 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)
person 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 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)
copilot 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 Dependabot
  • get_dependabot_alert - Mendapatkan peringatan dependabot

    • Cakupan Tantangan OAuth: security_events
    • alertNumber: Nomor peringatan. (angka, wajib)
    • owner: Pemilik repositori. (string, wajib)
    • repo: Nama repositori. (string, wajib)
  • list_dependabot_alerts - Mendaftar peringatan dependabot

    • Cakupan Tantangan OAuth: security_events
    • after: Kursor untuk paginasi. Gunakan kursor dari respons sebelumnya. (string, opsional)
    • owner: Pemilik repositori. (string, wajib)
    • perPage: Hasil per halaman untuk paginasi (min 1, maks 100) (angka, opsional)
    • repo: Nama repositori. (string, wajib)
    • severity: Filter peringatan dependabot berdasarkan tingkat keparahan (string, opsional)
    • state: Filter peringatan dependabot berdasarkan status. Defaultnya adalah open (string, opsional)
comment-discussion Discussions
  • discussion_comment_write - Mengelola komentar diskusi

    • Cakupan Tantangan OAuth: repo
    • 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).
      • 'unmark_answer' - menghapus penandaan komentar diskusi sebagai jawaban (khusus Q&A). (string, wajib)
    • 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 (string, wajib)
  • list_discussion_categories - Mendaftar kategori diskusi

    • Cakupan Tantangan OAuth: repo
    • owner: Pemilik repositori (string, wajib)
    • 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)
logo-gist 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-branch 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)
law Governance
  • create_repository_ruleset - Membuat aturan repositori

    • Cakupan Tantangan OAuth: repo, admin:org, admin:enterprise
    • 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)
  • custom_properties_read - Membaca properti kustom

    • Cakupan Tantangan OAuth: repo, read:org, read:enterprise
    • enterprise: Slug perusahaan. Wajib saat levelnya 'enterprise'. (string, opsional)
    • level: Tingkat di mana properti kustom dikelola:
      • 'repository': NILAI properti kustom yang ditetapkan ke repositori (memerlukan 'owner' dan 'repo').
      • 'organization': DEFINISI properti kustom (skema) untuk organisasi (memerlukan 'org').
      • 'enterprise': DEFINISI properti kustom (skema) untuk perusahaan (memerlukan 'enterprise'). (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)
  • custom_properties_write - Mengatur properti kustom

    • OAuth Challenge Scopes: repo, admin:org, admin:enterprise
    • enterprise: Slug enterprise. Diperlukan saat level adalah 'enterprise'. (string, opsional)
    • level: Level di mana properti kustom dikelola:
      • 'repository': NILAI properti kustom yang ditetapkan ke repositori (memerlukan 'owner' dan 'repo').
      • 'organization': DEFINISI properti kustom (skema) untuk organisasi (memerlukan 'org').
      • 'enterprise': DEFINISI properti kustom (skema) untuk enterprise (memerlukan 'enterprise'). (string, wajib)
    • 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)
  • repository_ruleset_read - Membaca ruleset repositori

    • OAuth Challenge Scopes: repo, read:org, read:enterprise
    • 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)
issue-opened Masalah
  • add_issue_comment - Menambahkan komentar ke masalah atau pull request

    • OAuth Challenge Scopes: repo
    • body: Konten komentar. Diperlukan kecuali reaksi diberikan. (string, opsional)
    • 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:
      1. 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.
      2. get_comments - Mendapatkan komentar masalah.
      3. get_sub_issues - Mendapatkan sub-masalah (anak) dari masalah.
      4. get_parent - Mendapatkan masalah induk, jika masalah ini adalah sub-masalah dari masalah lain.
      5. 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)
tag 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)
bell 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)
  • manage_notification_subscription - Mengelola langganan notifikasi

    • OAuth Challenge Scopes: notifications
    • action: Tindakan yang akan dilakukan: ignore, watch, atau delete langganan notifikasi. (string, wajib)
    • notificationID: ID dari utas notifikasi. (string, wajib)
  • manage_repository_notification_subscription - Mengelola langganan notifikasi repositori

    • OAuth Challenge Scopes: notifications
    • 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)
organization 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)
project 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)
git-pull-request 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

    • OAuth Challenge Scopes: repo
    • body: Teks balasan. Diperlukan kecuali reaksi diberikan. (string, opsional)
    • 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:
      1. get - Mendapatkan detail pull request tertentu.
      2. get_diff - Mendapatkan diff dari pull request.
      3. get_status - Mendapatkan status commit gabungan dari head commit dalam pull request.
      4. get_files - Mendapatkan daftar file yang diubah dalam pull request. Gunakan dengan parameter paginasi untuk mengontrol jumlah hasil yang dikembalikan.
      5. get_commits - Mendapatkan daftar commit pada pull request. Gunakan dengan parameter paginasi untuk mengontrol jumlah hasil yang dikembalikan.
      6. 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.
      7. 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.
      8. 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.
      9. 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)
    • query: Kueri pencarian menggunakan sintaks pencarian pull request GitHub (string, wajib)
    • repo: Nama repositori opsional. Jika diberikan dengan owner, hanya pull request untuk repositori ini yang dicantumkan. (string, opsional)
    • sort: Bidang pengurutan berdasarkan jumlah kecocokan kategori, default ke kecocokan terbaik (string, opsional)
  • update_pull_request - Mengedit pull request

    • OAuth Challenge Scopes: repo
    • MCP App UI: ui://github-mcp-server/pr-edit
    • base: Nama cabang dasar baru (string, opsional)
    • body: Deskripsi baru (string, opsional)
    • draft: Menandai pull request sebagai draf (true) atau siap untuk review (false) (boolean, opsional)
    • maintainer_can_modify: Mengizinkan edit oleh maintainer (boolean, opsional)
    • owner: Pemilik repositori (string, wajib)
    • pullNumber: Nomor pull request yang akan diperbarui (number, wajib)
    • repo: Nama repositori (string, wajib)
    • reviewers: Nama pengguna GitHub atau reviewer tim ORG/team-slug untuk meminta review (string[], opsional)
    • state: Status baru (string, opsional)
    • title: Judul baru (string, opsional)
  • update_pull_request_branch - Memperbarui cabang pull request

    • OAuth Challenge Scopes: repo
    • 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)
repo 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)
    • description: Deskripsi repositori (string, opsional)
    • name: Nama repositori (string, wajib)
    • 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)
    • repo: Nama repositori (string, wajib)
  • list_repository_collaborators - Mencantumkan kolaborator repositori

    • OAuth Challenge Scopes: repo
    • 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)
    • query: Kueri pencarian repositori. Contoh: 'machine learning in:name stars:>1000 language:python', 'topic:react', 'user:facebook'. Mendukung sintaks pencarian lanjutan untuk pemfilteran presisi. (string, wajib)
    • sort: Urutkan repositori berdasarkan bidang, default ke pencocokan terbaik (string, opsional)
shield-lock Perlindungan Rahasia
  • get_secret_scanning_alert - Mendapatkan peringatan pemindaian rahasia

    • OAuth Challenge Scopes: security_events
    • alertNumber: Nomor peringatan. (number, wajib)
    • owner: Pemilik repositori. (string, wajib)
    • repo: Nama repositori. (string, wajib)
  • list_secret_scanning_alerts - Mencantumkan peringatan pemindaian rahasia

    • OAuth Challenge Scopes: security_events
    • 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)
    • 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)
shield 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)
  • list_repository_security_advisories - Mencantumkan advisory keamanan repositori

    • OAuth Challenge Scopes: security_events
    • direction: Arah pengurutan. (string, opsional)
    • owner: Pemilik repositori. (string, wajib)
    • repo: Nama repositori. (string, wajib)
    • sort: Bidang pengurutan. (string, opsional)
    • state: Filter berdasarkan status advisory. (string, opsional)
star 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)
people 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:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_READ_ONLY=1 \
  ghcr.io/github/github-mcp-server

Mode Lockdown

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:

docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=<your-token> \
  -e GITHUB_LOCKDOWN_MODE=1 \
  ghcr.io/github/github-mcp-server

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.

./github-mcp-server --export-translations
cat github-mcp-server-config.json

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.

KunciVariabel LingkunganDefault
SERVER_NAMEGITHUB_MCP_SERVER_NAMEgithub-mcp-server
SERVER_TITLEGITHUB_MCP_SERVER_TITLEGitHub MCP Server

Misalnya, untuk mengonfigurasi instance server untuk GitHub Enterprise Server:

{
  "SERVER_NAME": "ghes-mcp-server",
  "SERVER_TITLE": "GHES MCP Server"
}

Atau menggunakan variabel lingkungan:

export GITHUB_MCP_SERVER_NAME="ghes-mcp-server"
export GITHUB_MCP_SERVER_TITLE="GHES MCP Server"

Penggunaan Pustaka

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.