Buildkite
resmiMengelola pipeline dan build Buildkite.
Apa yang bisa Anda lakukan dengan Buildkite MCP?
- Bandingkan build untuk menemukan regresi — Tanyakan "Apa yang berubah sejak build ini terakhir berhasil di main?" menggunakan
compare_buildsdenganorg_slug,pipeline_slug, danbuild_number. - Selidiki job yang gagal dengan log — Gunakan
get_build_failure_summaryatautail_logsuntuk memeriksa entri log pada langkah yang baru gagal atau masih gagal setelah perbandingan. - Sematkan baseline tertentu untuk perbandingan — Berikan
baseline_build_numberuntuk membandingkan dengan build tertentu, termasuk build yang gagal atau build di cabang lain. - Pahami pencocokan job dan waktu — Dapatkan detail tentang bagaimana job dicocokkan (melalui step keys atau fallback nama) dan lihat selisih waktu eksekusi dari
scheduled_athinggastarted_at.
Dokumentasi
buildkite-mcp-server
Model Context Protocol (MCP) server yang mengekspos data Buildkite (pipeline, build, job, tes) ke perangkat AI dan editor.
Dokumentasi lengkap tersedia di buildkite.com/docs/apis/mcp-server.
Membandingkan build
Alat compare_builds yang hanya-baca dalam kumpulan alat investigations menjawab pertanyaan seperti "Apa yang berubah sejak build ini terakhir berhasil di main?" Berikan org_slug, pipeline_slug, dan build_number target. Alat ini memilih build sebelumnya yang paling baru dibuat dan saat ini berstatus passed pada pipeline dan cabang yang sama persis. Alat ini tidak mensyaratkan bahwa baseline sudah berstatus passed saat target dimulai. Berikan baseline_build_number untuk membandingkan dengan build tertentu dalam pipeline tersebut sebagai gantinya, termasuk build yang gagal atau build di cabang lain.
Respons mengidentifikasi baseline dan aturan pemilihan, menghitung hasil di semua job, dan mengembalikan hingga 100 perbandingan job, dengan memprioritaskan langkah yang baru gagal, pulih, dan masih gagal. Pencocokan menggunakan kunci langkah, tipe job, nilai matriks, dan indeks/total paralel. Ketika kedua job tidak memiliki kunci, alat ini menggunakan nama nonblank yang persis plus tipe, kunci grup, nilai matriks, dan indeks/total paralel, hanya jika kombinasi tersebut unik di setiap build. Pasangan yang cocok mengekspos match_method: "step_key" atau "name_fallback"; pencocokan cadangan membawa peringatan bahwa itu bersifat heuristik. Job tanpa nama dan tanpa kunci serta identitas duplikat tetap tidak cocok. Kunci eksplisit tidak pernah kembali ke nama, bahkan ketika kunci ditambahkan, dihapus, atau diubah antar build. Ditambahkan/dihapus berarti identitas job hanya ada di satu build, sehingga mengganti nama job tanpa kunci atau mengubah nilai matriks atau paralelisme juga dapat menghasilkan entri ditambahkan/dihapus. Upaya percobaan ulang dikecualikan; status upaya terakhir dan jumlah percobaan ulang tetap terlihat.
Waktu eksekusi dan selisih hanya mencakup upaya terakhir. Waktu penjadwalan adalah scheduled_at hingga started_at, bukan waktu tunggu dependensi atau manual. Ini bukan perbandingan waktu dinding build atau total biaya percobaan ulang. Stempel waktu yang hilang atau tidak konsisten menghilangkan waktu yang sesuai. Build yang belum selesai secara eksplisit diidentifikasi sebagai snapshot yang berubah.
Transisi antara kegagalan lunak dan keras dilaporkan sebagai state_changed, bahkan ketika kedua job memiliki status failed. Build baseline yang berstatus passed dapat berisi job yang gagal lunak.
Secara default, hingga tiga job yang baru gagal menyertakan 20 entri log terakhirnya, dibatasi hingga 8 KiB konten log per job. Atur include_logs: false untuk menghilangkan log. Kesalahan log tidak membuang perbandingan, kecuali kesalahan autentikasi HTTP 401, yang diteruskan melalui jalur reautentikasi server. Alat ini memerlukan cakupan read_builds dan read_build_logs. Gunakan get_build_failure_summary atau tail_logs untuk menyelidiki lebih lanjut; langkah gagal yang sama tidak menetapkan akar penyebab yang sama atau membuat percobaan ulang aman.
Penemuan baseline mencari paling banyak 500 kandidat. Jika tidak ditemukan, respons mengatakan tidak ada perbandingan yang dilakukan dan meminta baseline eksplisit. Inventaris job dibatasi hingga 1.000 job per build; inventaris yang lebih besar mengembalikan kesalahan alih-alih hasil ditambahkan/dihapus parsial yang menyesatkan. Penghilangan output dilaporkan secara terpisah dari jumlah hasil lengkap.
Penggunaan Pustaka
API Go yang diekspor dari modul ini harus dianggap tidak stabil, dan dapat mengalami perubahan yang merusak seiring kami mengembangkan proyek ini.
Keamanan
Untuk memastikan server MCP dijalankan di lingkungan yang aman, kami merekomendasikan menjalankannya di dalam kontainer.
Gambar ini dibangun dari cgr.dev/chainguard/static dan berjalan sebagai pengguna tanpa hak istimewa.
Meneruskan header identitas melalui mode HTTP
Deployment HTTP yang dihosting sendiri dapat meneruskan header terpilih dari setiap permintaan MCP masuk ke API Buildkite:
BUILDKITE_API_TOKEN=bkua_xxx \
buildkite-mcp-server http \
--passthrough-http-header X-User-Identity
Ulangi --passthrough-http-header untuk mengizinkan lebih dari satu header, atau atur nilai BUILDKITE_PASSTHROUGH_HTTP_HEADERS yang dipisahkan koma. Hanya header yang diizinkan secara eksplisit yang diteruskan, dan hanya ke origin yang dikonfigurasi oleh BUILDKITE_BASE_URL. Header tersebut dihapus dari permintaan yang dialihkan ke tempat lain.
Untuk mengautentikasi setiap permintaan MCP dengan token API Buildkite miliknya sendiri, izinkan Authorization dan hilangkan token tingkat proses:
BUILDKITE_PASSTHROUGH_HTTP_HEADERS=Authorization \
buildkite-mcp-server http
Dalam mode ini, setiap permintaan /mcp harus berisi tepat satu header Authorization yang tidak kosong. Kredensial yang hilang mengembalikan HTTP 401; server tidak pernah kembali ke token API bersama. Proksi terbalik di depan server MCP bertanggung jawab untuk mengautentikasi pemanggil dan mengatur atau memvalidasi header identitas yang diteruskan.
Penerusan header tidak tersedia dalam mode stdio. Sebelum menyajikan log job, server memverifikasi bahwa pemanggil saat ini dapat mengakses log job. Pemeriksaan ini dilakukan untuk setiap permintaan alat log, termasuk ketika data log sudah di-cache.
Kontribusi
Pedoman pengembangan ada di DEVELOPMENT.md.
Lisensi
MIT © Buildkite
SPDX-License-Identifier: MIT