GitHub
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)
Read-only MCP server for self-hosted Atlassian Bamboo CI/CD
สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน
ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry
เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง
BAMBOO_URL, BAMBOO_TOKEN, MCP_TRANSPORT, BAMBOO_PROXY, BITBUCKET_URL, VERBOSEค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต
ต้องเตรียมก่อน
คุณใช้แอปไหน
เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”
เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json
{
"mcpServers": {
"bamboo": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BAMBOO_URL",
"-e",
"BAMBOO_TOKEN",
"-e",
"MCP_TRANSPORT",
"-e",
"BAMBOO_PROXY",
"-e",
"BITBUCKET_URL",
"-e",
"VERBOSE",
"ghcr.io/hmdmph/bamboo-mcp:0.1.2"
],
"env": {
"BAMBOO_URL": "ใส่ค่าของคุณ",
"BAMBOO_TOKEN": "ใส่ค่าของคุณ",
"MCP_TRANSPORT": "ใส่ค่าของคุณ",
"BAMBOO_PROXY": "ใส่ค่าของคุณ",
"BITBUCKET_URL": "ใส่ค่าของคุณ",
"VERBOSE": "ใส่ค่าของคุณ"
}
}
}
}พิมพ์คำสั่งนี้ใน Terminal
claude mcp add bamboo --env BAMBOO_URL='ใส่ค่าของคุณ' --env BAMBOO_TOKEN='ใส่ค่าของคุณ' --env MCP_TRANSPORT='ใส่ค่าของคุณ' --env BAMBOO_PROXY='ใส่ค่าของคุณ' --env BITBUCKET_URL='ใส่ค่าของคุณ' --env VERBOSE='ใส่ค่าของคุณ' -- docker run -i --rm -e BAMBOO_URL -e BAMBOO_TOKEN -e MCP_TRANSPORT -e BAMBOO_PROXY -e BITBUCKET_URL -e VERBOSE ghcr.io/hmdmph/bamboo-mcp:0.1.2เติมค่าที่เว้นว่างไว้ก่อนรัน
วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json
{
"mcpServers": {
"bamboo": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BAMBOO_URL",
"-e",
"BAMBOO_TOKEN",
"-e",
"MCP_TRANSPORT",
"-e",
"BAMBOO_PROXY",
"-e",
"BITBUCKET_URL",
"-e",
"VERBOSE",
"ghcr.io/hmdmph/bamboo-mcp:0.1.2"
],
"env": {
"BAMBOO_URL": "ใส่ค่าของคุณ",
"BAMBOO_TOKEN": "ใส่ค่าของคุณ",
"MCP_TRANSPORT": "ใส่ค่าของคุณ",
"BAMBOO_PROXY": "ใส่ค่าของคุณ",
"BITBUCKET_URL": "ใส่ค่าของคุณ",
"VERBOSE": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
วางในไฟล์ .vscode/mcp.json ของโปรเจกต์
{
"servers": {
"bamboo": {
"type": "stdio",
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"BAMBOO_URL",
"-e",
"BAMBOO_TOKEN",
"-e",
"MCP_TRANSPORT",
"-e",
"BAMBOO_PROXY",
"-e",
"BITBUCKET_URL",
"-e",
"VERBOSE",
"ghcr.io/hmdmph/bamboo-mcp:0.1.2"
],
"env": {
"BAMBOO_URL": "ใส่ค่าของคุณ",
"BAMBOO_TOKEN": "ใส่ค่าของคุณ",
"MCP_TRANSPORT": "ใส่ค่าของคุณ",
"BAMBOO_PROXY": "ใส่ค่าของคุณ",
"BITBUCKET_URL": "ใส่ค่าของคุณ",
"VERBOSE": "ใส่ค่าของคุณ"
}
}
}
}เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง
ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น
ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี
BAMBOO_PROXY envBITBUCKET_URL envVERBOSE envค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README
รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง
เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 7 พ.ย. 2569
ชื่อใน registry ยืนยันด้วยบัญชี GitHub hmdmph ซึ่งเป็นเจ้าของ repo
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ยังไม่ได้อ่านข้อมูล repo จาก GitHub
ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต
ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน
รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต
เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo
จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น
ต้องใส่ค่าเหล่านี้: BAMBOO_URL, BAMBOO_TOKEN, MCP_TRANSPORT
รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)
repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.1.2) เข้า registry 3 เดือนที่ผ่านมา
โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Docker ในเครื่องด้วย
ในหมวดเดียวกันมี GitHub, Desktop Commander, Cloudflare MCP
server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว
อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi
server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้
MCP server for terminal commands, file operations, and process management
Cloudflare MCP servers
ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ
A Model Context Protocol server that exposes a self-hosted Atlassian Bamboo instance to AI assistants — Claude Desktop, Claude Code, Cursor, Windsurf, or any other MCP client.
Ask *"who deployed CHECKOUT to staging and did it pass?"* instead of clicking through the Bamboo UI.
Read-only by design. Every tool is registered behind a policy engine that enforces a GET-only floor. This server cannot trigger a build, start a deployment, or change anything in Bamboo.
Atlassian has announced the end of support for Bamboo Data Center in 2029. If you are starting a new CI/CD project, you should be looking at a supported platform instead — check Atlassian's end-of-life policy for the current dates.
That said, plenty of organisations are still running Bamboo Server / Data Center today and will be for years, often with hundreds of plans and deployment projects accumulated over a decade. This project exists for those teams: if you are living with Bamboo until the migration lands, this makes the day-to-day "what's deployed where, and who broke it" questions a lot cheaper to answer.
Contributions are welcome, but be aware you are building on a platform with a known sunset.
Server & projects (5)
| Tool | What it does |
|---|---|
bamboo_server_info | Bamboo server version and build info |
bamboo_health_check | Reachability and auth check |
bamboo_list_projects | List projects (paginated) |
bamboo_list_all_projects | List every project (auto-paginated) |
bamboo_get_project | Details for one project |
Plans & branches (5)
| Tool | What it does |
|---|---|
bamboo_list_plans | List all build plans |
bamboo_get_plan | Details for one plan |
bamboo_search_plans | Search plans by name |
bamboo_list_plan_branches | Branch plans for a plan |
bamboo_get_plan_branch | Details for one branch plan |
Builds (7)
| Tool | What it does |
|---|---|
bamboo_get_latest_result | Latest build result for a plan |
bamboo_list_build_results | Recent build results |
bamboo_get_build_result | One build result |
bamboo_get_build_result_expanded | Build result plus changes, artifacts, stages, metadata and log URLs |
bamboo_get_build_repositories | Repositories and commits for a build |
bamboo_get_plan_repositories | Repositories configured on a plan |
bamboo_get_build_queue | What's currently queued |
Deployments (8)
| Tool | What it does |
|---|---|
bamboo_list_deployment_projects | All deployment projects |
bamboo_list_deployment_projects_for_plan | Deployment projects linked to a build plan |
bamboo_get_deployment_project | Deployment project + its environments |
bamboo_get_environment_results | Deployment history for an environment — who, when, status, version |
bamboo_get_deployment_result | Full detail of one deployment (trigger, timing, agent) |
bamboo_list_deploy_versions | Releases/versions for a deployment project |
bamboo_get_deploy_version | One version (creator, plan branch, items) |
bamboo_get_deploy_version_status | Where a given version sits across all environments |
Plan context — the "smart" tools (6)
These are what make the server useful rather than just a REST wrapper. They read a YAML file describing *your* plan-key and environment naming conventions, so the model can go from a human reference to a Bamboo key without you spelling it out.
| Tool | What it does |
|---|---|
bamboo_resolve_plan | CHECKOUT + app → EXAMPLE-CHECKOUTAPP |
bamboo_get_deploy_status | One call: resolve plan → latest build → deployment project → filter environments → per-environment history → Bamboo UI + log links |
bamboo_explain_environment | Parse staging_network_checkout_deploy into env / module / ref / action, with descriptions |
bamboo_get_plan_type_info | Everything known about a plan type: formats, actions, modules, log patterns, custom inputs, hints |
bamboo_get_plan_context | Dump the whole context config |
bamboo_reload_context | Hot-reload the config after you edit it — no restart |
Bitbucket credential storage (4) — optional, see limitations
bitbucket_add_repo, bitbucket_get_repo, bitbucket_list_repos, bitbucket_delete_repo.
Stores repository URL/username/token in ~/.bamboo-mcp/bitbucket.json (mode 0600, tokens masked on read). Nothing else in the server consumes this — Bitbucket links in build results are built from the BITBUCKET_URL environment variable. See limitations.
35 tools total. The full surface — names, descriptions and JSON Schemas — is generated into tools.json, and bamboo-mcp --list-tools prints the same payload without needing a Bamboo connection. See the tool manifest.
MCP prompts give the model a structured plan for common workflows, so you get consistent output instead of ad-hoc tool flailing.
| Prompt | Arguments | Purpose |
|---|---|---|
deploy_status | reference, plan_type, environment, module | Deployment status with per-environment history |
who_deployed_last | reference, environment*, module, plan_type | Who shipped last, and when |
explain_environment | environment_name*, plan_type | Break an env name into its parts |
plan_type_guide | plan_type* | Full guide to a plan type |
build_investigation | build_key* | Investigate a build — changes, stages, log link |
build_repositories | build_key, plan_key | Commits and repos behind a build |
deployment_history | environment_id*, limit | Who deployed what, when, as a table |
resolve_plan | reference*, plan_type | Reference → plan key + latest build |
health_check | — | Full Bamboo health report |
stdio for desktop clients, sse (HTTP) for containers and remote access.SKIP_VALIDATION=true.BAMBOO_PROXY for corporate networks.tools.json and --list-tools, generated from the catalog and verified in CI, with a test that calls every declared tool. See Tests.Requires Go 1.23+ and a Bamboo personal access token.
git clone https://github.com/hmdmph/bamboo-mcp.git
cd bamboo-mcp make build # → bin/bamboo-mcp
export BAMBOO_URL=https://bamboo.example.com export BAMBOO_TOKEN=your_personal_access_token
./bin/bamboo-mcp # stdio mode
Getting a token: Bamboo → your profile → *Personal access tokens* → create. Read permission on the projects you care about is enough; this server never writes.
Prebuilt multi-arch images (linux/amd64, linux/arm64) are published to GHCR on every release:
docker run --rm -p 8080:8080 \
-e BAMBOO_URL=https://bamboo.example.com \ -e BAMBOO_TOKEN=your_token \ ghcr.io/hmdmph/bamboo-mcp:latest
Tags: latest, 1, 1.2, 1.2.3. Or build it yourself:
make docker-build
make docker-run-sse # detached, SSE on :8080
DOCKER_IMAGE=myregistry/bamboo-mcp DOCKER_TAG=v1.0.0 HTTP_PORT=9090 make docker-run-sse make docker-logs make docker-stop
# docker-compose.yml
services: bamboo-mcp: image: bamboo-mcp:latest ports: ["8080:8080"] environment: BAMBOO_URL: https://bamboo.example.com BAMBOO_TOKEN: your-token MCP_TRANSPORT: sse MCP_BASE_URL: http://bamboo-mcp:8080 restart: unless-stopped
Behind a corporate CA? The Dockerfile has commented-out lines near the top for copying your own PEM files into the image — drop them in certs/ and uncomment.
All configuration is environment variables. Copy .env.example to .env.dev to keep them out of git.
| Variable | Default | Purpose |
|---|---|---|
BAMBOO_URL | — | Required. Base URL, e.g. https://bamboo.example.com |
BAMBOO_TOKEN | — | Required. Personal access token (sent as Bearer) |
BAMBOO_PROXY | — | HTTP proxy, e.g. http://proxy.example.com:8080 |
BITBUCKET_URL | — | Base URL used to build source links in build results |
VERBOSE | false | Log requests/responses to stderr |
CONTEXT_FILE | ~/.bamboo-mcp/context.yaml | Plan context config |
SECURITY_FILE | ~/.bamboo-mcp/security.yaml | Security policy config |
SKIP_VALIDATION | false | Start even if Bamboo is unreachable |
MCP_TRANSPORT | stdio | stdio or sse |
MCP_HTTP_HOST | 0.0.0.0 | SSE only |
MCP_HTTP_PORT | 8080 | SSE only |
MCP_BASE_URL | http://localhost:8080 | SSE only — the externally reachable URL |
Note on logging: in stdio mode, stdout carries the MCP protocol stream. All logging goes to stderr — never add
fmt.Printlnto a handler.
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": { "bamboo": { "command": "/absolute/path/to/bamboo-mcp/bin/bamboo-mcp", "env": { "BAMBOO_URL": "https://bamboo.example.com", "BAMBOO_TOKEN": "your_personal_access_token" } } } }
claude mcp add bamboo /absolute/path/to/bin/bamboo-mcp \
-e BAMBOO_URL=https://bamboo.example.com \ -e BAMBOO_TOKEN=your_personal_access_token
Same shape as Claude Desktop, in the client's MCP settings file.
{
"mcpServers": { "bamboo": { "url": "http://your-server:8080/sse" } } }
The SSE server exposes /sse and /message. It has no authentication of its own — see limitations.
This is the part worth spending ten minutes on.
Most Bamboo estates encode meaning in their plan keys and environment names — something like PROJ-CHECKOUTAPP with environments called staging_network_checkout_deploy. Out of the box an AI assistant has no idea what any of that means. context.yaml tells it.
On first run a starter file is written to ~/.bamboo-mcp/context.yaml. It ships deliberately generic placeholders — the feature only becomes useful once you describe your own conventions. A fully commented, worked example lives in examples/context.yaml.
ตัดมาแค่ช่วงต้น อ่านต่อใน repo