Skip to main content
Glama
norus

Atlassian Bamboo MCP Server

by norus

Atlassian Bamboo MCP Server

CI NPM Version MIT licensed TypeScript MCP

A Model Context Protocol (MCP) server that brings Atlassian Bamboo CI/CD operations directly into AI assistants like Claude Code and Cursor.

❌ Without Bamboo MCP

Working with Bamboo CI/CD requires constant context switching:

  • ❌ Switching to browser to check build status

  • ❌ Manually navigating through Bamboo UI to find logs

  • ❌ Copy-pasting build keys and deployment IDs

  • ❌ No AI assistance for CI/CD troubleshooting

✅ With Bamboo MCP

Bamboo MCP brings your CI/CD operations directly into your AI workflow:

What's the status of the latest build for project MY-PROJECT?
Show me the deployment logs for deployment result 2661941325
Trigger a build for plan PROJ-PLAN with variable ENV=staging

No tab-switching, no manual navigation — just ask and get instant CI/CD insights.

Features

  • 26 tools covering all major Bamboo operations

  • Build logs with actual content (not just URLs)

  • Deployment logs with full output

  • Proxy support for corporate environments

  • TypeScript with full type safety

Installation

Prerequisites

  • Node.js 18+ (22.12+ for development)

  • Bamboo personal access token (how to create)

From Source

git clone https://github.com/norus/atlassian-bamboo-mcp.git
cd atlassian-bamboo-mcp
npm install
npm run build

From npm

npm install -g bamboo-mcp-server

Configuration

The server requires these environment variables:

Variable

Required

Description

BAMBOO_URL

Yes

Base URL of your Bamboo server

BAMBOO_TOKEN

Yes

Personal access token

BAMBOO_PROXY

No

Proxy URL (e.g., http://proxy:8080)

Creating a Bamboo Token

  1. Log into Bamboo

  2. Go to ProfilePersonal access tokens

  3. Click Create token

  4. Give it a name and appropriate permissions

  5. Copy the token (you won't see it again)

Setup

Run this command:

claude mcp add bamboo -- npx -y bamboo-mcp-server@latest

Or add to ~/.claude/settings.json:

{
  "mcpServers": {
    "bamboo": {
      "command": "npx",
      "args": ["-y", "bamboo-mcp-server@latest"],
      "env": {
        "BAMBOO_URL": "https://bamboo.example.com",
        "BAMBOO_TOKEN": "your-token"
      }
    }
  }
}

Add to your config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "bamboo": {
      "command": "npx",
      "args": ["-y", "bamboo-mcp-server@latest"],
      "env": {
        "BAMBOO_URL": "https://bamboo.example.com",
        "BAMBOO_TOKEN": "your-token",
        "BAMBOO_PROXY": "http://proxy:8080"
      }
    }
  }
}

Add to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "bamboo": {
      "command": "npx",
      "args": ["-y", "bamboo-mcp-server@latest"],
      "env": {
        "BAMBOO_URL": "https://bamboo.example.com",
        "BAMBOO_TOKEN": "your-token"
      }
    }
  }
}
BAMBOO_URL="https://bamboo.example.com" \
BAMBOO_TOKEN="your-token" \
npx bamboo-mcp-server

Build the image

docker build -t bamboo-mcp-server .

Run with Docker

docker run -i --rm \
  -e BAMBOO_URL="https://bamboo.example.com" \
  -e BAMBOO_TOKEN="your-token" \
  -e BAMBOO_PROXY="http://host.docker.internal:8080" \
  bamboo-mcp-server

Proxy configuration

When using a proxy from Docker:

  • macOS/Windows: Use host.docker.internal to reach the host (e.g., http://host.docker.internal:8080)

  • Linux: Use --network host flag or the host's actual IP address

Use with Claude Desktop

{
  "mcpServers": {
    "bamboo": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "BAMBOO_URL=https://bamboo.example.com",
        "-e", "BAMBOO_TOKEN=your-token",
        "-e", "BAMBOO_PROXY=http://host.docker.internal:8080",
        "bamboo-mcp-server"
      ]
    }
  }
}

Docker Compose

services:
  bamboo-mcp:
    build: .
    environment:
      - BAMBOO_URL=https://bamboo.example.com
      - BAMBOO_TOKEN=${BAMBOO_TOKEN}
      - BAMBOO_PROXY=http://host.docker.internal:8080
    stdin_open: true

Available Tools

Server (2)

Tool

Description

bamboo_server_info

Get Bamboo server version and state

bamboo_health_check

Check server health status

Projects (2)

Tool

Description

bamboo_list_projects

List all projects

bamboo_get_project

Get project details by key

Plans (6)

Tool

Description

bamboo_list_plans

List all build plans

bamboo_get_plan

Get plan details by key

bamboo_search_plans

Search plans by name

bamboo_enable_plan

Enable a build plan

bamboo_disable_plan

Disable a build plan

bamboo_clone_plan

Clone a build plan to a new plan

Branches (2)

Tool

Description

bamboo_list_plan_branches

List branches for a plan

bamboo_get_plan_branch

Get branch details

Builds (7)

Tool

Description

bamboo_trigger_build

Trigger a build (supports variables)

bamboo_stop_build

Stop a running build

bamboo_get_build_result

Get specific build result

bamboo_get_latest_result

Get latest build result

bamboo_list_build_results

List build results with filters

bamboo_get_build_logs

Get build log file URLs

bamboo_get_build_result_logs

Get build logs with actual content

Queue (2)

Tool

Description

bamboo_get_build_queue

Get current build queue

bamboo_get_deployment_queue

Get deployment queue status

Deployments (6)

Tool

Description

bamboo_list_deployment_projects

List deployment projects

bamboo_get_deployment_project

Get deployment project details

bamboo_create_deployment_project

Create a deployment project linked to a build plan

bamboo_get_deployment_results

Get deployment results for environment

bamboo_get_deployment_result

Get deployment result with logs

bamboo_trigger_deployment

Trigger a deployment

Example Prompts

Show me all failed builds in the last 24 hours
What's blocking the deployment queue?
Get the logs for build PROJ-PLAN-123 and tell me why it failed
Trigger a build for MY-PROJECT with variable DEPLOY_ENV=staging
List all branches for plan MY-PLAN and their build status

Development

# Install dependencies
npm install

# Build
npm run build

# Run tests
npm test

# Run tests with coverage
npm run test:coverage

# Run locally
BAMBOO_URL="https://bamboo.example.com" \
BAMBOO_TOKEN="your-token" \
node dist/index.js

Troubleshooting

  • Verify BAMBOO_URL is correct and accessible

  • If behind a proxy, set BAMBOO_PROXY

  • Check if your token has expired

  • Verify your BAMBOO_TOKEN is correct

  • Ensure the token hasn't expired

  • Check token permissions in Bamboo

  • Restart Claude Code/Desktop after config changes

  • Verify the path to dist/index.js is absolute

  • Check Claude's MCP logs for errors

Security

  • No hardcoded secrets — all credentials via environment variables

  • Input validation — Zod schemas on all tool inputs

  • Proxy support — works in corporate environments

  • Read-heavy — most operations are read-only

For security issues, please report via GitHub Security tab.

License

MIT

Contributing

Contributions welcome! Please read our contributing guidelines before submitting PRs.