# Tool Capabilities Reference This document provides complete capability information for all Buildkite status checking tools. ## Overview Three tool categories exist with different strengths and limitations: 1. **MCP Tools** - Direct Buildkite API access via Model Context Protocol 2. **bktide CLI** - Human-readable command-line tool (npm package) 3. **Bundled Scripts** - Helper wrappers in this skill's `scripts/` directory ## Capability Matrix | Capability | MCP Tools | bktide | Scripts | Notes | | --------------------- | ------------------------------- | ----------------------- | -------------------------- | -------------------------- | | List organizations | ✅ `buildkite:list_orgs` | ❌ | ❌ | | | List pipelines | ✅ `buildkite:list_pipelines` | ✅ `bktide pipelines` | ❌ | | | List builds | ✅ `buildkite:list_builds` | ✅ `bktide builds` | ✅ `find-commit-builds.js` | Scripts are specialized | | Get build details | ✅ `buildkite:get_build` | ✅ `bktide build` | ❌ | | | Get annotations | ✅ `buildkite:list_annotations` | ✅ `bktide annotations` | ❌ | | | **Retrieve job logs** | **✅ `buildkite:get_logs`** | **❌ NO** | **✅ `get-build-logs.js`** | **bktide cannot get logs** | | Get log metadata | ✅ `buildkite:get_logs_info` | ❌ | ❌ | | | List artifacts | ✅ `buildkite:list_artifacts` | ❌ | ❌ | | | Wait for build | ✅ `buildkite:wait_for_build` | ❌ | ✅ `wait-for-build.js` | MCP preferred | | Unblock jobs | ✅ `buildkite:unblock_job` | ❌ | ❌ | | | Real-time updates | ✅ | ❌ | ✅ | Via polling | | Human-readable output | ❌ (JSON) | ✅ | Varies | | | Works offline | ❌ | ❌ | ❌ | All need network | | Requires auth | ✅ (MCP config) | ✅ (BK_TOKEN) | ✅ (uses bktide) | | ## Detailed Tool Information ### MCP Tools (Primary) **Access Method:** `mcp__MCPProxy__call_tool("buildkite:", {...})` **Authentication:** Configured in MCP server settings (typically uses `BUILDKITE_API_TOKEN`) **Pros:** - Complete API coverage - Always available (no external dependencies) - Real-time data - Structured JSON responses **Cons:** - Verbose JSON output - Requires parsing for human reading **Key Tools:** #### `buildkite:get_build` Get detailed build information including job states, timing, and metadata. Parameters: - `org_slug` (required): Organization slug - `pipeline_slug` (required): Pipeline slug - `build_number` (required): Build number - `detail_level` (optional): "summary" | "detailed" | "complete" - `job_state` (optional): Filter jobs by state ("failed", "passed", etc.) Returns: Build object with jobs array, state, timing, author, etc. #### `buildkite:get_logs` **THE CRITICAL TOOL** - Retrieve actual log output from a job. Parameters: - `org_slug` (required): Organization slug - `pipeline_slug` (required): Pipeline slug - `build_number` (required): Build number - `job_id` (required): Job UUID (NOT step ID from URL) Returns: Log text content **Common Issues:** - "job not found" → Using step ID instead of job UUID - Empty response → Job hasn't started or finished yet #### `buildkite:wait_for_build` Poll build until completion. Parameters: - `org_slug` (required): Organization slug - `pipeline_slug` (required): Pipeline slug - `build_number` (required): Build number - `timeout` (optional): Seconds until timeout (default: 1800) - `poll_interval` (optional): Seconds between checks (default: 30) Returns: Final build state when complete or timeout ### bktide CLI (Secondary) **Access Method:** `npx bktide ` **Authentication:** `BK_TOKEN` environment variable or `~/.bktide/config` **Pros:** - Human-readable colored output - Intuitive command structure - Good for interactive terminal work **Cons:** - External npm dependency - **CANNOT retrieve job logs** (most critical limitation) - Limited compared to full API - Requires npx/node installed **Key Commands:** ```bash npx bktide pipelines # List pipelines npx bktide builds / # List recent builds npx bktide build // # Build details npx bktide build // --jobs # Show job summary npx bktide build // --failed # Show failed jobs only npx bktide annotations // # Show annotations ``` **Critical**: bktide has NO command for retrieving logs. The `build` command shows job states and names, but NOT log content. ### Bundled Scripts (Tertiary) **Access Method:** `~/.claude/skills/buildkite-status/scripts/