Crate tanuki_mcp

Crate tanuki_mcp 

Source
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 overrides

Each level supports:

  • Access levels: none, read, full
  • deny patterns (regex) to block specific tools
  • allow patterns (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-only

Re-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.