GitLab模型上下文协议服务器

一个提供与GitLab交互的全面接口的模型上下文协议服务器,支持搜索项目、导航仓库、管理问题和合并请求,以及执行高级代码搜索。

  • by chrisburlacu1
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 chrisburlacu1/gitlab-mcp

使用说明

GitLab MCP服务器

一个模型上下文协议(MCP)服务器,为与GitLab交互提供了一个全面的接口。此服务器使LLM能够搜索项目、导航存储库、管理问题和合并请求,以及执行高级代码搜索。

特性

  • 智能项目解决方案:使用项目名称、完整路径或自定义快捷方式,而不是数字ID。
  • 持久快捷方式:为项目创建简写名称(例如。, nds 为了 news-data-service)这种情况在会议期间持续存在。
  • 丰富的Markdown响应:工具输出的格式旨在实现最大的LLM可读性和最小的令牌消耗。
  • 高级代码搜索:跨项目或组搜索代码片段或特定符号定义(类、函数)。
  • 性能优化:包括连接池、透明的30s TTL缓存和gzip压缩。
  • 递归导航:一目了然地查看分层存储库结构。

配置

此服务器需要以下环境变量:

  • GITLAB_PERSONAL_ACCESS_TOKEN:您的GitLab个人访问令牌(需要 api 和 read_api 范围)。
  • GITLAB_API_URL:(可选)GitLab实例的基本URL。默认为 https://gitlab.com/api/v4.

工具

项目与导航

  • gitlab_search_projects:按名称或路径搜索项目。
  • gitlab_get_project:获取详细的元数据,包括最近的未决问题和合并请求。
  • gitlab_get_repository_tree:获取存储库中文件和目录的递归列表。
  • gitlab_get_project_stack:分析根清单文件以确定技术栈和依赖关系。
  • gitlab_read_imported_file:自动跟踪并读取源文件中的相对导入。
  • gitlab_create_branch:创建一个新的发展分支。
  • gitlab_set_project_shortcut:为项目ID或路径创建持久的简写快捷方式。
  • gitlab_get_file_blame:获取文件的逐行归因和提交历史记录。
  • gitlab_list_commits:获取项目或特定分支/路径的最新提交。
  • gitlab_get_commit:获取特定提交的详细信息和差异。
  • gitlab_batch_commit:通过GitLab API直接在一次提交中执行多个文件操作(创建、更新、删除)。

代码和搜索

  • gitlab_get_file_contents:读取任何文件的原始内容。支持 start_line 和 end_line 针对性阅读。
  • gitlab_get_multiple_files:在单个请求中同时获取多个文件的内容。
  • gitlab_search_code:全局搜索代码片段,或搜索特定组/项目的代码片段。
  • gitlab_find_definitions:查找类、函数或符号的声明位置。
  • gitlab_find_usages:查找符号在项目中的引用位置(智能筛选出定义)。

问题

  • gitlab_list_issues:列出并筛选项目的问题。
  • gitlab_get_issue:获取特定问题的完整细节、描述和状态。
  • gitlab_create_issue:使用标签和描述创建新问题。
  • gitlab_update_issue:更新问题的状态、标签或分配。
  • gitlab_get_discussions:获取问题的所有评论和评论线程。

合并请求

  • gitlab_list_merge_requests:列出并筛选项目的MR。
  • gitlab_create_merge_request:在分支之间打开新的合并请求。
  • gitlab_update_merge_request:更新MR详细信息或更改其状态。
  • gitlab_get_merge_request_changes:使用自动分析提示查看MR的文件差异。
  • gitlab_create_review_comment:在MR中的特定行上添加内联代码注释。
  • gitlab_get_discussions:获取MR的所有评论和评论线程。

评论

  • gitlab_create_note:为问题或合并请求添加一般性评论。

CI/CD管道

  • gitlab_list_pipelines:查看项目的最新管道(可按状态/分支筛选)。
  • gitlab_get_pipeline_jobs:列出构成特定管道的各个作业。
  • gitlab_get_job_log:获取作业的原始跟踪日志。包括LLM优化的指令,用于自动诊断构建失败的根本原因。

发展

  1. 安装依赖项:

    npm install
    
  2. 构建项目:

    npm run build
    
  3. 以开发模式运行 (自动重新加载):

    npm run dev
    
  4. 生产运行 (标准版本) :

    node dist/index.js
    

许可证

麻省理工学院