Lewati ke konten utama

Tutorial Claude Code Connector: Triage Repo GitHub dalam 20 Menit

Baca tutorial konektor Claude Code ini untuk menyiapkan GitHub via MCP. Pelajari mengotomatiskan triage isu open-source dalam 20 menit menggunakan file lokal read-only.
Diperbarui 7 Jul 2026  · 9 mnt baca

Dalam tutorial ini, saya akan menunjukkan cara menyambungkan Claude Code ke GitHub menggunakan konektor Claude (dibangun di atas Model Context Protocol) dan menggunakannya untuk melakukan triage pada sebuah repositori open-source dari awal hingga akhir. 

Alur kerjanya tidak mengkloning apa pun, tidak memerlukan vector store, dan tidak menyentuh satu baris pun di repo target. Sebagai gantinya, Claude Code membaca isu melalui konektor dan menulis artefak ke sistem file lokal Anda untuk Anda tinjau sebelum memutuskan apa yang (jika ada) akan diposting.

Di akhir tutorial ini, Anda akan memiliki:

  • Setelan Claude Code dan GitHub MCP yang berfungsi dengan token read-only,
  • Beberapa prompt yang dapat digunakan kembali untuk repo publik mana pun,
  • Artefak triage lengkap untuk langchain-ai/langchain yang dapat Anda bandingkan.

Apa itu Claude Code GitHub Connector (MCP)?

Claude Code adalah agen pengkodean berbasis terminal dari Anthropic. 

Secara bawaan, ia sudah memiliki akses ke filesystem, shell, dan git Anda. Claude Code Connectors memperluasnya untuk menjangkau konteks eksternal, seperti isu GitHub, tiket Linear, pesan Slack, kueri Postgres, dan seterusnya, yang tidak dapat dijangkau terminal sendirian.

Protokol konektornya disebut MCP (Model Context Protocol), yaitu standar terbuka untuk mengekspos alat dan data ke agen LLM. 

Anthropic memelihara direktori konektor siap pakai, dan Anda juga dapat menulis sendiri atau tersambung ke server MCP pihak ketiga.

Untuk tutorial ini, kita akan menggunakan server GitHub MCP resmi, yang berjalan secara lokal melalui Docker. Beberapa ide inti di balik setelan ini:

  • Berjalan sebagai kontainer Docker lokal tanpa perantara cloud, sehingga kredensial tetap berada di mesin Anda.
  • Diautentikasi dengan GitHub Personal Access Token (PAT) standar, jadi tidak perlu pendaftaran aplikasi OAuth.
  • Mendukung izin berbasis cakupan, seperti PAT tanpa cakupan, yang memberikan akses baca saja ke repo publik, sehingga penulisan mustahil di level API GitHub.
  • Diekspos ke Claude Code melalui perintah claude mcp add, lalu alatnya tersedia di setiap sesi.

Triage open-source banyak membaca, membutuhkan pertimbangan, dan murah jika salah. 

Membaca 50 isu dan mengelompokkannya melelahkan bagi manusia, tetapi cocok untuk model yang dapat menaruh semuanya dalam konteks sekaligus. 

Selain itu, kita menulis output sebagai file lokal terlebih dahulu; klaster yang buruk atau draf yang canggung tidak berbiaya, dan Anda dapat menanggapinya saat ditinjau.

Tutorial Claude Code GitHub Connector: Bangun Triage untuk langchain-ai/langchain

Di bagian ini, kita akan menyiapkan konektor GitHub di Claude Code dan menjalankan empat prompt triage terhadap langchain-ai/langchain. Ini adalah repo ML besar dengan pelacak isu yang benar-benar berantakan. Secara garis besar, berikut yang akan kita bangun:

  • Menyambungkan Claude Code ke GitHub melalui server MCP resmi yang berjalan di Docker,
  • Menggunakan PAT tanpa cakupan sehingga konektor bersifat read-only secara desain,
  • Menjalankan prompt triage yang menyimpan hasil ke file lokal,
  • Meninjau output, termasuk beberapa kasus ketika Claude menolak mengelompokkan isu sebagai duplikat.

Mari kita bangun langkah demi langkah.

Langkah 1: Instal prasyarat untuk Claude Code dan Docker

Sebelum kita menyiapkan konektor, Anda memerlukan tiga hal:

  • Claude Code: Anda dapat menginstalnya dari panduan instalasi resmi Anthropic,
  • Docker Desktop: server GitHub MCP resmi berjalan di dalam kontainer, jadi Docker perlu diinstal dan berjalan,
  • Akun GitHub: Diperlukan untuk menghasilkan PAT pada langkah berikutnya.

Setelah semua prasyarat siap, verifikasi Docker sedang berjalan:

docker info | head -5

Jika Docker belum terinstal atau daemon belum aktif, Anda akan melihat kesalahan "Cannot connect to the Docker daemon". Di macOS, jalankan Docker Desktop dengan:

open -a Docker

Docker Desktop memerlukan 15-60 detik hingga benar-benar siap, dan docker info akan terus menghasilkan galat selama jeda tersebut. Alih-alih memeriksa manual, gunakan one-liner tunggu kecil yang mem-poll hingga daemon aktif:

until 

docker info >/dev/null 2>&1; do sleep 2; echo "waiting..."; done && echo "Docker ready"

Setelah mencetak Docker ready, Anda dapat melanjutkan.

Langkah 2: Buat token GitHub read-only

Setelah Docker disiapkan, selanjutnya buka github.com/settings/tokens dan buat token klasik baru.

Catatan: Biarkan semua scope tidak dicentang. Token tanpa cakupan tetap dapat membaca repositori publik melalui API GitHub, yang merupakan semua yang dibutuhkan agen kita. Tanpa scope apa pun dipilih, token tidak dapat menulis, mengubah, atau menghapus apa pun di GitHub, apa pun yang kita minta Claude lakukan. Ini adalah jaminan keras yang ditegakkan di sisi GitHub, bukan janji tentang perilaku agen.

Salin dan simpan token segera setelah dibuat, lalu ekspor di shell Anda:

export GITHUB_PERSONAL_ACCESS_TOKEN="ghp_your_token_here"

Jika Anda sudah berada di dalam sesi Claude Code, Anda mungkin tergoda untuk menggunakan prefiks ! guna menjalankan perintah export langsung di shell Anda (mis., ! export GITHUB_PERSONAL_ACCESS_TOKEN="..."). 

Namun, karena ! memunculkan subshell sementara, variabel akan hilang begitu perintah selesai, dan Claude tidak akan melihatnya.

Untuk menyetel token dengan aman tanpa menempelkannya ke prompt model, Anda memiliki dua opsi:

  1. Ketik /exit untuk keluar dari Claude, jalankan perintah export di terminal biasa Anda, dan mulai ulang claude.
  2. Atau, simpan token di file lokal .env di direktori kerja Anda, yang secara otomatis dibaca Claude Code saat startup.

Verifikasi bahwa kedua prasyarat siap tanpa menampilkan token itu sendiri:

docker info | head -3
echo "Token set: ${GITHUB_PERSONAL_ACCESS_TOKEN:+yes}"

Perintah kedua akan mencetak Token set: yes jika variabel ada dan Token set: (tidak ada setelah titik dua) jika kosong. 

Ini lebih aman daripada menampilkan token secara langsung karena tidak ada kemungkinan token masuk ke riwayat shell Anda dalam bentuk teks biasa.

Langkah 3: Daftarkan konektor GitHub dengan Claude Code

Server GitHub MCP resmi dikirim sebagai image Docker. 

Kita mendaftarkannya dengan Claude Code menggunakan claude mcp add:

claude mcp add github \
  -e GITHUB_PERSONAL_ACCESS_TOKEN=$GITHUB_PERSONAL_ACCESS_TOKEN \
  -- docker run -i --rm \
  -e GITHUB_PERSONAL_ACCESS_TOKEN \
  ghcr.io/github/github-mcp-server

Dua flag -e di sini bukan salah ketik::

  • -e pertama (sebelum --) menyetel variabel lingkungan untuk proses MCP yang diluncurkan Claude Code,
  • -e kedua (di dalam argumen docker run) memberi tahu Docker untuk meneruskan variabel tersebut ke dalam kontainer.

Jika Anda melewatkan salah satunya dan kontainer dimulai dengan token kosong, maka autentikasi ke API GitHub akan gagal.

Untuk memverifikasi apakah konektor berhasil terdaftar:

claude mcp list

Anda harus melihat:

github — docker run -i --rm -e GITHUB_PERSONAL_ACCESS_TOKEN ghcr.io/github/github-mcp-server —  Connected

Jika Anda melihat Failed to connect, dua penyebab paling umum adalah Docker tidak berjalan atau GITHUB_PERSONAL_ACCESS_TOKEN tidak diekspor di shell yang sama saat Anda menjalankan claude mcp add.

Langkah 4: Sanity-check koneksi

Sekarang, token GitHub kita telah disetel. Selanjutnya, buat direktori kerja dan buka CLI Claude Code:

mkdir demo && cd demo
claude

Perintah claude meluncurkan sesi interaktif di direktori saat ini. 

File apa pun yang ditulis Claude selama triage akan berada di sini. 

Lalu ajukan pertanyaan sederhana read-only untuk mengonfirmasi konektor digunakan:

Using the GitHub MCP connector, fetch the 5 most recently updated open issues in langchain-ai/langchain. Just list titles and numbers.

Saat Claude Code pertama kali menggunakan alat GitHub, ia akan meminta persetujuan. 

Setujui alat read-only seperti list_issues, get_issue, search_issues, dll. 

Jika Claude kembali menggunakan curl terhadap API publik GitHub alih-alih alat MCP, berarti konektor tidak dimuat. Lalu, keluar dari sesi Anda dan mulai ulang.

Jalannya yang berhasil akan mengembalikan sesuatu seperti:

Sanity-check the connection

Setelah Anda melihat nomor isu nyata kembali melalui MCP, kita siap menjalankan triage yang sesungguhnya.

Langkah 5: Hasilkan ringkasan backlog

Tugas pemanasan ini murni read-only. Sekarang, kita menginginkan peta isi pelacak isu sebelum melakukan hal lain.

Prompt:
Using the GitHub MCP connector, pull the 50 most recently updated open issues from langchain-ai/langchain. 
Read their titles, bodies, and labels. Group them by likely area — bugs, feature requests, documentation, questions, and "needs more info." 
For each group, give me a count and 3-5 representative issue numbers with a one-line reason. Save as backlog-summary.md in the current directory.

Generate a backlog summary

Claude Code mengambil isu melalui konektor, membacanya, dan menulis file markdown yang mengelompokkannya berdasarkan area dengan nomor isu perwakilan. File ini saja sudah berguna karena seorang maintainer dapat membacanya sekilas dalam 60 detik dan mengetahui seperti apa minggu yang akan dihadapi.

Langkah 6: Tandai kandidat duplikat

Deteksi duplikat adalah tempat agen menunjukkan nilainya. 

Membaca 50 isu secara menyeluruh dan mengelompokkannya berdasarkan masalah mendasar melelahkan bagi manusia, tetapi model dapat menaruh semuanya dalam konteks dan melihat tumpang tindih yang akan terlewat oleh pencarian kata kunci.

Prompt:
From the same 50 issues you already pulled, identify clusters of likely duplicates: issues describing the same underlying problem, even if titles differ. For each cluster, output issue numbers, a one-sentence shared-problem description, and confidence (high/medium/low). Save as duplicate-candidates.md.

Berikut yang benar-benar dihasilkan Claude pada percobaan saya:

Flag duplicate candidates

Bagian paling menarik dari output ini adalah klaster 2 hingga 4. 

Detektor duplikat naif berbasis kata kunci mungkin akan menutup keempat klaster sebagai duplikat. 

Claude secara eksplisit menolak menyebutnya duplikat. 

Ia menandai mereka sebagai klaster komponen dengan subsistem yang sama, penyebab akar yang berbeda, dan memberi tahu saya mana yang benar-benar perlu ditutup (hanya Klaster 1) vs mana yang perlu ditriage bersama namun tetap dibuka.

Itulah perilaku yang Anda harapkan dari triager manusia yang teliti, dan tepat alasan pola file-lokal-lalu-tinjau layak dilakukan sebagai langkah ekstra. 

Jika kita menyambungkannya langsung ke API GitHub dan menutup otomatis semua yang ditandai Claude, kita akan menutup tiga bug yang nyata.

Langkah 7: Tinjau, lalu putuskan apa yang akan diposting

Ini inti dari pola file lokal. 

Sebelum apa pun menyentuh GitHub, periksa setiap file .md yang disimpan oleh Claude dan cek apakah pengelompokannya sesuai intuisi Anda. 

Apakah klaster berkeyakinan tinggi benar-benar terlihat seperti duplikat? Baca 2-3 draf respons, dan cek apakah nadanya sesuai dengan gaya Anda.

Jika Anda ingin benar-benar memposting komentar atau menerapkan label, Anda memiliki dua opsi:

  • Manual: Anda dapat menempelkan drafnya ke GitHub sendiri. Untuk sesi triage satu kali pada repo milik orang lain, ini baik dan sering kali merupakan pilihan tepat.
  • Izinkan penulisan pada repo yang Anda miliki:  Hasilkan PAT terpisah dengan cakupan repo, tambahkan sebagai entri konektor berbeda (mis., github-write), dan jalankan ulang prompt dengan meminta Claude menerapkan label dan memposting komentar. Claude Code akan meminta persetujuan untuk setiap alat penulisan saat pertama kali digunakan.

Langkah keselamatan utama untuk jalur penulisan adalah memisahkan token baca dan tulis.

Kesimpulan

Dalam tutorial ini, saya menunjukkan cara menyambungkan Claude Code ke GitHub melalui MCP dan menggunakannya untuk men-triage repositori open-source nyata dari ujung ke ujung. 

Alih-alih membangun bot GitHub khusus atau menyambungkan webhooks, alur kerjanya membaca isu melalui server GitHub MCP resmi, menulis empat artefak triage sebagai file lokal, dan memungkinkan Anda meninjau semuanya sebelum memutuskan apa yang akan diposting.

Pelajaran yang lebih luas adalah bahwa konektor mengubah Claude Code dari agen pengkodean menjadi alat yang dapat membaca alat Anda dan menyiapkan pekerjaan untuk Anda tinjau. 

Bawaan yang tepat adalah menjaga pekerjaan itu tetap lokal hingga Anda melihatnya, dan setelah Anda memercayai polanya, Anda dapat secara selektif membiarkan agen bertindak ketika biaya kesalahan rendah.

Dari sini, Anda dapat memperluas proyek dengan beberapa cara:

  • Tambahkan konektor yang mampu menulis pada repo yang Anda miliki sehingga label dan komentar diterapkan otomatis setelah tinjauan,
  • Rangkaikan konektor Linear atau Slack untuk menyinkronkan keputusan triage ke alur kerja tim Anda,
  • Ubah prompt menjadi job CI terjadwal yang menghasilkan PR triage mingguan,
  • Atau generalkan prompt di atas menjadi perintah slash Claude Code yang dapat digunakan kembali untuk URL repo apa pun.

FAQs

Apakah saya memerlukan langganan GitHub Copilot untuk menggunakan server GitHub MCP?

Tidak. Meskipun GitHub menawarkan endpoint HTTP jarak jauh (api.githubcopilot.com/mcp) yang dapat Anda autentikasi dengan Personal Access Token standar, menjalankan image Docker self-hosted (seperti yang kita lakukan di tutorial ini) membuat koneksi tetap lokal di mesin Anda. Kedua metode tidak memerlukan langganan Copilot, tetapi pendekatan Docker memastikan token Anda tidak pernah meninggalkan lingkungan lokal.

Mengapa membiarkan semua scope PAT tidak dicentang?

PAT klasik tanpa cakupan dapat membaca repositori publik melalui API GitHub, tetapi tidak dapat menulis, mengubah, atau menghapus apa pun, di mana pun. Ini membuat seluruh tutorial bersifat read-only secara desain; bahkan jika Claude mencoba memposting komentar, GitHub akan menolak permintaan dengan 403. Untuk men-triage repo yang bukan milik Anda, ini adalah setelan yang paling aman.

Bagaimana jika konektor menampilkan "Failed to connect"?

Dua penyebab umum: Docker tidak berjalan (docker info seharusnya menampilkan info server, bukan galat), atau GITHUB_PERSONAL_ACCESS_TOKEN tidak diekspor di shell tempat Anda menjalankan claude mcp add. Perbaiki yang berlaku, hapus dan tambah lagi konektor, lalu mulai ulang sesi Claude Code Anda.

Apakah Claude Code memposting apa pun ke GitHub selama tutorial ini?

Tidak. Semua prompt bersifat read-only, semua output ditulis ke file lokal, dan PAT tanpa cakupan secara fisik tidak dapat menulis ke GitHub. Anda yang mengontrol apakah ada yang akan diposting.

Bisakah saya menjalankannya terjadwal?

Ya. Bungkus prompt dalam skrip shell yang memanggil Claude Code secara non-interaktif (lihat flag --print dan -p pada dokumen resmi), lalu jalankan melalui cron atau GitHub Actions. Commit artefak ke sebuah branch dan buka PR untuk ditinjau.

Bisakah saya menyiapkannya lewat menu konektor '+' di aplikasi web Claude?

Tidak, alur itu untuk chat Claude.ai / Desktop / seluler. Claude Code menggunakan CLI. Namun setelah tersambung, kedua permukaan dapat menggunakan server MCP yang sama di bawahnya.

Topik

Kursus Teratas DataCamp

Kursus

Software Development with Claude Code

4 Hr
4.5K
Claude Code brings AI assistance to your terminal. Learn the workflows that turn it into a reliable tool for real software development.
Lihat DetailRight Arrow
Mulai Kursus
Lihat Lebih BanyakRight Arrow