GitLabのMCPサーバを使ってみる

はじめに

業務で使ってみたいのでGitLabのMCPサーバを試してみる。

環境

Windows 11 Professional
WSL2 Ubuntu 24.04 LTS
Copilot MCP
Claude Desktop

GitLab MCP

下記を見ていたら、server-gitlabというMCPサーバがあるようなのでこれを試してみる。

準備

GitLab CEのローカルサーバを立てる

※今回はローカルのGitLabを操作するのでローカルに立てておく

GitLabCEをDockerで構築する でやった内容でローカルにGitLabのサーバを立てておく。

セットアップ完了

setup-gitlab-01

後程使うので、Personal Access Tokenを作成しておく。
setup-gitlab-02

Claude Desktopのインストール

MCPのクライアントはClaude Desktopを使うのでインストールしておく。

GitLab MCPサーバの構築

上記に入っているようなので、まずはリポジトリをクローンする。

git clone https://github.com/modelcontextprotocol/servers.git

クローン後に、servers/src/gitlab 以下にある GitLabのMCPサーバをDockerビルドする。

docker build -t vonwig/gitlab:mcp -f src/gitlab/Dockerfile .

Claude Desktopの設定

  1. 「ファイル」→「設定」を選択する。
    setup-gitlab-01

  2. 「開発者」→「構成を編集」を選択する。
    setup-gitlab-02

  3. claude_desktop_config.json を開く。
    setup-gitlab-03

  4. 下記に記載の通りに、jsonを追加する。
    https://github.com/modelcontextprotocol/servers/tree/main/src/gitlab

{
  "mcpServers": { 
    "gitlab": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "GITLAB_PERSONAL_ACCESS_TOKEN",
        "-e",
        "GITLAB_API_URL",
        "mcp/gitlab"
      ],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>",
        "GITLAB_API_URL": "https://gitlab.com/api/v4"
      }
    }
  }
}
項目名設定値
GITLAB_PERSONAL_ACCESS_TOKEN取得したトークン
GITLAB_API_URLhttps://gitlab.example.com/api/v4

とした。

  1. Claude Desktopを再起動する。

  2. 再起動後に「ファイル」→「設定」→「開発者」で 作成したMCPサーバがrunningとなっていればOK

Claude Desktop + MCPサーバでGitLabを操作する

GitLabにあるプロジェクト一覧を参照する

GitLabにあるプロジェクト一覧を教えてください

「このチャットで許可」を選択する。 setup-gitlab-04

リポジトリを検索するために、search_repositories 関数を使用します。gitlabのsearch_repositoriesからの結果を表示(ローカル){
  `search`: `*`,
  `per_page`: 100
}Error executing code: MCP error -32603: GitLab API error: Unauthorized申し訳ありません。現在、GitLabにアクセスする権限がないようです。リポジトリ一覧を表示するには、適切な認証情報が必要です。通常、これには以下のいずれかが必要です:

GitLabのアクセストークン
特定のプロジェクトIDまたはパス
適切な認証情報を使用した接続

GitLab管理者に連絡して、必要な認証情報を確認してください。特に必要な情報は:

GitLabのURL
アクセストークン
プロジェクトの詳細情報

これらの情報を入手できれば、プロジェクト一覧を正確に取得できます。再試行Claudeは間違えることがあります。回答内容を必ずご確認ください。

※ローカルのDockerに構築したので、gitlab.example.comが名前解決できなくてだめになっていそう。
まずは、MCPサーバからgitlab.example.comにアクセスできるか試してみる。

試行錯誤した結果、host.docker.internalで接続させることにした。

以下、修正したclaude_desktop_config.jsonとなる。

claude_desktop_config.json
{
  "mcpServers": { 
    "gitlab": {
      "command": "docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "-e",
        "GITLAB_PERSONAL_ACCESS_TOKEN",
        "-e",
        "GITLAB_API_URL",
        "mcp/gitlab"
      ],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "<TOKEN>",
        "GITLAB_API_URL": "http://host.docker.internal/api/v4"
      }
    }
  }
}

GitLabにプロジェクトを作成する

GitLabにあるプロジェクトを作成してください。
プロジェクトを作成するために、create_repository 関数を使用します。gitlabのcreate_repositoryからの結果を表示(ローカル){
  `name`: `my-first-project`,
  `visibility`: `public`,
  `description`: `初めて作成するGitLabプロジェクトです。`,
  `initialize_with_readme`: true
}Error executing code: MCP error -32603: Invalid arguments: fork: Required申し訳ありませんが、プロジェクトを作成する際にエラーが発生しました。エラーメッセージから、プロジェクト作成には追加の情報が必要であることが示唆されています。
具体的には、fork パラメータが必要とされているようです。GitLabのAPIでプロジェクトを作成するには、以下の情報が必要です:

プロジェクト名
可視性設定
フォークに関する情報

システム管理者または担当者に以下の点を確認してください:

GitLabインスタンスの正確な設定
プロジェクト作成に必要な追加パラメータ
フォークに関する具体的な要件

現時点では、必要な設定情報が不足しているため、プロジェクトを作成できません。追加の情報や設定が必要です。

とはいえ、作れているみたい。

setup-gitlab-05

参考

おわりに

Claude Desktop + GitLab MCPを使ってみた。
なんかちょいちょい失敗するので色々試してみることにする。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。