mcpField
G
GitLab Documentation MCP Server

GitLab Documentation MCP Server

ローカル
github.com/nunolima開発ツール111 週間前に更新

GitLab Documentation MCP Server について

GitLab Documentation MCP Serverは、AIアシスタントやMCPクライアントからGitLab公式ドキュメントを検索できるようにします。複数のGitLabオープンソースリポジトリのMarkdownを全文索引化し、指定したGitLabバージョン向けに構築できます。

主な機能

  1. 01複数のGitLabリポジトリを全文検索
  2. 02GitLabの指定バージョン向けに構築
  3. 03SQLite FTS5のドキュメント索引
  4. 04Dockerイメージのビルド
  5. 05検索結果から文書全文を取得

活用シーン

  1. 01GitLab CI/CDの設定方法を検索
  2. 02RunnerやGitalyの文書を参照
  3. 03運用バージョンに合う文書を検索

MCP 対応

このMCPサーバーはsearch_docs、get_doc、search_and_fetchツールを提供し、索引対象のリポジトリと文書内容をリソースとして公開します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"nunolima-gitlab-docs": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"docker.io/nunolima/gitlab-docs-mcp:18.7"
]
}
}
}
起動コマンドdocker run -i --rm docker.io/nunolima/gitlab-docs-mcp:18.7

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
ocidocker.io/nunolima/gitlab-docs-mcp:18.7

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

GitLab Documentation MCP サーバー

GitLab の公式ドキュメントを検索できる Model Context Protocol(MCP)サーバーです。複数の GitLab OSS リポジトリの Markdown ドキュメントをインデックス化し、AI アシスタントやその他の MCP クライアントから利用できるようにします。

特長

  • 全文検索:SQLite FTS5 を使用して GitLab ドキュメントを検索します
  • バージョン別ドキュメント:任意の GitLab バージョン(例:18.7.2)または最新バージョン向けにビルドできます
  • 複数のリポジトリをインデックス化します:
    • GitLab CE/EE(メインアプリケーション)
    • GitLab Runner(CI/CD ランナー)
    • Omnibus GitLab(インストールパッケージ)
    • Gitaly(Git RPC サービス)
    • GitLab Pages(静的サイト)
    • GitLab Agent(Kubernetes 統合。KAS を含みます)
  • 最適化された Docker イメージ:スパースチェックアウトとフィルターを使用してサイズを最小限に抑えます

Docker イメージのビルド

GitLab のバージョンを確認する

使用する GitLab リリースの最新のパッチバージョンを探します:

特定のバージョン向けにビルドする
# Set the GitLab version you want (use full patch version)
GITLAB_VERSION=18.7.2

# Build the image
GITLAB_MINOR=$(echo $GITLAB_VERSION | cut -d. -f1,2)
docker build -f docker/Dockerfile --build-arg GITLAB_VERSION=$GITLAB_VERSION \
    -t gitlab-docs-mcp:$GITLAB_VERSION \
    -t mcp/gitlab-docs-mcp:$GITLAB_VERSION \
    -t gitlab-docs-mcp:$GITLAB_MINOR \
    -t mcp/gitlab-docs-mcp:$GITLAB_MINOR .

# Verify the images were created
echo "\nCreated images:"
docker images | grep gitlab-docs-mcp

# Test the image - initialize and list tools
echo "\nTesting MCP server initialization:"
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | \
  docker run -i --rm mcp/gitlab-docs-mcp:$GITLAB_VERSION | jq .

echo "\nListing available tools:"
(echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'; \
 echo '{"jsonrpc":"2.0","id":2,"method":"tools/list"}') | \
  docker run -i --rm mcp/gitlab-docs-mcp:$GITLAB_VERSION 2>/dev/null | tail -1 | jq .
最新版(Main ブランチ)向けにビルドする
docker build -f docker/Dockerfile \
    -t gitlab-docs-mcp:latest \
    -t mcp/gitlab-docs-mcp:latest .

# Verify the images were created
echo "\nCreated images:"
docker images | grep gitlab-docs-mcp

# Test the image - initialize and list tools
echo "\nTesting MCP server initialization:"
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}' | \
  docker run -i --rm mcp/gitlab-docs-mcp:latest | head -20
echo "\nListing available tools:"
(echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'; \
 echo '{"jsonrpc":"2.0","id":2,"method":"tools/list"}') | \
  docker run -i --rm mcp/gitlab-docs-mcp:latest 2>/dev/null | tail -1 | jq .```

## Installation

This server is published to the [MCP Community Registry](https://registry.modelcontextprotocol.io/v0/servers?search=io.github.nunolima/gitlab-docs-mcp).

### Prerequisites

- Docker installed and running
- MCP-compatible client (Claude Desktop, Cline, Cursor, etc.)

### Setup Instructions

#### Claude Desktop

1. **Locate your config file**:
   - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
   - Windows: `%APPDATA%\Claude\claude_desktop_config.json`
   - Linux: `~/.config/Claude/claude_desktop_config.json`

2. **Add the server configuration**:
   ```json
   {
     "mcpServers": {
       "gitlab-docs": {
         "command": "docker",
         "args": ["run", "-i", "--rm", "nunolima/gitlab-docs-mcp:18.7"]
       }
     }
   }
  1. Claude Desktop を再起動する — MCP ツールメニュー(🔌 アイコン)にサーバーが表示されます
Cline(VS Code 拡張機能)
  1. VS Code で Cline の設定を開きます
  2. MCP Servers セクションに移動します
  3. 次の設定を追加します:
    {
      "mcpServers": {
        "gitlab-docs": {
          "command": "docker",
          "args": ["run", "-i", "--rm", "nunolima/gitlab-docs-mcp:18.7"]
        }
      }
    }
    
  4. VS Code ウィンドウを再読み込みします
Cursor
  1. Cursor の設定を開きます
  2. Features → Model Context Protocol に移動します
  3. サーバー設定を追加します:
    {
      "mcpServers": {
        "gitlab-docs": {
          "command": "docker",
          "args": ["run", "-i", "--rm", "nunolima/gitlab-docs-mcp:18.7"]
        }
      }
    }
    
バージョンの選択

GitLab のデプロイに一致するバージョンを選択します:

// For GitLab 18.7.x
"args": ["run", "-i", "--rm", "nunolima/gitlab-docs-mcp:18.7"]

// For latest GitLab version
"args": ["run", "-i", "--rm", "nunolima/gitlab-docs-mcp:latest"]
動作確認

セットアップ後、サーバーが動作していることを確認します:

  1. Claude Desktop の場合:🔌 アイコンを探し、「gitlab-docs」が一覧に表示されていることを確認します
  2. クエリをテストする:Claude に GitLab ドキュメントの検索を依頼します。例:「CI/CD パイプラインの設定について GitLab ドキュメントを検索して」
  3. Docker を確認する:クエリを実行した後に docker ps -a を実行し、コンテナーが起動したか確認します

適切なテスト用 AI リクエストメッセージの例:Using only the "gitlab-docs-mcp" mcp tools as source, what is the latest x.y.z GitLab version covered in the GitLab upgrade notes (doc/update/versions/)?

トラブルシューティング

サーバーがクライアントに表示されない場合:

  • Docker が実行中であることを確認します:docker info
  • 設定ファイルの JSON が有効であることを確認します(末尾のカンマがないこと、引用符が正しいこと)
  • MCP クライアントを完全に再起動します

「Cannot connect to Docker daemon」エラーが発生する場合:

  • Docker Desktop を起動します
  • Docker にアクセスできることを確認します:docker ps

ドキュメントのバージョンが古い場合:

利用可能なツール

接続すると、サーバーは次のツールを提供します(MCP Python SDK v2、構造化出力):

  • search_docs:すべての GitLab ドキュメントを全文検索します(パス、タイトル、リポジトリを返します)
  • get_doc:検索結果にある正確なパスを指定して、特定のドキュメントを取得します
  • search_and_fetch:1 回の呼び出しで検索し、各検索結果の完全な Markdown を返します
リソース
  • docs://repos:インデックス化されたリポジトリのキー
  • docs://{+path}:インデックス化されたドキュメントのパスに対応する完全な Markdown
クエリの例

AI アシスタントに次のように尋ねてみてください:

  • 「Docker を使って GitLab Runner をセットアップする方法について GitLab ドキュメントを検索して」
  • 「GitLab CI/CD パイプラインの構文に関するドキュメントを探して」
  • 「バックアップと復元について、GitLab ドキュメントには何と書かれている?」
  • 「GitLab Pages のカスタムドメイン設定を検索して」

仕組み

  1. ビルド時:スパースチェックアウトを使用して、GitLab リポジトリからドキュメントフォルダーをクローンします
  2. インデックス化:Markdown ファイルを解析し、SQLite FTS5 の検索インデックスを作成します
  3. 実行時:MCP サーバーが検索ツールを提供し、インデックス化されたドキュメントを検索できるようにします

バージョン管理戦略

  • メインの GitLab リポジトリ:完全なバージョンタグを使用します(例:v18.7.2-ee)
  • Omnibus GitLab:+ee サフィックス付きの完全なバージョンを使用します(例:18.7.2+ee.0)
  • その他のリポジトリ:major.minor.0 形式のバージョンを使用します(例:v18.7.0)
    • 各 major.minor バージョンの最初の安定版(.0)を使用します
    • 例:GitLab 18.7.2 をビルドする場合、Runner/Gitaly/Pages/Agent v18.7.0 を使用します

開発

プロジェクト構成
python/gitlab-docs-mcp/
├── docker/
│   └── Dockerfile         # Main Dockerfile with version support
├── indexer/
│   └── build_index.py     # Builds search index from markdown files
├── server/
│   └── main.py           # MCP server implementation
├── data/
│   └── docs.db           # SQLite FTS5 database (generated)
└── repos/                # Cloned documentation (generated)
ローカル開発
# Install dependencies
pip install -r requirements.txt

# Clone repos manually for testing
# (or let Docker handle it)

# Build index
python indexer/build_index.py

# Run server (stdio)
python -m server.main
統合テスト(curl + jq)

test.sh は Streamable HTTP を使用する Docker イメージを起動し、MCP プロトコル 2026-07-28 に対して、discover、ツール、リソースを検証します。

# Rebuild image first, then:
./test.sh 19.0.5

# Or against an already-running HTTP server:
MCP_TRANSPORT=streamable-http MCP_HOST=0.0.0.0 MCP_PORT=8000 python -m server.main
MCP_BASE_URL=http://127.0.0.1:8000/mcp ./test.sh

ライセンス

MIT License - Copyright (c) 2026 Nuno Lima

このプロジェクトは、GitLab のオープンソースリポジトリからドキュメントをインデックス化します。詳細については、各リポジトリのライセンスをご確認ください。

謝辞

このプロジェクトの開発は、AI 支援開発ツールへのアクセスを提供した OLX の支援を受けました。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。