Searchable access to GitLab documentation from multiple repositories with full-text search.
A Model Context Protocol (MCP) server that provides searchable access to GitLab's official documentation. This server indexes markdown documentation from multiple GitLab OSS repositories and makes it available for AI assistants and other MCP clients.
Look for the latest patch version for your desired GitLab release:
# 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 .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"]
}
}
}{
"mcpServers": {
"gitlab-docs": {
"command": "docker",
"args": ["run", "-i", "--rm", "nunolima/gitlab-docs-mcp:18.7"]
}
}
}{
"mcpServers": {
"gitlab-docs": {
"command": "docker",
"args": ["run", "-i", "--rm", "nunolima/gitlab-docs-mcp:18.7"]
}
}
}Choose the version that matches your GitLab deployment:
// 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"]After setup, verify the server is working:
docker ps -a after making a query to see if the container ranServer not appearing in client:
docker info"Cannot connect to Docker daemon" error:
docker psOld documentation version:
Once connected, the server provides these tools to your AI assistant:
search_docs: Full-text search across all GitLab documentation
get_doc: Retrieve specific documentation by file path
list_repositories: List all indexed GitLab repositories
Try asking your AI assistant:
v18.7.2-ee)18.7.2+ee.0)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
python -m server.mainMIT License - Copyright (c) 2026 Nuno Lima
This project indexes documentation from GitLab's open source repositories. See individual repository licenses for details.