MCPを使用してOrbit Localに接続する
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
- ステータス: 実験的機能
Orbit Localは、GitLabインスタンスではなくローカルのDuckDBグラフを参照し、stdio経由でステートレスなMCPサーバーとして動作します。Orbit Remote(JSON形式のクエリDSLを公開)とは異なり、Orbit LocalはDuckDB SQLをそのまま使用します。エージェントはプロパティグラフのテーブルに対して直接SQLを組み立てます。
MCPサーバーは実験的機能です。GAリリース前に、機能や設定の形式が変更される場合があります。
前提条件
- Orbit CLI(
orbit)がインストールされていること。Orbit CLIを直接使用するを参照してください。 - ローカルリポジトリのインデックスが作成されていること(
orbit index <path>またはglab orbit local index <path>)。エージェントはindexMCPツールを通じてインデックスを作成することもできます。
MCPツール
| ツール | 説明 |
|---|---|
run_sql | ローカルのDuckDBグラフに対して読み取り専用のSQLクエリを実行します。ステートメントの配列を受け取り、同じインデックス位置にあるステートメントごとに1つのJSON行配列を返します。 |
get_graph_schema | スキーマ(ローカルのDuckDBに存在するテーブル名、カラム、データ型)をフェッチします。 |
index | リポジトリ(またはリポジトリのディレクトリ)をローカルグラフにインデックス作成します。 |
サーバーはステートレスです。ツールを呼び出すたびにDuckDBファイルをオンデマンドで開き、返却前に解放するため、複数のエディタが同じグラフに対してそれぞれ1つのサーバープロセスを実行できます。
run_sqlの結果が大きすぎる場合(Arrowデータ約1 MB)、シリアライズ前に拒否され、LIMITを追加するか射影を絞り込むよう求めるエラーが返されます。これにより、SELECT *の暴走でエディタがフリーズすることを防ぎます。
Claude Codeに接続する
claude mcp add orbit-local -- orbit mcp serveまたはプロジェクトの.mcp.jsonに以下を追加します。
{
"mcpServers": {
"orbit-local": {
"command": "orbit",
"args": ["mcp", "serve"]
}
}
}Codexに接続する
codex mcp add orbit-local -- orbit mcp serveOpenCodeに接続する
opencode.json(プロジェクトまたはグローバル)に以下を追加します。
{
"mcp": {
"orbit-local": {
"type": "local",
"command": ["orbit", "mcp", "serve"],
"enabled": true
}
}
}その他のMCPクライアントに接続する
orbit mcp serve(またはglab orbit local mcp serve)をstdioサーバーとして実行することで、任意のMCPクライアントから接続できます。Cursorの場合は、上記の.mcp.jsonブロックを.cursor/mcp.jsonに使用してください。
ツールの使用方法
接続後、AIエージェントに対してOrbitを直接使用するよう指示します。
スキーマを確認する:
“
get_graph_schemaを使用して、ローカルグラフに含まれるテーブルを表示してください。”
種類別に定義を検索する:
“Orbitを使用して、このリポジトリ内の定義を種類別に集計し、最も大きいクラスを10件一覧表示してください。”
モジュールをマップする:
“Orbitを使用して、
src/auth/で宣言されているすべての定義とその種類を一覧表示してください。”
_orbit_manifestテーブルにはインデックス作成済みのリポジトリが一覧表示されているため、「ローカルグラフにどのリポジトリがあるか」はrun_sqlを1回呼び出すだけで確認できます。
ローカルグラフの内容
Orbit Localはコードのみをインデックス作成します。対象は、サポートされている11言語すべてにわたるファイル、ディレクトリ、定義、およびインポートされたシンボルです。SDLCデータ(マージリクエスト、パイプライン、ユーザー、脆弱性)はローカルでは利用できません。これらのデータにはOrbit Remoteが必要です。
課金
Orbit LocalはGitLabクレジットを消費しません。すべてのローカルトラフィックはマシン上で処理されます。