インストール不要。2分以内に動きます。
cloud.anythingmcp.com で無料トライアルを開始し、GitLab をワンクリックで追加して、AI クライアント(Claude、ChatGPT、Copilot、Cursor)を生成された MCP エンドポイントに向けるだけ。Docker も git clone も、開発経験も不要です。
概要
AI に GitLab で作業させます。プロジェクトの検索、Issue の整理と更新、差分とコメントを含む Merge Request のレビュー、パイプラインの確認と失敗したジョブのログの読み取り、ブランチ、コミット、ファイルの読み取りができます。GitLab.com または自社の GitLab インスタンスに、個人用アクセストークンで接続します。
こう聞いてみよう
GitLab のサンプルプロンプト
プロンプトをクリックでコピー。Claude / ChatGPT / Cursor / Gemini / Copilot / OpenClaw に貼り付けて、このコネクターで実行できます。
Claude は AI のため誤ることがあります。回答をご確認ください。
💡 インストール不要? cloud.anythingmcp.com を直接利用してください。 サインインし、Connectors → GitLab をクリック、認証情報を貼り付け、MCP API キーを発行すれば完了です。Docker も
git cloneもローカルサーバーも不要。
GitLab + Meta Muse
AI に GitLab で作業させます。プロジェクトの検索、Issue の整理と更新、差分とコメントを含む Merge Request のレビュー、パイプラインの確認と失敗したジョブのログの読み取り、ブランチ、コミット、ファイルの読み取りができます。GitLab.com または自社の GitLab インスタンスに、個人用アクセストークンで接続します。
前提条件
完全なセットアップ手順はコネクタ自体に組み込まれています (ストアでコネクタを選択すると表示)。必要な環境変数:
GITLAB_URL, GITLAB_TOKEN
ステップ 1 — 認証情報を取得
- GitLab で自分のアバターをクリックし、Edit profile → Access → Personal access tokens → Generate token の順に進みます。GitLab.com では gitlab.com/-/user_settings/personal_access_tokens のページです。
- トークンに名前を付け(例: 「AnythingMCP」)、有効期限を設定し(GitLab.com では最長 365 日)、スコープ
apiにチェックを入れます。読み取り専用で使う場合は、代わりにread_apiにチェックを入れます。 - すぐにトークンをコピーします。GitLab が表示するのは一度だけです。トークンは
glpat-で始まります。 - トークンを、Bearer という語を付けずに
GITLAB_TOKENに貼り付けます。GITLAB_URLには、GitLab.com ならhttps://gitlab.comを、Self-Managed または Dedicated のインスタンスならブラウザーで開くときのアドレス(例:https://gitlab.example.com)を、/api/v4と末尾のスラッシュを付けずに設定します。その後、コネクターをインストールします。 - まず
gitlab_get_current_userを実行します。トークンがどの GitLab ユーザーのものかを確認でき、アドレスが正しいことも確かめられます。その後、my-group/my-projectのようなパスでプロジェクトを AI に伝えるか、gitlab_list_projectsで探させてください。
トークンの有効期限とアクセス範囲: GitLab.com のトークンの有効期限は最長 365 日です。期限が切れたら、同じスコープで新しいトークンを作成し、もう一度 GITLAB_TOKEN に貼り付けてください。コネクターはトークンのユーザーとして動作し、AI はそのユーザーが閲覧、変更できるものだけを扱います。fine-grained の個人用アクセストークン(GitLab 19.2 以降)も同じように使えます。対象プロジェクトの issues、merge requests、repository、pipelines、jobs に読み取りと書き込みの権限を付けてください。GitLab.com の一部のグループは fine-grained トークンを必須にしており、その場合、従来のトークンでは対象プロジェクトで「Access denied: This operation requires a fine-grained personal access token」となります。Project access token と Group access token も使えますが、GitLab.com では Premium または Ultimate が必要です。
読み取り専用の設定: read_api のトークンを使い、gitlab_create_issue、gitlab_update_issue、gitlab_add_issue_note、gitlab_create_merge_request、gitlab_update_merge_request、gitlab_add_merge_request_note、gitlab_create_branch をオフにします。
インストール時はオフ: gitlab_delete_issue(Issue を完全に削除します。実行できるのはプロジェクトのオーナーと管理者だけで、たいていは gitlab_update_issue でクローズすれば十分です)と gitlab_delete_branch。AI に Issue やブランチを削除させる場合だけオンにしてください。
プロジェクト、Issue、Merge Request: ツールはプロジェクトを数値の ID か、my-group/my-project のようなフルパスで受け取ります。Issue と Merge Request は、GitLab に表示される番号(#42、!17)で指定し、グローバル ID は使いません。gitlab_list_project_members で担当者(assignee)とレビュアーのユーザー ID を取得できます。gitlab_list_my_issues と gitlab_list_my_merge_requests は全プロジェクトを横断し、既定ではトークンのユーザー自身の項目を表示します。レビュー待ちの Merge Request も含まれます。
レビュー、パイプライン、コード: Merge Request をレビューするとき、AI は gitlab_get_merge_request(マージ状態とコンフリクト)を読み、続いて gitlab_get_merge_request_diffs をページごとに、さらに gitlab_list_merge_request_commits と gitlab_list_merge_request_notes を読みます。差分が大きすぎるファイルはテキストなしで返るため、AI はソースブランチ上で gitlab_get_file_content を使って読みます。失敗したパイプラインは、gitlab_list_pipelines から gitlab_list_pipeline_jobs(失敗したジョブのみ)、gitlab_get_job_log の順にたどります。ファイルとジョブログは先頭を残して 200 KB で切り詰められるので、長いログは GitLab で開いてください。gitlab_search_project はどのプランでも 1 つのプロジェクト内のコードを検索できます。gitlab_search によるインスタンス全体のコード検索には、Premium の機能である advanced search が必要です。
書き込みは事前に確認: Issue、コメント、Merge Request、ブランチは、トークンのユーザー名で作成されます。AI は先にタイトル、本文、ブランチを示し、あなたの確認を待ちます。コメント内の /label、/assign、/close、/approve、/merge などのクイックアクションは GitLab が実行するため、AI はあなたが頼んだときだけ入れます。ブランチの作成には Developer 権限が必要です。
レート制限: GitLab.com では、ユーザーごとに 1 分あたり約 2,000 件の API リクエスト、新規 Issue 200 件、新規コメント 60 件、検索 100 件まで使えます。Self-Managed のインスタンスでは管理者が制限を決めます。制限を超えると GitLab は 429 を返すので、少し待ってから再試行してください。
よくあるエラー: 401 は、トークンが間違っている、期限切れ、または取り消されているか、GITLAB_URL が発行元とは別のインスタンスを指していることを意味します。403 は、スコープが足りない(例: read_api のトークンで書き込もうとした)か、その操作にはロールが足りないことを意味します。404 は、プロジェクト、Issue、ファイルが存在しないか、ユーザーから見えないことを意味します。GitLab は非公開のリソースを 404 で隠します。400 は、不足しているか無効なフィールドを示します。新しい Merge Request で 409 が返った場合、そのブランチの組み合わせですでに Merge Request が開いています。名前を変更したプロジェクトは古いパスでも読み取りに応答しますが、そこへの書き込みは 405 で失敗します。新しいパスか数値の ID を使ってください。
このコネクターには、Merge Request のマージや承認、コミットのプッシュ、ファイルの編集、パイプラインの実行、再試行、キャンセルを行うツールはありません。CI/CD 変数、リリース、Wiki、パッケージ、コンテナレジストリ、管理機能も対象外です。
ステップ 2 — アダプターをインストール
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
ステップ 3 — Muse にコネクタを追加
サーバーURL: AnythingMCP で MCP Servers を開き、このコネクタがあるサーバーを選んで URL(
https://cloud.anythingmcp.com/mcp/…)をコピーします。このガイドでYOUR_SERVER_IDと表示されている箇所に使ってください。
Muse はリモート MCP サーバーをカスタムコネクタとして追加し、OAuth でサインインします。
- Muse で Settings → Connectors を開き、Add custom connector を選びます。
- MCP サーバーの URL
https://cloud.anythingmcp.com/mcp/YOUR_SERVER_IDを貼り付けます。 - Muse が AnythingMCP のサインインページを開きます。サインインしてアクセスを承認します。
- チャットで、
GitLabのツールが必要になる依頼を Muse にしてみましょう。
チャットから設定することもできます(Web、iOS・Android アプリ、WhatsApp)。Muse に次のメッセージを送ってください:
Create a Custom Connector for a new remote MCP server, then connect to it:
Name: AnythingMCP
Transport: remote streamable HTTP
URL: https://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID
Auth: OAuth
セルフホストの場合は、https://cloud.anythingmcp.com の代わりにインスタンスの公開 HTTPS アドレスを使ってください。Muse は Meta のクラウドから接続するため、localhost は使えません。
利用可能なツール
| Tool | What it does |
|---|---|
gitlab_get_current_user | Get the GitLab user the token belongs to: id, username, name, state, web_url and, for admins, is_admin |
gitlab_list_projects | List projects the token can see, newest activity first by default: id, path_with_namespace, default_branch, web_url, visibility and… |
gitlab_get_project | Get one project by id or path: default_branch, visibility, description, web_url, open_issues_count, permissions of the token's user, and… |
gitlab_list_project_members | List the members of a project, including those inherited from its groups: user id, username, name and access_level (10 Guest, 15 Planner… |
gitlab_list_labels | List a project's labels (including group labels): name, color, description and open issue and merge request counts |
gitlab_list_issues | List a project's issues with filters: iid, title, state, labels, assignees, author, milestone, due_date, web_url |
gitlab_list_my_issues | List issues across all projects: by default the ones assigned to the token's user, or the ones they created, or every issue they can see |
gitlab_get_issue | Get one issue by its iid: title, description (Markdown), state, labels, assignees, author, milestone, due_date, time stats, related merge… |
gitlab_create_issue | Create an issue in a project |
gitlab_update_issue | Change an issue: title, description, labels (replace, add or remove), assignees, milestone, due date, or close or reopen it with state_event |
gitlab_delete_issue | Delete an issue for good |
gitlab_list_issue_notes | List the comments on an issue, newest first by default, including system notes (label and status changes, flagged system: true): id, body… |
gitlab_add_issue_note | Post a comment on an issue, as the token's user |
gitlab_list_merge_requests | List a project's merge requests with filters: iid, title, state, draft, source and target branch, author, reviewers, labels, merge_status… |
gitlab_list_my_merge_requests | List merge requests across all projects: by default the ones created by the token's user, or assigned to them, or waiting for their review… |
gitlab_get_merge_request | Get one merge request by iid: title, description, state, draft, source and target branch, sha, detailed_merge_status (mergeable, conflict… |
gitlab_get_merge_request_diffs | Get the changed files of a merge request, page by page: old_path, new_path, new_file, renamed_file, deleted_file and the diff text of each |
gitlab_list_merge_request_commits | List the commits of a merge request: id (SHA), short_id, title, message, author_name and created_at |
gitlab_list_merge_request_notes | List the comments on a merge request, including review comments on lines (with a position) and system notes: id, body, author, created_at… |
gitlab_add_merge_request_note | Post a general comment on a merge request, as the token's user |
gitlab_create_merge_request | Open a merge request from a source branch into a target branch |
gitlab_update_merge_request | Change a merge request: title (add or remove the Draft: prefix), description, target branch, labels, assignees, reviewers, or close or… |
gitlab_list_pipelines | List a project's CI/CD pipelines, newest first: id, iid, status, ref, sha, source, created_at, updated_at and web_url |
gitlab_get_pipeline | Get one pipeline: status, ref, sha, source, duration, queued_duration, coverage, user, started_at, finished_at and web_url |
gitlab_list_pipeline_jobs | List the jobs of a pipeline: id, name, stage, status, failure_reason, duration, runner, allow_failure and web_url |
gitlab_get_job | Get one CI/CD job: name, stage, status, failure_reason, duration, started_at, finished_at, the commit, the pipeline, artifacts and web_url |
gitlab_get_job_log | Read the log (trace) of a CI/CD job as plain text, with ANSI color codes |
gitlab_list_branches | List a project's branches: name, merged, protected, default, the last commit (id, title, author, date) and web_url |
gitlab_get_branch | Get one branch: its last commit, whether it is merged, protected or the default, and whether the user can push to it |
gitlab_create_branch | Create a branch from a branch, tag or commit |
gitlab_delete_branch | Delete a branch |
gitlab_list_commits | List commits of a branch, tag or the default branch, newest first: id (SHA), short_id, title, author_name, authored_date and web_url |
gitlab_get_commit | Get one commit by SHA, branch or tag name: message, author, committer, parent_ids, stats (additions, deletions), the last pipeline and… |
gitlab_get_commit_diff | Get the changes of one commit, page by page: old_path, new_path, new_file, renamed_file, deleted_file and the diff text per file |
gitlab_list_repository_tree | List files and folders in a repository folder: id (blob or tree SHA), name, type (blob = file, tree = folder), path and mode.… |
gitlab_get_file_info | Get a file's metadata without its content: file_name, file_path, size, encoding, content_sha256, blob_id, commit_id and last_commit_id on… |
gitlab_get_file_content | Read a file from the repository as text, at a branch, tag or commit (the default branch by default) |
gitlab_search | Search the whole instance (only what the token's user can see): projects, groups, issues, work_items, merge_requests, milestones, users or… |
gitlab_search_project | Search inside one project: code (blobs, with file name, path, line number and the matching lines), commits, issues, merge_requests… |
プロンプトの例
- 「全プロジェクトで自分のレビュー待ちになっている Merge Request と、そのうちコンフリクトやパイプラインの失敗があるものを教えてください。」
- 「my-group/web-app の main で最新のパイプラインが失敗したのはなぜですか?失敗したジョブと、そのログにあるエラーを見せてください。」
- 「my-group/web-app の Merge Request !128 を要約してください。何がどのファイルで変わったか、未解決のレビューコメントはどれかを教えてください。」
- 「my-group/web-app に「モバイルでチェックアウトボタンがずれる」というタイトルの Issue を作成し、bug ラベルを付けて Lena さんに割り当ててください。」
FAQ
Muse はどこで使えますか? Meta は現在、Muse を米国とカナダで提供しています。Web、iOS・Android アプリ、WhatsApp で利用できます。
Meta はこのコネクタを審査しますか? いいえ。Meta はカスタムコネクタを審査しません。Muse に見えるのは、AnythingMCP でこの MCP サーバーに対して有効にしたツールだけです。コネクタはいつでも Settings → Connectors で切断できます。
次のステップ
このガイドは役に立ちましたか?