正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

MCPを使用してOrbitにアクセスする

  • プラン: Premium、Ultimate
  • 提供形態: GitLab.com
  • ステータス: ベータ版

この機能の利用可否は機能フラグによって制御されています。 詳細については、履歴を参照してください。 この機能はテスト目的で利用可能ですが、本番環境での使用には対応していません。

GitLab OrbitはMCP対応のAIエージェントがGitLabのナレッジグラフに対してGitLab Orbitコマンドを検出・実行できる2つのMCPツールを公開しています。Claude Code、OpenAI Codex、またはModel Context Protocolをサポートするその他のツールと組み合わせて使用できます。

前提条件

  • GitLab Orbitがグループで有効化されていること。
  • GitLabに認証済みであること。glab auth loginを実行してください(デフォルトではOAuthを使用。read_apiスコープを持つパーソナルアクセストークンも使用可能)。
  • クエリ対象のグループへのアクセス権限があること。
  • MCPクライアントが(mcp-remoteを経由せず)ネイティブHTTPで直接接続する場合、OAuthリクエストにmcp_orbitスコープを含める必要があります。以下のGemini CLIの例を参照してください。

MCPツール

ツール説明
list_commands説明と入力スキーマを含む利用可能なGitLab Orbitコマンドを一覧表示します。
invoke_command名前とパラメーターでコマンドを実行します。型付きの結果を返します。

invoke_commandで利用可能なコマンド:

コマンド説明
query_graphOrbitクエリDSLを使用してグラフクエリを実行します。
get_graph_schema現在のスキーマ(すべてのノードタイプ、プロパティ、リレーションシップタイプ)を取得します。
get_query_dslquery_graph JSONのDSL文法とバージョンを返します。
get_response_formatquery_graphレスポンスのJSONスキーマとバージョンを返します。

MCPクライアントを接続する

MCPクライアントがhttps://gitlab.com/api/v4/orbit/mcpを指すように設定します。

Claude Codeは組み込みのHTTPトランスポートを使用してOrbitエンドポイントをサポートしています。 次のコマンドで登録します:

claude mcp add --transport http gitlab-orbit https://gitlab.com/api/v4/orbit/mcp

最初のlist_commandsまたはinvoke_commandの呼び出し時にブラウザが開き、GitLabで認証が行われます。JSONの設定ファイルを編集する必要はありません。

Claude CodeはHTTPで直接接続します。Claude Codeでnpx mcp-remoteを使用しないでください。エンドポイントをstdioプロセスでラップするため、組み込みトランスポートと競合し、「Failed to connect」エラーが発生します。代わりに上記のclaude mcp add --transport httpコマンドを使用してください。

一部のクライアントはローカルのstdio MCPサーバーのみをサポートしています。そのような場合は、mcp-remoteを使用してOrbitエンドポイントをローカルコマンドとしてラップします。

Cursor、Codex、およびその他のJSON設定クライアント — エージェントのMCP設定に以下を追加します:

{
  "mcpServers": {
    "gitlab-orbit": {
      "command": "npx",
      "args": ["mcp-remote", "https://gitlab.com/api/v4/orbit/mcp"]
    }
  }
}

opencode~/.config/opencode/opencode.jsonに以下を追加します:

{
  "mcp": {
    "gitlab-orbit": {
      "type": "local",
      "command": ["npx", "mcp-remote", "https://gitlab.com/api/v4/orbit/mcp"]
    }
  }
}

opencodeでは"type": "local"が必要で、コマンドと引数を単一の配列にまとめて指定します。argsフィールドを別途指定したりtypeを省略したりすると、ConfigInvalidErrorが発生します。

Gemini CLI — ネイティブHTTPトランスポートでOrbitエンドポイントをサポートしています。~/.gemini/settings.jsonに以下を追加します:

{
  "mcpServers": {
    "gitlab-orbit": {
      "url": "https://gitlab.com/api/v4/orbit/mcp",
      "type": "http",
      "timeout": 5000,
      "oauth": {
        "enabled": true,
        "scopes": ["mcp_orbit"]
      }
    }
  }
}

gemini mcp add gitlab-orbit https://gitlab.com/api/v4/orbit/mcp -t http -s userで生成した後、oauth.scopesブロックを手動で追加することもできます。

ネイティブHTTP MCPクライアントはmcp_orbit OAuthスコープを明示的にリクエストする必要があります。 oauth.scopes: ["mcp_orbit"]がない場合、GitLabに既にサインインしていても認証に失敗します。ネイティブHTTPトランスポートのクライアントで認証できない場合は、MCPサーバー設定にこのスコープを追加してください。

古いGemini CLIの設定ではurl + type: "http"の代わりにhttpUrlが使用されている場合があります。 httpUrlは引き続き機能しますが非推奨です。新しい設定ではurl + typeを使用してください。

Antigravity — Antigravity IDEとCLIは~/.gemini/config/mcp_config.jsonにある同じMCP設定を読み込みます。Antigravityはリモートサーバーに対するMCP OAuthフローをまだサポートしていないため(ネイティブのserverUrlエントリはトークンなしでinitializeを送信し、Unauthorizedで失敗します)、mcp-remoteでエンドポイントをラップします:

{
  "mcpServers": {
    "gitlab-orbit": {
      "command": "npx",
      "args": ["mcp-remote", "https://gitlab.com/api/v4/orbit/mcp"]
    }
  }
}

ここではoauthブロックは不要です。mcp-remoteがエンドポイントのOAuthメタデータからmcp_orbitスコープを検出し、初回使用時にブラウザを開いて認証を行います。

認証には既存のglab auth loginセッションを使用します。トークンのコピーや貼り付けは不要です。サポートされているクライアント: Claude Code、OpenCode、Cursor、Codex、Gemini CLI、Antigravity。

計画中のglab orbit setupサブコマンドにより、GitLab OrbitスキルのインストールとこのMCP設定の書き込みを1ステップで行えるようになります。リリースまでは、上記の手順に従ってMCPクライアントを手動で設定してください。

また、GitLab Orbitスキルを手動でインストールすることで、エージェントにクエリレシピ、DSLガイダンス、トラブルシューティング情報を提供できます。

動作確認

AIエージェントで次のように質問します:

「Orbitを使用して、グループ内で最近更新された5つのプロジェクトを一覧表示してください。」

プロジェクト名とパスを含む型付きの結果が返されれば、接続は成功しています。結果が返されない場合は、glab auth statusを実行して認証状態を確認し、少なくとも1つのグループでGitLab Orbitが有効になっていることを確認してください。

課金

MCP経由のクエリはGitLabクレジットを消費します。query_graphを実行するinvoke_commandの呼び出しはGitLabサブスクリプションのクレジットを使用します。list_commandsget_graph_schemaget_query_dslget_response_formatコマンドは消費対象外です。

ツールの使用方法

接続後、AIエージェントにGitLab Orbitツールを直接使用するよう指示します:

コマンドとスキーマの確認:

list_commandsを使用して利用可能なGitLab Orbitコマンドを表示し、次にget_graph_schemaコマンドを実行してGitLab Orbitがインデックス作成するノードタイプを確認してください。」

クエリの実行:

query_graphコマンドを使用して、グループ内でオープンなマージリクエストが最も多い10件のプロジェクトを検索してください。」

影響範囲の分析:

「Orbitを使用して、このプロジェクト内でAuthServiceを直接または推移的にインポートしているすべてのファイルを検索してください。」

オンボーディング:

「Orbitを使用して、このグループの主要なサービス、使用言語、および依存プロジェクトをマップしてください。」

エージェントはJSONクエリDSLを構成し、代わりにquery_graphコマンドを呼び出します。結果を正確に制御したい場合は、生のJSONクエリを直接渡すこともできます。

例: invoke_commandによるquery_graphの手動呼び出し

以下のクエリをinvoke_command{"command_name": "query_graph", "parameters": {"query": ...}}の形式で渡します:

{
  "query_type": "aggregation",
  "nodes": [
    {"id": "p", "entity": "Project", "columns": ["name", "full_path"]},
    {"id": "mr", "entity": "MergeRequest", "filters": {"state": "opened"}}
  ],
  "relationships": [
    {"type": "IN_PROJECT", "from": "mr", "to": "p"}
  ],
  "group_by": ["p"],
  "aggregations": [
    { "count": "mr", "as": "open_mrs" }
  ],
  "aggregation_sort": "-open_mrs",
  "limit": 10
}

トラブルシューティング

Claude Codeで「Failed to connect」が表示される

Claude Codeには組み込みのHTTP MCPサポートがあります。--transport httpの代わりにnpx mcp-remoteでOrbitを登録した場合、mcp-remoteラッパーがローカルのstdioプロセスを作成し、ネイティブトランスポートと競合します。

修正するには、壊れた登録を削除してHTTPトランスポートで再登録します:

claude mcp remove gitlab-orbit
claude mcp add --transport http gitlab-orbit https://gitlab.com/api/v4/orbit/mcp

初回使用時に「Needs authentication」が表示される

これは想定された動作です。最初のlist_commandsまたはinvoke_commandの呼び出し時にブラウザが開き、GitLabでOAuth認証が完了します。ブラウザフローが起動しない場合は、セッションを確認してください:

glab auth status

セッションが期限切れの場合は、再認証してください:

glab auth login

接続後のクエリエラー

クエリ時のエラー(検証の失敗、空の結果、レート制限)については、DSLガイダンス、クエリレシピ、終了コードの診断情報が含まれるGitLab Orbitスキルのドキュメントを参照してください。インラインガイダンスのためにスキルをインストールします:

glab skills install --global orbit