gitlab mcp

by zereight
Verified
MIT License
1,270
57
  • Linux
  • Apple

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 creating/updating files, pushing multiple files, searching repositories, creating repositories, getting file contents, creating issues, creating merge requests, forking repositories, creating branches, getting merge request details and diffs, updating merge requests, and creating notes/comments.

より優れたGitLab MCPサーバー

@zereight/mcp-gitlab

GitLab MCP(モデルコンテキストプロトコル)サーバー。オリジナルのGitLab MCPサーバーに対するバグ修正と改善が含まれています。

使用法

Claude App、Cline、Roo Code、Cursor と併用

Claude アプリで使用する場合は、API キーと URL を直接設定する必要があります。

{ "mcpServers": { "GitLab communication server": { "command": "npx", "args": ["-y", "@zereight/mcp-gitlab"], "env": { "GITLAB_PERSONAL_ACCESS_TOKEN": "your_gitlab_token", "GITLAB_API_URL": "your_gitlab_api_url", "GITLAB_READ_ONLY_MODE": "true" } } } }

環境変数

  • GITLAB_PERSONAL_ACCESS_TOKEN : GitLab 個人アクセス トークン。
  • GITLAB_API_URL : GitLab API の URL。(デフォルト: https://gitlab.com/api/v4 )
  • GITLAB_READ_ONLY_MODE : 「true」に設定すると、サーバーは読み取り専用操作のみを公開するように制限されます。セキュリティ強化や書き込みアクセスが不要な場合に便利です。また、カーソルと併用する場合や、ツール数が40個に制限されている場合にも便利です。

ツール 🛠️

  1. create_or_update_file
    • GitLab プロジェクトで単一のファイルを作成または更新します。📝
    • 入力:
      • project_id (文字列): プロジェクトIDまたは名前空間/プロジェクトパス
      • file_path (文字列): ファイルを作成/更新するパス
      • content (文字列): ファイルの内容
      • commit_message (文字列): コミットメッセージ
      • branch (文字列): ファイルを作成/更新するブランチ
      • previous_path (オプションの文字列): ファイル名を変更する際の前のファイルパス
    • 戻り値: ファイルの内容とコミットの詳細
  2. push_files
    • 1 回のコミットで複数のファイルをプッシュします。📤
    • 入力:
      • project_id (文字列): プロジェクトIDまたは名前空間/プロジェクトパス
      • branch (文字列): プッシュ先のブランチ
      • files (配列): プッシュするファイルの配列。各ファイルにはfile_pathcontentプロパティがあります。
      • commit_message (文字列): コミットメッセージ
    • 戻り値: 更新されたブランチ参照
  3. search_repositories
    • GitLab プロジェクトを検索します。🔍
    • 入力:
      • search (文字列): 検索クエリ
      • page (オプションの数値):ページ番号(デフォルト:1)
      • per_page (オプションの数値):1ページあたりの結果数(デフォルト:20、最大:100)
    • 返されるもの: プロジェクト検索結果
  4. create_repository
    • 新しい GitLab プロジェクトを作成します。➕
    • 入力:
      • name (文字列): プロジェクト名
      • description (オプションの文字列): プロジェクトの説明
      • visibility (オプションの文字列):プロジェクトの可視性レベル(公開、非公開、内部)
      • initialize_with_readme (オプションのブール値): README で初期化する
    • 戻り値: 作成されたプロジェクトの詳細
  5. get_file_contents
    • ファイルまたはディレクトリの内容を取得します。📂
    • 入力:
      • project_id (文字列): プロジェクトIDまたは名前空間/プロジェクトパス
      • file_path (文字列): ファイル/ディレクトリへのパス
      • ref (オプションの文字列): ブランチ、タグ、またはコミット SHA (デフォルト: デフォルトブランチ)
    • 戻り値: ファイル/ディレクトリの内容
  6. create_issue
    • 新しい問題を作成します。🐛
    • 入力:
      • project_id (文字列): プロジェクトIDまたは名前空間/プロジェクトパス
      • title (文字列): 問題のタイトル
      • description (文字列): 問題の説明
      • assignee_ids (オプションの数値[]): 担当者IDの配列
      • milestone_id (オプションの数値): マイルストーンID
      • labels (オプションの文字列[]):ラベルの配列
    • 戻り値: 作成された問題の詳細
  7. create_merge_request
    • 新しいマージリクエストを作成します。🚀
    • 入力:
      • project_id (文字列): プロジェクトIDまたは名前空間/プロジェクトパス
      • title (文字列): マージリクエストのタイトル
      • description (文字列): マージリクエストの説明
      • source_branch (文字列): 変更のあるブランチ
      • target_branch (文字列): マージ先のブランチ
      • allow_collaboration (オプションのブール値): 共同作業者がコミットをソースブランチにプッシュできるようにする
      • draft (オプションのブール値): 下書きマージリクエストとして作成する
    • 戻り値: 作成されたマージリクエストの詳細
  8. fork_repository
    • プロジェクトをフォークします。🍴
    • 入力:
      • project_id (文字列): プロジェクトIDまたはフォークする名前空間/プロジェクトパス
      • namespace (オプションの文字列): フォークする名前空間 (デフォルト: ユーザー名前空間)
    • 戻り値: フォークされたプロジェクトの詳細
  9. create_branch
    • 新しいブランチを作成します。🌿
    • 入力:
      • project_id (文字列): プロジェクトIDまたは名前空間/プロジェクトパス
      • name (文字列): 新しいブランチ名
      • ref (オプションの文字列): ブランチを作成するための参照 (ブランチ、タグ、コミット SHA、デフォルト: デフォルトブランチ)
    • 戻り値: 作成されたブランチ参照
  10. get_merge_request
  • マージリクエストの詳細を取得します。ℹ️
  • 入力:
    • project_id (文字列): プロジェクトIDまたは名前空間/プロジェクトパス
    • merge_request_iid (数値): マージリクエストIID
  • 戻り値: マージリクエストの詳細
  1. get_merge_request_diffs
  • マージリクエストの変更(差分)を取得します。 diff
  • 入力:
    • project_id (文字列): プロジェクトIDまたは名前空間/プロジェクトパス
    • merge_request_iid (数値): マージリクエストIID
    • view (オプションの文字列): 差分ビューの種類 ('inline' または 'parallel')
  • 戻り値: マージリクエストの差分情報の配列
  1. update_merge_request
  • マージリクエストを更新します。🔄
  • 入力:
    • project_id (文字列): プロジェクトIDまたは名前空間/プロジェクトパス
    • merge_request_iid (数値): マージリクエストIID
    • title (オプションの文字列):新しいタイトル
    • description (文字列): 新しい説明
    • target_branch (オプションの文字列): 新しいターゲットブランチ
    • state_event (オプションの文字列): マージリクエストの状態変更イベント ('close'、'reopen')
    • remove_source_branch (オプションのブール値): マージ後にソースブランチを削除する
    • allow_collaboration (オプションのブール値): 共同作業者がコミットをソースブランチにプッシュできるようにする
  • 戻り値: 更新されたマージリクエストの詳細
  1. create_note
  • 問題またはマージリクエストに新しいメモ(コメント)を作成します。💬
  • 入力:
    • project_id (文字列): プロジェクトIDまたは名前空間/プロジェクトパス
    • noteable_type (文字列): 注目に値するものの種類 ("issue" または "merge_request")
    • noteable_iid (数値): 問題またはマージリクエストのIID
    • body (文字列):メモの内容
  • 戻り値: 作成されたメモの詳細
  1. list_projects
  • 豊富なフィルタリングオプションでアクセス可能なプロジェクトを一覧表示 📊
  • 入力:
    • 検索/フィルタリング:
      • search
      • owned
      • membership
      • archived
      • visibility
    • 機能フィルタリング:
      • with_issues_enabled
      • with_merge_requests_enabled
    • ソート:
      • order_by
      • sort
    • アクセス制御:
      • min_access_level
    • ページ番号:
      • page
      • per_page
      • simple
  • 戻り値: プロジェクトの配列
  1. list_labels
  • フィルタリングオプションを使用してプロジェクトのすべてのラベルを一覧表示します 🏷️
  • 入力:
    • project_id (文字列): プロジェクトIDまたはパス
    • with_counts (オプション): 問題とマージリクエストの数を含める
    • include_ancestor_groups (オプション): 祖先グループを含める
    • search (オプション):キーワードでラベルをフィルタリング
  • 戻り値: ラベルの配列
  1. get_label
  • プロジェクトから単一のラベルを取得する
  • 入力:
    • project_id (文字列): プロジェクトIDまたはパス
    • label_id (数値/文字列): ラベルIDまたは名前
    • include_ancestor_groups (オプション): 祖先グループを含める
  • 戻り値: ラベルの詳細
  1. create_label
  • オブジェクトに新しいラベルを作成する 🏷️➕
  • 入力:
    • project_id (文字列): プロジェクトIDまたはパス
    • name (文字列): ラベル名
    • color (文字列): 16進形式の色 (例: "#FF0000")
    • description (オプション): ラベルの説明
    • priority (オプション): ラベルの優先度
  • 戻り値: 作成されたラベルの詳細
  1. update_label
  • プロジェクト内の既存のラベルを更新する 🏷️✏️
  • 入力:
    • project_id (文字列): プロジェクトIDまたはパス
    • label_id (数値/文字列): ラベルIDまたは名前
    • new_name (オプション): 新しいラベル名
    • color (オプション): 16進形式の新しい色
    • description (オプション): 新しい説明
    • priority (オプション): 新しい優先度
  • 返品: ラベルの詳細を更新しました
  1. delete_label
  • プロジェクトからラベルを削除する 🏷️❌
  • 入力:
    • project_id (文字列): プロジェクトIDまたはパス
    • label_id (数値/文字列): ラベルIDまたは名前
  • 戻り値: 成功メッセージ
  1. list_group_projects
  • GitLab グループ内のすべてのプロジェクトを一覧表示します。📂
  • 入力:
    • group_id (文字列): プロジェクトIDまたはnamespace/project_path
    • フィルタリングオプション:
      • include_subgroups (オプションのブール値): サブグループのプロジェクトを含める
      • search (オプションの文字列): プロジェクトをフィルタリングするための検索語
      • archived (オプションのブール値): アーカイブされたプロジェクトのフィルター
      • visibility (オプションの文字列):プロジェクトの可視性(パブリック/内部/プライベート)でフィルタリング
      • with_programming_language (オプションの文字列): プログラミング言語でフィルタリング
      • starred (オプションのブール値): スター付きのプロジェクトでフィルタリング
    • 機能フィルタリング:
      • with_issues_enabled (オプションのブール値): 問題機能が有効になっているプロジェクトをフィルタリングします
      • with_merge_requests_enabled (オプションのブール値): マージリクエスト機能が有効になっているプロジェクトをフィルタリングします
      • min_access_level (オプションの数値):最小アクセスレベルでフィルタリングします
    • ページ番号:
      • page (オプションの数字): ページ番号
      • per_page (オプションの数値):ページあたりの結果数
    • ソート:
      • order_by (オプションの文字列): 並べ替えの基準となるフィールド
      • sort (オプションの文字列): 並べ替えの方向 (昇順/降順)
    • 追加データ:
      • statistics (オプションのブール値):プロジェクトの統計を含める
      • with_custom_attributes (オプションのブール値): カスタム属性を含める
      • with_security_reports (オプションのブール値): セキュリティレポートを含める
  • 戻り値: プロジェクトのリスト

環境変数の設定

サーバーを実行する前に、次の環境変数を設定する必要があります。

GITLAB_PERSONAL_ACCESS_TOKEN=your_gitlab_token GITLAB_API_URL=your_gitlab_api_url # Default: https://gitlab.com/api/v4 GITLAB_READ_ONLY_MODE=true # Optional: Enable read-only mode

ライセンス

MITライセンス

ID: 7jwbk4r6d7