Claude Code에서 Atlassian(Jira/Confluence/Bitbucket), Postman, Swagger를 쓸 수 있게 해주는 MCP 서버 + CLI 5종 모음.
| 폴더 | 설명 | 주요 기능 |
|---|---|---|
jira-mcp |
Jira Cloud 티켓 | 티켓 조회/검색(JQL), 스프린트·주간 요약 |
confluence-mcp |
Confluence Cloud 페이지 | 페이지 검색(CQL), 스페이스/하위 페이지 탐색 |
bitbucket-mcp |
Bitbucket Cloud PR | PR 목록/조회, CodeRabbit 리뷰 추출 |
postman-mcp |
Postman Collection | 컬렉션 탐색, 실제 API 호출 |
swagger-mcp |
OpenAPI/Swagger | 스펙 탐색, 엔드포인트 호출 |
각 MCP의 상세 구조·구현은 해당 폴더의 ARCHITECTURE.md 참조.
- 런타임: Node.js 20+ (네이티브
fetch) - 언어: TypeScript 5.7+, ESM
- MCP SDK:
@modelcontextprotocol/sdk^1.12.1 - 빌드:
tsc단독 (번들러 없음) - 외부 의존성: MCP SDK 하나 — axios/commander 등 미사용
git clone <이 레포 URL> ~/.claude/mcp-servers
cd ~/.claude/mcp-servers
# 5개 MCP 전부 의존성 설치 + 빌드
./setup-all.sh
# MCP마다 토큰 입력 → Claude Code에 등록
# (필요한 것만 setup/register 하면 됩니다)
cd jira-mcp && node dist/cli.js setup && node dist/cli.js register && cd ..
cd confluence-mcp && node dist/cli.js setup && node dist/cli.js register && cd ..
cd bitbucket-mcp && node dist/cli.js setup && node dist/cli.js register && cd ..
cd postman-mcp && node dist/cli.js setup && node dist/cli.js register && cd ..
cd swagger-mcp && node dist/cli.js setup && node dist/cli.js register && cd ..주의: 클론 위치는 자유입니다(~/.claude/mcp-servers/가 아니어도 됨). 각 register가 현재 위치를 기반으로 Claude Code에 절대경로를 등록합니다.
등록 후 Claude Code를 재시작하면 mcp__jira__get_ticket, mcp__bitbucket__get_coderabbit_review 등 도구가 노출됩니다.
각 MCP의 config.json (chmod 0600)에 평문 저장. .gitignore에 포함되어 있어 커밋되지 않습니다.
register를 실행하면 Claude Code의 ~/.claude.json에 환경변수로 복사되어, 이후엔 서버 프로세스가 env로 받습니다. 즉 config.json은 setup → register 흐름에서만 쓰는 임시 저장소에 가깝습니다.
기기별로 토큰이 다르므로 새 기기에서는 setup을 다시 실행해야 합니다.
모든 MCP에 공통:
node dist/cli.js setup # 자격증명 대화형 입력 → config.json 에 0600 저장
node dist/cli.js register # claude mcp add --env ... 실행
node dist/cli.js status # 현재 설정 상태 확인
node dist/cli.js help # 도움말npm link 하면 패키지 이름(jira-mcp, bitbucket-mcp 등)으로 전역에서 호출 가능:
cd jira-mcp && npm link
# 이후: jira-mcp setup / jira-mcp register5개 MCP 모두 같은 골격을 따릅니다:
src/
├── index.ts # MCP stdio 서버 (Server + StdioServerTransport)
├── cli.ts # setup / register / status + 기타
└── <domain>-client.ts # REST 클라이언트
MCP 서버는 @modelcontextprotocol/sdk의 표준 패턴:
import { Server } from '@modelcontextprotocol/sdk/server/index.js';
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
import { CallToolRequestSchema, ListToolsRequestSchema } from '@modelcontextprotocol/sdk/types.js';
const server = new Server(
{ name: 'xxx-mcp', version: '1.0.0' },
{ capabilities: { tools: {} } }
);
server.setRequestHandler(ListToolsRequestSchema, async () => ({ tools: [...] }));
server.setRequestHandler(CallToolRequestSchema, async (req) => {
const { name, arguments: args } = req.params;
// switch → 도구별 처리
return { content: [{ type: 'text', text: result }] };
});
await server.connect(new StdioServerTransport());설정 로드 우선순위:
환경변수 (register가 주입) → config.json → process.exit(1)
coderabbit-triage— bitbucket-mcp를 소비해 PR의 CodeRabbit 리뷰를 우선순위 매겨 정리하는 Claude Code skill.
MIT