나는 Bitbucket CLI를 만들었고, 그것이 CLI가 AI 에이전트를 위해 MCP 서버보다 낫다는 것을 확신시켰다
Source: Dev.to

개요
GitHub에는 gh가 있습니다. GitLab에는 glab가 있습니다. Bitbucket Cloud에는…?
그것은 bb 라고 불립니다.
기본 명령
bb pr list # 열려 있는 PR, 최신 순
bb pr view 42 # 상세 정보, 리뷰어, 상태 — 브라우저 없이
bb pr diff 42 # 원시 diff, less / delta / 기타와 파이프 가능
bb pr merge 42 # 병합, 스쿼시, 혹은 fast‑forward
bb pipeline wait # 현재 빌드가 끝날 때까지 대기
왜 CLI가 AI 에이전트를 위한 MCP 서버보다 우수한가
1. 도구 스키마가 매 턴마다 컨텍스트를 소모한다
MCP 서버는 도구를 JSON 스키마 형태로 광고하고, 이 스키마가 매 메시지마다 모델 컨텍스트에 삽입됩니다. 도구가 12개면 스키마도 12개, 매 턴마다. CLI는 --help를 통해 한 번만 광고하고, 에이전트는 그 형태를 기억합니다. 토큰을 한 번만 쓰면 되며, 영원히 쓰지 않아도 됩니다.
2. 쉘은 범용 도구 프로토콜이다
Claude Code, Cursor, Aider, Codex 등 모든 에이전트 프레임워크는 이미 bash 실행 방법을 알고 있습니다. bb pr view 42는 설치하는 날부터 모든 도구에서 별도 통합 코드 없이 바로 동작합니다. MCP는 MCP와 통신하는 클라이언트를 필요로 하며, 이는 항상 하위 프로세스로 동작하던 것을 비정형적으로 결합시킵니다.
3. 조합은 자유롭다
bb pr list --output-style ai | grep OPEN | head -5
bb pipeline latest --output-style ai | jq -r .status
bb pr diff 42 | wc -l
에이전트는 파이프, 필터, 카운트, 체이닝을 모두 기존에 알고 있는 원시 명령어만으로 할 수 있습니다. MCP 도구는 봉인된 함수 호출이라 grep으로 응답을 검색하거나 jq에 파이프할 수 없습니다. 모든 슬라이스와 다이스는 새로운 도구나 새로운 인자를 추가해야 합니다.
4. 디버깅이 가능하다
에이전트가 이상한 동작을 하면, 정확히 실행된 명령을 직접 실행해 보고 동일한 출력을 확인할 수 있습니다. MCP에서는 에이전트가 서버가 만든 구조화된 페이로드를 보게 되고, 로그를 통해 무슨 일이 있었는지 재구성해야 합니다.
5. 배포가 해결된다
npm install -g @hugo-hebert/bbucket-cli 하면 끝입니다. 설정 파일도 없고, 서버 프로세스도 없으며, “툴을 인식하도록 편집기를 재시작하세요” 같은 절차도 없습니다. 셸이 툴을 인식하는 순간 에이전트도 바로 사용할 수 있습니다.
CLI가 에이전트에게 빚진 한 가지
기존 CLI는 기본 출력이 모델에 적합하지 않은 경우가 많습니다. 박스‑드로잉 문자와 ANSI 색상이 포함되어 있기 때문이죠. 그래서 모든 bb 명령은 기본 모드와 --json 모드 외에 세 번째 모드인 --output-style ai 를 제공합니다:
bb pr list --output-style ai
출력 (탭 구분, 색상 없음, 테두리 없음):
42 OPEN Fix auth token refresh hugo
41 MERGED Add env variable endpoint sara
bb option --output-style ai 로 기본값으로 설정하면 에이전트가 한 번에 출력을 읽을 수 있습니다. 이것이 전체 적응 방법—서버도, 스키마도, 프로토콜도 없이—출력 모드만으로 MCP 서버가 제공하는 대부분을 얻는 방법입니다.
사용해 보기
npm install -g @hugo-hebert/bbucket-cli
bb auth
bb pr list
- Repo:
- Docs:
