GitLab MCP服务器

一个基于Swift的模型上下文协议(MCP)服务器,封装GitLab CLI(glab)功能,为AI助手如Claude Desktop提供GitLab操作支持。

  • by doozMen
  • Swift
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 doozmen/gitlab-mcp-swift

使用说明

GitLab MCP服务器(Swift)

封装GitLab CLI的模型上下文协议(MCP)服务器(glab)为Claude Desktop等人工智能助手提供GitLab功能。

特性

  • 🚀 Swift原生实现 使用官方MCP Swift SDK
  • 🔧 完整的GitLab CLI集成 -支持所有 glab 命令
  • 🎯 智能提示 用于常见工作流程(合并请求、CI/CD、每日站立)
  • 📊 JSON输出解析 回退到纯文本
  • 🔐 安全认证 通过系统 glab 凭证
  • ⚡ 高性能 Swift的async/await并发

先决条件

  • macOS(通过Xcode安装Swift 5.9+)
  • glab命令行界面 已安装并验证
  • Claude Desktop或其他兼容MCP的客户端

安装

快速安装

# Clone the repository
git clone https://github.com/yourusername/gitlab-mcp-swift.git
cd gitlab-mcp-swift

# Run the install script
./install.sh

安装脚本将:

  1. 使用Swift包管理器构建服务器
  2. 安装到 ~/.swiftpm/bin/git-lab-mcp
  3. 显示Claude Desktop的配置

手动安装

# Build the project
swift build -c release

# Install to a location in your PATH
cp .build/release/git-lab-mcp ~/.swiftpm/bin/

配置

添加到您的Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "gitlab": {
      "command": "/Users/YOUR_USERNAME/.swiftpm/bin/git-lab-mcp",
      "args": ["--log-level", "info"],
      "env": {
        "PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin"
      }
    }
  }
}

认证

服务器使用您现有的 glab CLI身份验证:

# Login to GitLab
glab auth login

# Check authentication status
glab auth status

可用工具

核心工具

  • glab_mr -合并请求操作(列表、创建、查看、合并、批准)
  • glab_issue -问题管理(列表、创建、查看、关闭、更新)
  • glab_ci -CI/CD管道操作(查看、列表、运行、重试)
  • glab_repo -存储库操作(克隆、分叉、查看、存档)
  • glab_api -直接访问GitLab API
  • glab_auth -身份验证管理
  • glab_version -版本信息
  • glab_raw -直接执行任何glab命令

鼓励

服务器包括常见工作流的智能提示:

  • my-mrs -检查您的合并请求
  • create-mr -使用引导参数创建合并请求
  • daily-standup -收集GitLab活动以进行每日站立
  • review-pipeline -审查CI/CD管道状态

使用示例

检查您的合并请求

Use the prompt "my-mrs" to see all your open merge requests

创建合并请求

Use the prompt "create-mr" with:
- title: "Fix: Memory leak in user service"
- source_branch: "fix/memory-leak"
- target_branch: "main"

运行CI/CD管道

Use tool "glab_ci" with:
- subcommand: "run"
- repo: "myteam/myproject"

发展

从源头构建

# Clone the repository
git clone https://github.com/yourusername/gitlab-mcp-swift.git
cd gitlab-mcp-swift

# Build in debug mode
swift build

# Run tests
swift test

# Build for release
swift build -c release

项目结构

gitlab-mcp-swift/
├── Sources/
│   └── GitLabMCP/
│       ├── GitLabMCPServer.swift    # Main server implementation
│       ├── GitLabMCPCommand.swift   # CLI entry point
│       └── GitLabCLI.swift          # GitLab CLI wrapper
├── Package.swift                     # Swift package manifest
├── install.sh                        # Installation script
└── README.md                         # This file

故障排除

服务器无法启动

  • 确保 glab 已安装: which glab
  • 检查身份验证: glab auth status
  • 运行调试日志: --log-level debug

命令返回“未通过身份验证”

  • 跑 glab auth login 鉴定
  • 对于自托管实例: glab auth login --hostname your.gitlab.instance

MCP连接问题

  • 配置更改后重新启动Claude Desktop
  • 检查Claude Desktop开发人员控制台中的日志
  • 验证配置中的可执行路径是否正确

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

MIT许可证-有关详细信息,请参阅许可证文件

致谢