GitLab MCP Server

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Allows interaction with GitLab repositories including project management, file operations, branch creation, issue tracking, merge request management, repository forking, and project search capabilities through the GitLab API

GitLab MCP サーバー

GitLab API 用の MCP サーバー。プロジェクト管理、ファイル操作などが可能になります。

特徴

  • 自動ブランチ作成: ファイルを作成/更新したり変更をプッシュしたりするときに、ブランチが存在しない場合は自動的に作成されます。
  • 包括的なエラー処理: 一般的な問題に対する明確なエラーメッセージ
  • Git 履歴の保存: 強制プッシュなしで適切な Git 履歴を維持する操作
  • バッチ操作: 単一ファイルと複数ファイルの操作の両方をサポート

ツール

  1. create_or_update_file
    • プロジェクト内の単一のファイルを作成または更新する
    • 入力:
      • project_id (文字列): プロジェクトIDまたはURLエンコードされたパス
      • file_path (文字列): ファイルを作成/更新するパス
      • content (文字列): ファイルの内容
      • commit_message (文字列): コミットメッセージ
      • branch (文字列): ファイルを作成/更新するブランチ
      • previous_path (オプションの文字列): 移動/名前変更するファイルのパス
    • 戻り値: ファイルの内容とコミットの詳細
  2. push_files
    • 1回のコミットで複数のファイルをプッシュする
    • 入力:
      • project_id (文字列): プロジェクトIDまたはURLエンコードされたパス
      • branch (文字列): プッシュ先のブランチ
      • files (配列): プッシュするファイル。それぞれfile_pathcontentを持つ。
      • commit_message (文字列): コミットメッセージ
    • 戻り値: 更新されたブランチ参照
  3. search_repositories
    • GitLabプロジェクトを検索
    • 入力:
      • search (文字列): 検索クエリ
      • page (オプションの数値):ページ番号
      • per_page (オプションの数値):1ページあたりの結果数(デフォルトは20)
    • 返されるもの: プロジェクト検索結果
  4. create_repository
    • 新しいGitLabプロジェクトを作成する
    • 入力:
      • name (文字列): プロジェクト名
      • description (オプションの文字列): プロジェクトの説明
      • visibility (オプションの文字列): 'private'、'internal'、または 'public'
      • initialize_with_readme (オプションのブール値): README で初期化する
    • 戻り値: 作成されたプロジェクトの詳細
  5. get_file_contents
    • ファイルまたはディレクトリの内容を取得する
    • 入力:
      • project_id (文字列): プロジェクトIDまたはURLエンコードされたパス
      • file_path (文字列): ファイル/ディレクトリへのパス
      • ref (オプションの文字列): コンテンツを取得するブランチ/タグ/コミット
    • 戻り値: ファイル/ディレクトリの内容
  6. create_issue
    • 新しい問題を作成する
    • 入力:
      • project_id (文字列): プロジェクトIDまたはURLエンコードされたパス
      • title (文字列): 問題のタイトル
      • description (オプションの文字列): 問題の説明
      • assignee_ids (オプションの数値[]): 割り当てるユーザーID
      • labels (オプションの文字列[]):追加するラベル
      • milestone_id (オプションの数値): マイルストーンID
    • 返品: 作成された問題の詳細
  7. create_merge_request
    • 新しいマージリクエストを作成する
    • 入力:
      • project_id (文字列): プロジェクトIDまたはURLエンコードされたパス
      • title (文字列): MRタイトル
      • description (オプションの文字列):MRの説明
      • source_branch (文字列): 変更を含むブランチ
      • target_branch (文字列): マージ先のブランチ
      • draft (オプションのブール値):ドラフトMRとして作成
      • allow_collaboration (オプションのブール値):上流メンバーからのコミットを許可する
    • 戻り値: 作成されたマージリクエストの詳細
  8. fork_repository
    • プロジェクトをフォークする
    • 入力:
      • project_id (文字列): プロジェクトIDまたはURLエンコードされたパス
      • namespace (オプションの文字列): フォークする名前空間
    • 戻り値: フォークされたプロジェクトの詳細
  9. create_branch
    • 新しいブランチを作成する
    • 入力:
      • project_id (文字列): プロジェクトIDまたはURLエンコードされたパス
      • branch (文字列): 新しいブランチの名前
      • ref (オプションの文字列): 新しいブランチのソースブランチ/コミット
    • 戻り値: 作成されたブランチ参照

設定

個人アクセストークン

適切な権限を持つGitLab 個人アクセス トークンを作成します

  • GitLabのユーザー設定 > アクセストークンに移動します
  • 必要なスコープを選択します。
    • 完全なAPIアクセスのためのapi
    • 読み取り専用アクセス用のread_api
    • リポジトリ操作用のread_repositorywrite_repository
  • トークンを作成し、安全に保存する

Claude Desktopでの使用

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": "<YOUR_TOKEN>", "GITLAB_API_URL": "https://gitlab.com/api/v4" // Optional, for self-hosted instances } } } }

NPX

{ "mcpServers": { "gitlab": { "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-gitlab" ], "env": { "GITLAB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>", "GITLAB_API_URL": "https://gitlab.com/api/v4" // Optional, for self-hosted instances } } } }

建てる

Dockerビルド:

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

環境変数

  • GITLAB_PERSONAL_ACCESS_TOKEN : GitLab個人アクセストークン(必須)
  • GITLAB_API_URL : GitLab API のベース URL (オプション、デフォルトはhttps://gitlab.com/api/v4 )

ライセンス

このMCPサーバーはMITライセンスに基づいてライセンスされています。つまり、MITライセンスの条件に従って、ソフトウェアを自由に使用、改変、配布することができます。詳細については、プロジェクトリポジトリのLICENSEファイルをご覧ください。

You must be authenticated.

A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

GitLab API 用の MCP サーバー。プロジェクト管理、ファイル操作などが可能になります。

  1. Features
    1. Tools
      1. Setup
        1. Personal Access Token
        2. Usage with Claude Desktop
        3. NPX
      2. Build
        1. Environment Variables
          1. License
            ID: mim928vohs