You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+70-1Lines changed: 70 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -481,11 +481,80 @@ This is particularly useful when you want to grant AI assistants access to query
481
481
482
482
| Variable | Description | Default | Usage |
483
483
|----------|-------------|---------|-------|
484
-
|`BUILDKITE_API_TOKEN`| Your Buildkite API access token | Required | Authentication for all API requests |
484
+
|`BUILDKITE_API_TOKEN`| Your Buildkite API access token | Required*| Authentication for all API requests |
485
+
|`BUILDKITE_API_TOKEN_FROM_1PASSWORD`| 1Password item reference for API token | - | Alternative to `BUILDKITE_API_TOKEN`. Format: `op://vault/item/field`|
485
486
|`BUILDKITE_TOOLSETS`| Comma-separated list of toolsets to enable |`all`| Controls which tool groups are available |
486
487
|`BUILDKITE_READ_ONLY`| Enable read-only mode (filters out write operations) |`false`| Security setting for AI assistants |
487
488
|`HTTP_LISTEN_ADDR`| Address for HTTP server to listen on |`localhost:3000`| Used with `http` command |
488
489
490
+
*Either `BUILDKITE_API_TOKEN` or `BUILDKITE_API_TOKEN_FROM_1PASSWORD` must be specified, but not both.
491
+
492
+
---
493
+
494
+
## 🔐 1Password Integration
495
+
496
+
For enhanced security, you can store your Buildkite API token in [1Password](https://1password.com/) and reference it using the 1Password CLI instead of exposing it as a plain environment variable.
497
+
498
+
### Prerequisites
499
+
500
+
-[1Password CLI](https://developer.1password.com/docs/cli/get-started/) installed and authenticated
501
+
- Your Buildkite API token stored in a 1Password item
502
+
503
+
### Usage
504
+
505
+
Instead of using `BUILDKITE_API_TOKEN`, use `BUILDKITE_API_TOKEN_FROM_1PASSWORD` with a 1Password item reference:
506
+
507
+
**Environment Variable:**
508
+
```bash
509
+
export BUILDKITE_API_TOKEN_FROM_1PASSWORD="op://Private/Buildkite API Token/credential"
510
+
buildkite-mcp-server stdio
511
+
```
512
+
513
+
**Command Line:**
514
+
```bash
515
+
buildkite-mcp-server stdio --api-token-from-1password="op://Private/Buildkite API Token/credential"
516
+
```
517
+
518
+
> **Note:** The server will call `op read -n <reference>` to fetch the token. Ensure your 1Password CLI is properly authenticated before starting the server.
519
+
520
+
### Client Configuration Examples
521
+
522
+
<details>
523
+
<summary>Claude Desktop with 1Password</summary>
524
+
525
+
```jsonc
526
+
{
527
+
"mcpServers": {
528
+
"buildkite": {
529
+
"command":"buildkite-mcp-server",
530
+
"args": ["stdio"],
531
+
"env": {
532
+
"BUILDKITE_API_TOKEN_FROM_1PASSWORD":"op://Private/Buildkite API Token/credential"
533
+
}
534
+
}
535
+
}
536
+
}
537
+
```
538
+
</details>
539
+
540
+
<details>
541
+
<summary>VS Code with 1Password</summary>
542
+
543
+
```jsonc
544
+
{
545
+
"servers": {
546
+
"buildkite": {
547
+
"command":"buildkite-mcp-server",
548
+
"args": ["stdio"],
549
+
"env": {
550
+
"BUILDKITE_API_TOKEN_FROM_1PASSWORD":"op://Private/Buildkite API Token/credential"
HTTP commands.HTTPCmd`cmd:"" help:"http mcp server. (pass --use-sse to use SSE transport"`
25
-
Tools commands.ToolsCmd`cmd:"" help:"list available tools." hidden:""`
26
-
APITokenstring`help:"The Buildkite API token to use." env:"BUILDKITE_API_TOKEN"`
27
-
BaseURLstring`help:"The base URL of the Buildkite API to use." env:"BUILDKITE_BASE_URL" default:"https://api.buildkite.com/"`
28
-
CacheURLstring`help:"The blob storage URL for job logs cache." env:"BKLOG_CACHE_URL"`
29
-
Debugbool`help:"Enable debug mode." env:"DEBUG"`
30
-
OTELExporterstring`help:"OpenTelemetry exporter to enable. Options are 'http/protobuf', 'grpc', or 'noop'." enum:"http/protobuf, grpc, noop" env:"OTEL_EXPORTER_OTLP_PROTOCOL" default:"noop"`
31
-
HTTPHeaders []string`help:"Additional HTTP headers to send with every request. Format: 'Key: Value'" name:"http-header" env:"BUILDKITE_HTTP_HEADERS"`
HTTP commands.HTTPCmd`cmd:"" help:"http mcp server. (pass --use-sse to use SSE transport"`
25
+
Tools commands.ToolsCmd`cmd:"" help:"list available tools." hidden:""`
26
+
APITokenstring`help:"The Buildkite API token to use." env:"BUILDKITE_API_TOKEN"`
27
+
APITokenFrom1Passwordstring`help:"The 1Password item to read the Buildkite API token from. Format: 'op://vault/item/field'" env:"BUILDKITE_API_TOKEN_FROM_1PASSWORD"`
28
+
BaseURLstring`help:"The base URL of the Buildkite API to use." env:"BUILDKITE_BASE_URL" default:"https://api.buildkite.com/"`
29
+
CacheURLstring`help:"The blob storage URL for job logs cache." env:"BKLOG_CACHE_URL"`
30
+
Debugbool`help:"Enable debug mode." env:"DEBUG"`
31
+
OTELExporterstring`help:"OpenTelemetry exporter to enable. Options are 'http/protobuf', 'grpc', or 'noop'." enum:"http/protobuf, grpc, noop" env:"OTEL_EXPORTER_OTLP_PROTOCOL" default:"noop"`
32
+
HTTPHeaders []string`help:"Additional HTTP headers to send with every request. Format: 'Key: Value'" name:"http-header" env:"BUILDKITE_HTTP_HEADERS"`
0 commit comments