본문 바로가기
IT

AI Orchestration MCP - zen

by 조병희 2025. 8. 25.

https://github.com/BeehiveInnovations/zen-mcp-server?tab=readme-ov-file

 

GitHub - BeehiveInnovations/zen-mcp-server: The power of Claude Code + [Gemini / OpenAI / Grok / OpenRouter / Ollama / Custom Mo

The power of Claude Code + [Gemini / OpenAI / Grok / OpenRouter / Ollama / Custom Model / All Of The Above] working as one. - BeehiveInnovations/zen-mcp-server

github.com

 

Claude를 유료 결재 한뒤, 기존에 쓰고 있던 Chatgpt와 Gemini를 연결할 수 없을까 고민하며 만들던 중 이 역시도 누군가가 만들었다.

zen을 우선 써보고, 목적에 맞게 사용가능한지 검증 후 기존 개발을 계속할지, 그만 둘지 결정하기로 했다.

Zen 도구들로 다양한 고급 작업들을 수행할 수 있습니다! 

🤝 협업 및 사고 도구

  • zen:chat - 브레인스토밍, 아이디어 검증, 협업적 사고 파트너
  • zen:thinkdeep - 복잡한 문제의 다단계 조사 및 추론 (아키텍처 결정, 복잡한 버그 등)
  • zen:planner - 복잡한 프로젝트 계획 수립 (시스템 설계, 마이그레이션 전략 등)
  • zen:consensus - 여러 모델의 의견을 종합한 합의 도출 (기술 선택, 아키텍처 결정 등)

🔍 코드 분석 도구

  • zen:codereview - 체계적인 코드 리뷰 (품질, 보안, 성능, 아키텍처)
  • zen:analyze - 종합적인 코드 분석 (아키텍처, 성능, 유지보수성)
  • zen:tracer - 코드 실행 흐름 추적 또는 의존성 매핑
  • zen:refactor - 리팩토링 기회 분석 (코드 냄새 탐지, 개선 방안)

🛠️ 개발 지원 도구

  • zen:debug - 체계적인 디버깅 및 근본 원인 분석
  • zen:testgen - 포괄적인 테스트 코드 생성 (엣지 케이스 포함)
  • zen:docgen - 코드 문서화 자동 생성
  • zen:precommit - Git 커밋 전 변경사항 검증

🔐 보안 도구

  • zen:secaudit - 종합적인 보안 감사 (OWASP Top 10, 컴플라이언스 등)

🧠 메타 도구

  • zen:challenge - 비판적 사고 강화 (의견에 도전받을 때 심층 분석)
  • zen:listmodels - 사용 가능한 AI 모델 확인
  • zen:version - 서버 버전 및 설정 정보

주요 특징들:

  • 다중 단계 분석: 복잡한 문제를 단계별로 체계적 분석
  • 전문가 검증: 다른 AI 모델을 통한 결과 검증
  • 웹 검색 지원: 최신 정보 및 모범 사례 검색
  • 파일 분석: 실제 코드 파일들을 직접 분석
  • 연속 대화: continuation_id로 이전 분석 이어가기

 

// Add to ~/.claude/settings.json or .mcp.json
{
  "mcpServers": {
    "zen": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/BeehiveInnovations/zen-mcp-server.git", "zen-mcp-server"],
      "env": {
        "PATH": "/usr/local/bin:/usr/bin:/bin:/opt/homebrew/bin:~/.local/bin",
        "GEMINI_API_KEY": "your-key-here",
        "OPENAI_API_KEY": "your-key-here"
      }
    }
  }
}

만약 실행시 MCP Server 어쩌고 에러가난다면. 

2025-08-25T02:23:54.352Z [zen] [info] Initializing server... { metadata: undefined }
2025-08-25T02:23:54.366Z [zen] [info] Using MCP server command: uvx with args and path: {
  metadata: {
    args: [
      '--from',
      'git+https://github.com/BeehiveInnovations/zen-mcp-server.git',
      'zen-mcp-server',
      [length]: 3
    ],
    paths: [
      '/usr/local/bin',
      '/opt/homebrew/bin',
      '/usr/bin',
      '/usr/bin',
      '/bin',
      '/usr/sbin',
      '/sbin',
      [length]: 7
    ]
  }
} %o
2025-08-25T02:23:54.367Z [zen] [error] spawn uvx ENOENT {
  metadata: {
    context: 'connection',
    stack: 'Error: spawn uvx ENOENT\n' +
      '    at ChildProcess._handle.onexit (node:internal/child_process:285:19)\n' +
      '    at onErrorNT (node:internal/child_process:483:16)\n' +
      '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)'
  }
}
2025-08-25T02:23:54.367Z [zen] [error] spawn uvx ENOENT {
  metadata: {
    stack: 'Error: spawn uvx ENOENT\n' +
      '    at ChildProcess._handle.onexit (node:internal/child_process:285:19)\n' +
      '    at onErrorNT (node:internal/child_process:483:16)\n' +
      '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)'
  }
}
2025-08-25T02:23:54.368Z [zen] [info] Server transport closed { metadata: undefined }
2025-08-25T02:23:54.368Z [zen] [info] Client transport closed { metadata: undefined }
2025-08-25T02:23:54.369Z [zen] [info] Server transport closed unexpectedly, this is likely due to the process exiting early. If you are developing this MCP server you can add output to stderr (i.e. `console.error('...')` in JavaScript, `print('...', file=sys.stderr)` in python) and it will appear in this log. { metadata: undefined }
2025-08-25T02:23:54.369Z [zen] [error] Server disconnected. For troubleshooting guidance, please visit our [debugging documentation](https://modelcontextprotocol.io/docs/tools/debugging) { metadata: { context: 'connection', stack: undefined } }

대부분 uvx 를 찾지 못해서 발생한다. 설치가 안되어 있다면 설치를 하고 만약 설치가 되어 있다면, which 명령어로 uvx 위치를 찾아서 파일명을 빼고 경로를 넣어주면 된다. 

which uvx
/opt/anaconda3/bin/uvx
    "zen": {
      "command": "uvx",
      "args": ["--from", "git+https://github.com/BeehiveInnovations/zen-mcp-server.git", "zen-mcp-server"],
      "env": {
        "PATH": "/usr/local/bin:/usr/bin:/bin:/opt/homebrew/bin:/opt/anaconda3/bin",
        "GEMINI_API_KEY": ...

연결 확인!

짧은 후기로는 직접 만드는 것보다는 아무래도 여러가지 설정으로인해 토큰을 많이 먹는듯 하다.

댓글