コンテンツにスキップ
Zenn Dev Owayo Articles E4c4496e6d79e7

GitLabと連携するMCP Serverを作った

  • URL: https://zenn.dev/owayo/articles/e4c4496e6d79e7
  • 日付: 2026-06-26
  • Tier: Tier 3
  • 要旨: GitLabとAIアシスタント(Claude/Cursor等)を連携させるMCP Serverを自作して公開したという記事。パイプライン失敗時のコンソール出力取得、MRの未解決コメント取得、MRの変更差分取得(未コミット変更を含むローカル最新状態)という3機能を提供する。社内でCursor Businessを導入するにあたり、開発効率化を目的として開発された。uvを使ったPython実装で、Claude for DesktopとCursorの両方への接続設定が記載されている。

詳細

  • リポジトリ: github.com/owayo/gitlab-mcp-server
  • 提供する3機能:
    1. get_pipeline_failed_jobs(): 失敗ジョブのコンソール出力(ジョブ名・ステータス・詳細ログ)を取得してAIが修正
    2. get_review_comments(): MRの未解決コメント(解決済み・ファイル非紐付けは除外)を取得してAIが修正
    3. get_review_changes(): MRのベースコミットから現在のローカル最新状態までの差分を取得(未コミット変更を含む点が特徴)
  • 実装: Python + uv。GitLab APIアクセストークン(read_api権限)が必要
  • Claude for Desktop設定: claude_desktop_config.jsonにmcpServersセクションを追加
  • Cursor設定: プロジェクトの.cursor/mcp.jsonに定義
  • 現状の課題: 「レビューして」と依頼するとパイプライン情報取得・指摘取得・レビューの全機能が動いてしまい、機能単体での呼び出しができない(改善検討中)