Expand description
GitLab MCP Server
A Model Context Protocol server for GitLab with fine-grained access control.
§Features
- 95 GitLab tools covering issues, merge requests, pipelines, repositories, and more
- Hierarchical access control with patterns at global, category, action, and project levels
- Multiple transports - stdio for Claude Code, HTTP/SSE for web integrations
- Flexible configuration via TOML files and environment variables
§Access Control Model
all (base) → categories → individual actions → project overridesEach level supports:
- Access levels:
none,read,full denypatterns (regex) to block specific toolsallowpatterns (regex) to permit tools (overrides deny at same level)
§Example Configuration
[gitlab]
url = "https://gitlab.com"
# token from GITLAB_TOKEN env var
[access_control]
all = "read" # Base: read-only
deny = ["delete_.*"] # Block all deletes
[access_control.categories.issues]
level = "full" # Full access to issues
[access_control.projects."prod/app"]
all = "read" # Production is read-onlyRe-exports§
pub use config::AppConfig;pub use config::load_config;pub use dashboard::DashboardConfig;pub use dashboard::DashboardMetrics;pub use error::AppError;pub use error::Result;pub use server::GitLabMcpHandler;
Modules§
- access_
control - Access control module
- auth
- Authentication module
- config
- Configuration module
- dashboard
- Dashboard module
- error
- Error types for tanuki-mcp
- gitlab
- GitLab API module
- server
- Server module
- tools
- Tools module
- transport
- Transport module
- update
- Self-update functionality
- util
- Utility functions shared across the application.