GitLab API服务器

一个用于与GitLab API交互的服务器,提供管道、作业、日志和工件的获取与下载功能,便于进一步分析。

  • by khud-funmatica
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 khud-funmatica/gitlab-mcp-server

使用说明

GitLab MCP 服务器

用于与GitLab API交互的MCP服务器——获取管道、作业、日志、工件的信息并下载以供进一步分析。

快速连接

  1. 在MCP配置中添加:
{
  "mcpServers": {
    "gitlab": {
      "command": "npx",
      "args": [
        "-y",
        "github:khud-funmatica/gitlab-mcp-server"
      ],
      "env": {
        "GITLAB_TOKEN": "your_gitlab_token_here"
      }
    }
  }
}
  1. 好了! 重启MCP客户端后即可使用。

可用的工具

获取仓库URL

获取当前Git仓库的URL。自动在当前目录或父目录中查找Git仓库。

参数:

  • project_path (必填):项目目录的完整路径

返回:

  • 仓库的URL(远程原点)
  • 找到的Git仓库的路径
  • 检查GitLab仓库是否为(某个特定的)仓库

获取最新流水线

获取当前仓库的最新GitLab流水线信息。

参数:

  • project_path (必填):项目目录的完整路径

返回:

  • 流水线ID
  • 管道状态
  • 分支和提交的SHA
  • 在网页界面中查看流水线的链接
  • 创建和更新时间
  • 执行时长(如适用)
  • 代码覆盖率(如可用)
  • 项目相关信息

获取流水线详情

获取有关GitLab流水线的详细信息,包括作业、日志、工件和追踪。帮助AI代理诊断流水线中的问题。

参数:

  • project_path (必填):项目目录的完整路径
  • pipeline_id (可选):特定流水线的ID。如果未指定,则将获取最后一个流水线。

返回:

  • 关于流水线的详细信息(状态、分支、SHA、执行时间等)
  • 流水线中所有作业及其状态的列表
  • 每个作业(任务)的执行日志(trace)
  • 有关流水线工件的信息
  • 每个作业的网页界面链接
  • 每个作业的执行时长
  • 关于标签和作业阶段的信息

特点:

  • 自动获取所有作业的日志(追踪)
  • 限制日志长度为2000个字符以提高可读性
  • 处理获取单个作业日志时的错误
  • 为AI代理提供全面的诊断信息

下载作业工件

下载特定GitLab作业的工件,以ZIP压缩包形式保存,以便后续分析。

参数:

  • project_path (必填):项目目录的完整路径
  • job_id (必填):用于下载神器的任务ID
  • download_path (可选):保存工件的路径。如果未指定,则会创建一个文件夹 artifacts/job_ID 在项目目录中

返回:

  • 关于已下载的存档信息(大小、路径)
  • 下载状态
  • 文物研究指南

特点:

  • 自动创建保存目录
  • 下载ZIP格式的存档文件
  • 提供有关文件大小和位置的详细信息

下载流水线工件

下载GitLab流水线中所有作业的工件,以单独的ZIP压缩包形式保存,以便后续分析。

参数:

  • project_path (必填):项目目录的完整路径
  • pipeline_id (可选):流水线ID。如果未指定,则使用最后一个流水线
  • download_path (可选):保存工件的路径。如果未指定,则会创建一个文件夹。 artifacts/pipeline_ID 在项目目录中

返回:

  • 所有已下载的存档列表
  • 关于每个作业及其工件的详细信息
  • 成功与失败下载的统计数据
  • 文物研究指南

特点:

  • 下载流水线中所有有工件的作业的工件
  • 为每个作业创建单独的ZIP存档
  • 处理单个作业下载时的错误
  • 提供详细的下载结果统计数据

要求

  • Node.js 版本 >= 18.0.0
  • MCP客户端
  • GitLab令牌(在GitLab中创建→“用户设置”→“访问令牌”,并赋予权限) read_api 和 read_repository)