Skip to main content
Glama

Gitlab Api

CLI 或 API | MCP | Agent

PyPI - Version MCP Server PyPI - Downloads GitHub Repo stars GitHub forks GitHub contributors PyPI - License GitHub GitHub last commit (by committer) GitHub pull requests GitHub closed pull requests GitHub issues GitHub top language GitHub language count GitHub repo size GitHub repo file count (file type) PyPI - Wheel PyPI - Implementation

版本:27.1.0

文档 — 安装、部署、跨 API、CLI 和 MCP 接口的使用、集成的 A2A 代理服务器,以及配置底层 GitLab 实例的指南,均维护在官方文档中。


Related MCP server: Kepler MCP GitLab Server

概述

Gitlab Api 是一个生产级代理和模型上下文协议(MCP)服务器,旨在直接与 GitLab API + MCP Server + A2A Server 交互。


主要特性

  • 整合的操作路由 MCP 工具: 通过将方法分组为优化的、可切换的工具模块,最小化 LLM 上下文中的令牌开销并消除工具冗余。

  • 企业级安全: 全面支持 Eunomia 策略、OIDC 令牌委派和细粒度执行上下文跟踪。

  • 集成图代理: 内置 Pydantic AI 代理,支持代理控制协议(ACP)和标准 Web 接口(AG-UI)。

  • 原生遥测与追踪: 开箱即用的 OpenTelemetry 导出和原生 Langfuse 追踪。


CLI 或 API

该代理封装了 GitLab API + MCP Server + A2A Server API。您可以通过编程方式或通过其集成的执行入口点与之交互。

有关如何使用底层 API 包装器、扩展模式绑定和开发者 SDK 参考的详细说明,请参阅 docs/index.md


MCP

该服务器利用动态操作路由工具来优化令牌开销并最大化 IDE 兼容性。

工具表面 — MCP_TOOL_MODE

设置 MCP_TOOL_MODE(在共享的 ~/.config/agent-utilities/config.json 或环境变量中):condensed(默认 — 下面的操作路由工具)、verbose(每个 API 方法对应一个命名的 1:1 工具,例如 gitlab_get_branches(...),标记为 verbose)或 both。使用 --tools tag:verbose / MCP_ENABLED_TAGS=verbose 过滤 verbose 集合。请参阅 agent-utilities MCP 工具模式指南。

可用的 MCP 工具

从实时 MCP 服务器自动生成 — 请勿手动编辑。

整合的操作路由工具(默认 — MCP_TOOL_MODE=condensed

MCP 工具

切换环境变量

描述

api_request

CUSTOM_APITOOL

直接执行任意 GitLab REST API 请求。

gitlab_branches

BRANCHESTOOL

管理 gitlab 分支操作。

gitlab_commits

COMMITSTOOL

管理 gitlab 提交操作。

gitlab_deploy_tokens

DEPLOY_TOKENSTOOL

管理 gitlab 部署令牌操作。

gitlab_discover_graphql_schema

GRAPHQLTOOL

实时发现动态 GitLab GraphQL 模式,包括类型、字段和自定义属性。

gitlab_environments

ENVIRONMENTSTOOL

管理 gitlab 环境操作。

gitlab_epics

EPICSTOOL

管理 GitLab 史诗。

gitlab_graphql

GRAPHQLTOOL

在 GitLab 上原生执行原始 GraphQL 查询和变更。

gitlab_graphql_ops

GRAPHQL_OPSTOOL

按名称运行类型化的 GitLab GraphQL 操作。

gitlab_groups

GROUPSTOOL

管理 gitlab 组操作。

gitlab_ingest_pipelines

MISCTOOL

将 GitLab CI 流水线运行(+ 作业)原生摄取到 epistemic-graph 中。

gitlab_ingest_projects

MISCTOOL

将 GitLab 项目原生摄取到 epistemic-graph 中,作为类型化的 :Project 节点。

gitlab_instances

MISCTOOL

列出已配置的 GitLab 租户(CONCEPT:AU-KG.backend.declared-columns-so-schema)。

gitlab_issues

ISSUESTOOL

管理 GitLab 问题。

gitlab_jobs

JOBSTOOL

管理 gitlab 作业操作。

gitlab_labels

LABELSTOOL

管理 GitLab 标签。

gitlab_members

MEMBERSTOOL

管理 gitlab 成员操作。

gitlab_merge_requests

MERGE_REQUESTSTOOL

管理 gitlab 合并请求操作。

gitlab_merge_rules

MERGE_RULESTOOL

管理 gitlab 合并规则操作。

gitlab_milestones

MILESTONESTOOL

管理 GitLab 里程碑。

gitlab_namespaces

NAMESPACESTOOL

管理 gitlab 命名空间操作。

gitlab_notes

NOTESTOOL

管理 GitLab 在问题、合并请求、提交和史诗上的备注/评论。

gitlab_packages

PACKAGESTOOL

管理 gitlab 包操作。

gitlab_pipeline_schedules

PIPELINE_SCHEDULESTOOL

管理 gitlab 流水线计划操作。

gitlab_pipelines

PIPELINESTOOL

管理 gitlab 流水线操作。

gitlab_projects

PROJECTSTOOL

管理 gitlab 项目操作。

gitlab_protected_branches

PROTECTED_BRANCHESTOOL

管理 gitlab 受保护分支操作。

gitlab_releases

RELEASESTOOL

管理 gitlab 发布操作。

gitlab_runners

RUNNERSTOOL

管理 gitlab 运行器操作。

gitlab_snippets

SNIPPETSTOOL

管理 GitLab 代码片段。

gitlab_tags

TAGSTOOL

管理 gitlab 标签操作。

gitlab_users

USERSTOOL

管理 gitlab 用户操作。

gitlab_vulnerabilities

VULNERABILITIESTOOL

审查项目的依赖列表和安全漏洞(GitLab 对应 GitHub Dependabot 的功能)。

gitlab_wiki

WIKITOOL

管理 gitlab wiki 操作。

详细的 1:1 API 映射工具(MCP_TOOL_MODE=verboseboth

MCP 工具

切换环境变量

描述

gitlab_accept_merge_request

MERGE_REQUESTSTOOL

接受(合并)一个合并请求。

gitlab_api_request

SYSTEMTOOL

向 GitLab 服务器发起自定义 API 请求。

gitlab_approve_merge_request

MERGE_REQUESTSTOOL

批准特定的合并请求。

gitlab_archive_project

PROJECTSTOOL

归档特定的项目。

gitlab_cancel_merge_when_pipeline_succeeds

MERGE_REQUESTSTOOL

取消合并请求已排队的“流水线成功时合并”(自动合并)。

gitlab_cancel_project_job

PROJECTSTOOL

取消项目中的特定作业。

gitlab_cherry_pick_commit

REPOSITORIESTOOL

将提交拣选到新分支。

gitlab_create_branch

REPOSITORIESTOOL

在项目中创建新分支。

gitlab_create_commit

REPOSITORIESTOOL

创建新提交。

gitlab_create_commit_comment

REPOSITORIESTOOL

在提交上创建评论。

gitlab_create_environment

ENVIRONMENTSTOOL

为项目创建新环境。

gitlab_create_epic

ISSUESTOOL

创建新的组史诗。

gitlab_create_group_deploy_token

USERS_GROUPSTOOL

为组创建部署令牌。

gitlab_create_issue

ISSUESTOOL

创建新问题。

gitlab_create_label

ISSUESTOOL

创建新标签。

gitlab_create_merge_request

MERGE_REQUESTSTOOL

创建新的合并请求。

gitlab_create_milestone

ISSUESTOOL

创建项目里程碑。

gitlab_create_note

OTHERTOOL

在问题上创建新的备注/评论。

gitlab_create_pipeline_schedule

PIPELINESTOOL

为特定项目创建流水线计划。

gitlab_create_pipeline_schedule_variable

PIPELINESTOOL

为流水线计划创建变量。

gitlab_create_project

PROJECTSTOOL

创建新项目。

gitlab_create_project_deploy_token

PROJECTSTOOL

为项目创建部署令牌。

gitlab_create_project_level_rule

PROJECTSTOOL

创建新的项目级合并请求批准规则。

gitlab_create_release

ENVIRONMENTSTOOL

在项目中创建新发布。

gitlab_create_release_evidence

ENVIRONMENTSTOOL

为项目中的发布创建证据。

gitlab_create_snippet

OTHERTOOL

创建项目代码片段或个人代码片段。

gitlab_create_tag

REPOSITORIESTOOL

在项目中创建标签。

gitlab_create_user

USERS_GROUPSTOOL

创建新用户。

gitlab_create_wiki_page

OTHERTOOL

为项目创建新的 Wiki 页面。

gitlab_delete_branch

REPOSITORIESTOOL

删除项目中的分支。

gitlab_delete_environment

ENVIRONMENTSTOOL

删除项目的环境。

gitlab_delete_epic

ISSUESTOOL

删除组史诗。

gitlab_delete_group_deploy_token

USERS_GROUPSTOOL

删除组的部署令牌。

gitlab_delete_issue

ISSUESTOOL

删除问题。

gitlab_delete_label

ISSUESTOOL

删除标签。

gitlab_delete_merged_branches

REPOSITORIESTOOL

删除项目中所有已合并的分支。

gitlab_delete_milestone

ISSUESTOOL

删除项目里程碑。

gitlab_delete_note

OTHERTOOL

删除备注。

gitlab_delete_pipeline_schedule

PIPELINESTOOL

删除特定项目的流水线计划。

gitlab_delete_pipeline_schedule_variable

PIPELINESTOOL

从流水线计划中删除变量。

gitlab_delete_project

PROJECTSTOOL

删除特定项目。

gitlab_delete_project_deploy_token

PROJECTSTOOL

删除项目的部署令牌。

gitlab_delete_project_level_rule

PROJECTSTOOL

删除项目级合并请求批准规则。

gitlab_delete_project_runner

PROJECTSTOOL

从项目中删除运行器。

gitlab_delete_release

ENVIRONMENTSTOOL

删除项目中的发布。

gitlab_delete_runner

PIPELINESTOOL

删除运行器。

gitlab_delete_shared_project_link

PROJECTSTOOL

取消特定项目与组的共享。

gitlab_delete_snippet

OTHERTOOL

删除代码片段。

gitlab_delete_stopped_environments

ENVIRONMENTSTOOL

删除项目中已停止的环境(审查应用)。

gitlab_delete_tag

REPOSITORIESTOOL

删除项目中的标签。

gitlab_delete_user

USERS_GROUPSTOOL

删除用户。

gitlab_delete_wiki_page

OTHERTOOL

删除项目的 Wiki 页面。

gitlab_download_release_asset

ENVIRONMENTSTOOL

从组的发布中下载发布资产。

gitlab_download_repository_package

OTHERTOOL

下载特定项目的仓库包。

gitlab_edit_group

USERS_GROUPSTOOL

编辑特定组。

gitlab_edit_group_level_rule

USERS_GROUPSTOOL

编辑组级合并请求批准设置。

gitlab_edit_pipeline_schedule

PIPELINESTOOL

编辑特定项目的流水线计划。

gitlab_edit_project

PROJECTSTOOL

编辑特定项目。

gitlab_edit_project_level_rule

PROJECTSTOOL

编辑项目级合并请求批准设置。

gitlab_enable_project_runner

PROJECTSTOOL

在项目中启用运行器。

gitlab_erase_project_job

PROJECTSTOOL

擦除项目中的特定作业。

gitlab_get_approval_state_merge_requests

MERGE_REQUESTSTOOL

获取特定项目的合并请求批准状态。

gitlab_get_branch

REPOSITORIESTOOL

检索项目中特定分支的信息。

gitlab_get_branches

REPOSITORIESTOOL

检索项目中分支的信息。

gitlab_get_commit

REPOSITORIESTOOL

获取特定提交。

gitlab_get_commit_comments

REPOSITORIESTOOL

获取提交上的评论。

gitlab_get_commit_diff

REPOSITORIESTOOL

获取提交的差异。

gitlab_get_commit_discussions

REPOSITORIESTOOL

获取提交上的讨论。

gitlab_get_commit_gpg_signature

REPOSITORIESTOOL

获取提交的 GPG 签名。

gitlab_get_commit_merge_requests

REPOSITORIESTOOL

获取与提交关联的合并请求。

gitlab_get_commit_references

REPOSITORIESTOOL

获取提交的引用。

gitlab_get_commit_statuses

REPOSITORIESTOOL

获取提交的状态。

gitlab_get_commits

REPOSITORIESTOOL

获取提交。

gitlab_get_deploy_tokens

ENVIRONMENTSTOOL

获取所有部署令牌。

gitlab_get_environment

ENVIRONMENTSTOOL

获取特定环境的详细信息。

gitlab_get_environments

ENVIRONMENTSTOOL

获取项目的环境列表。

gitlab_get_epic

ISSUESTOOL

获取特定的组史诗。

gitlab_get_epics

ISSUESTOOL

获取组的所有史诗。

gitlab_get_group

USERS_GROUPSTOOL

获取特定组的详细信息。

gitlab_get_group_deploy_token

USERS_GROUPSTOOL

获取组的特定部署令牌。

gitlab_get_group_deploy_tokens

USERS_GROUPSTOOL

获取特定组的部署令牌。

gitlab_get_group_descendant_groups

USERS_GROUPSTOOL

获取特定组的后代组。

gitlab_get_group_issues

ISSUESTOOL

获取组(以及默认情况下其子组)的问题列表。

gitlab_get_group_level_rule

USERS_GROUPSTOOL

获取组级合并请求批准设置的详细信息。

gitlab_get_group_members

USERS_GROUPSTOOL

获取特定组的成员。

gitlab_get_group_merge_requests

MERGE_REQUESTSTOOL

获取与特定组关联的合并请求。

gitlab_get_group_projects

PROJECTSTOOL

获取与特定组关联的项目。

gitlab_get_group_releases

USERS_GROUPSTOOL

获取组中发布的信息。

gitlab_get_group_runners

PIPELINESTOOL

获取组中运行器的信息。

gitlab_get_group_subgroups

USERS_GROUPSTOOL

获取特定组的子组。

gitlab_get_group_vulnerabilities

VULNERABILITIESTOOL

获取组的安全漏洞发现(Ultimate)。

gitlab_get_groups

USERS_GROUPSTOOL

获取组列表。

gitlab_get_issue

ISSUESTOOL

获取单个问题。

gitlab_get_issues

ISSUESTOOL

获取问题列表。可按 project_id 过滤。

gitlab_get_label

ISSUESTOOL

按名称获取特定标签。

gitlab_get_labels

ISSUESTOOL

获取项目的所有标签。

gitlab_get_latest_release

ENVIRONMENTSTOOL

获取项目中最新发布的信息。

gitlab_get_latest_release_asset

ENVIRONMENTSTOOL

获取项目中最新发布的资产。

gitlab_get_latest_release_evidence

ENVIRONMENTSTOOL

获取项目中最新发布的证据。

gitlab_get_merge_request_level_rules

MERGE_REQUESTSTOOL

获取特定项目和合并请求的合并请求级批准规则。

gitlab_get_merge_requests

MERGE_REQUESTSTOOL

获取合并请求列表。

gitlab_get_milestone

ISSUESTOOL

获取特定的项目里程碑。

gitlab_get_milestones

ISSUESTOOL

获取项目的所有里程碑。

gitlab_get_namespace

USERS_GROUPSTOOL

获取特定命名空间的信息。

gitlab_get_namespaces

USERS_GROUPSTOOL

获取命名空间的信息。

gitlab_get_nested_projects_by_group

PROJECTSTOOL

获取组内嵌套项目的信息。

gitlab_get_note

OTHERTOOL

获取特定备注。

gitlab_get_notes

OTHERTOOL

获取特定问题的所有备注。

gitlab_get_pipeline

PIPELINESTOOL

获取项目中特定流水线的信息。

gitlab_get_pipeline_jobs

PIPELINESTOOL

获取项目中特定流水线关联的作业。

gitlab_get_pipeline_schedule

PIPELINESTOOL

获取项目中特定流水线计划的信息。

gitlab_get_pipeline_schedules

PIPELINESTOOL

获取特定项目的流水线计划。

gitlab_get_pipelines

PIPELINESTOOL

获取特定项目的流水线信息。

gitlab_get_pipelines_triggered_from_schedule

PIPELINESTOOL

获取从特定流水线计划触发的流水线。

gitlab_get_project

PROJECTSTOOL

获取特定项目的信息。

gitlab_get_project_contributors

PROJECTSTOOL

获取项目贡献者的信息。

gitlab_get_project_dependencies

VULNERABILITIESTOOL

获取项目的依赖列表(所有检测到的依赖)。

gitlab_get_project_deploy_token

PROJECTSTOOL

获取项目的特定部署令牌。

gitlab_get_project_deploy_tokens

PROJECTSTOOL

获取特定项目的部署令牌。

gitlab_get_project_groups

PROJECTSTOOL

获取与特定项目关联的组。

gitlab_get_project_job

PROJECTSTOOL

获取项目中特定作业的详细信息。

gitlab_get_project_job_log

PROJECTSTOOL

获取项目中特定作业的日志。

gitlab_get_project_jobs

PROJECTSTOOL

获取与特定项目关联的作业。

gitlab_get_project_level_merge_request_rule

PROJECTSTOOL

获取特定项目级合并请求批准规则的详细信息。

gitlab_get_project_level_merge_request_rules

PROJECTSTOOL

获取项目级合并请求批准规则。

gitlab_get_project_level_rule

PROJECTSTOOL

获取项目级合并请求批准设置的详细信息。

gitlab_get_project_members

PROJECTSTOOL

获取特定项目的成员。

gitlab_get_project_merge_request

PROJECTSTOOL

获取项目中特定合并请求的详细信息。

gitlab_get_project_merge_requests

PROJECTSTOOL

获取特定项目的合并请求。

gitlab_get_project_runners

PROJECTSTOOL

获取项目中运行器的信息。

gitlab_get_project_statistics

PROJECTSTOOL

获取特定项目的统计信息。

gitlab_get_project_vulnerabilities

VULNERABILITIESTOOL

获取项目的安全漏洞(Ultimate)。

gitlab_get_projects

PROJECTSTOOL

获取项目的信息。

gitlab_get_protected_branch

REPOSITORIESTOOL

获取项目中特定受保护分支的信息。

gitlab_get_protected_branches

REPOSITORIESTOOL

获取项目中受保护分支的信息。

gitlab_get_protected_environment

ENVIRONMENTSTOOL

获取特定受保护环境的详细信息。

gitlab_get_protected_environments

ENVIRONMENTSTOOL

获取项目的受保护环境列表。

gitlab_get_protected_tag

REPOSITORIESTOOL

获取项目中特定受保护标签的信息。

gitlab_get_protected_tags

REPOSITORIESTOOL

获取项目中受保护标签的信息。

gitlab_get_release_by_tag

REPOSITORIESTOOL

按标签获取项目中发布的信息。

gitlab_get_releases

ENVIRONMENTSTOOL

获取项目中发布的信息。

gitlab_get_repository_packages

OTHERTOOL

获取特定项目的仓库包信息。

gitlab_get_runner

PIPELINESTOOL

获取特定运行器的信息。

gitlab_get_runner_jobs

PIPELINESTOOL

获取特定运行器的作业。

gitlab_get_runners

PIPELINESTOOL

获取运行器的信息。

gitlab_get_snippet

OTHERTOOL

获取特定代码片段。

gitlab_get_snippets

OTHERTOOL

获取代码片段列表。可按 project_id 过滤。

gitlab_get_tag

REPOSITORIESTOOL

获取项目中特定标签的信息。

gitlab_get_tags

REPOSITORIESTOOL

获取项目中标签的信息。

gitlab_get_user

USERS_GROUPSTOOL

获取特定用户的信息。

gitlab_get_users

USERS_GROUPSTOOL

获取用户的信息。

gitlab_get_vulnerability

VULNERABILITIESTOOL

按全局 ID 获取单个漏洞(Ultimate)。

gitlab_get_wiki_list

OTHERTOOL

获取项目的 Wiki 页面列表。

gitlab_get_wiki_page

OTHERTOOL

获取特定 Wiki 页面的信息。

gitlab_merge_request_level_approvals

MERGE_REQUESTSTOOL

获取特定合并请求的批准。

gitlab_pause_runner

PIPELINESTOOL

暂停或恢复特定运行器。

gitlab_post_build_status_to_commit

REPOSITORIESTOOL

向提交发布构建状态。

gitlab_protect_branch

REPOSITORIESTOOL

保护项目中的特定分支。

gitlab_protect_environment

ENVIRONMENTSTOOL

保护项目的环境。

gitlab_protect_tag

REPOSITORIESTOOL

保护项目中的标签。

gitlab_publish_repository_package

OTHERTOOL

为特定项目发布仓库包。

gitlab_register_new_runner

PIPELINESTOOL

注册新的运行器。

gitlab_require_code_owner_approvals_single_branch

REPOSITORIESTOOL

要求项目中特定分支的代码所有者批准。

gitlab_reset_gitlab_runner_token

PIPELINESTOOL

重置 GitLab 运行器注册令牌。

gitlab_reset_group_runner_token

PIPELINESTOOL

重置组运行器的注册令牌。

gitlab_reset_project_runner_token

PROJECTSTOOL

重置项目运行器的注册令牌。

gitlab_reset_token

OTHERTOOL

重置运行器的身份验证令牌。

gitlab_retry_project_job

PROJECTSTOOL

重试项目中的特定作业。

gitlab_revert_commit

REPOSITORIESTOOL

还原提交。

gitlab_run_pipeline

PIPELINESTOOL

为特定项目运行流水线。

gitlab_run_pipeline_schedule

PIPELINESTOOL

为特定项目运行流水线计划。

gitlab_run_project_job

PROJECTSTOOL

运行项目中的特定作业。

gitlab_share_project

PROJECTSTOOL

与组共享特定项目。

gitlab_stop_environment

ENVIRONMENTSTOOL

停止项目的环境。

gitlab_stop_stale_environments

ENVIRONMENTSTOOL

停止项目的过期环境。

gitlab_take_pipeline_schedule_ownership

PIPELINESTOOL

接管特定项目的流水线计划所有权。

gitlab_unapprove_merge_request

MERGE_REQUESTSTOOL

取消批准特定的合并请求。

gitlab_unarchive_project

PROJECTSTOOL

取消归档特定项目。

gitlab_unprotect_branch

REPOSITORIESTOOL

取消保护项目中的特定分支。

gitlab_unprotect_environment

ENVIRONMENTSTOOL

取消保护项目的环境。

gitlab_unprotect_tag

REPOSITORIESTOOL

取消保护项目中的标签。

gitlab_update_environment

ENVIRONMENTSTOOL

更新项目的现有环境。

gitlab_update_epic

ISSUESTOOL

更新组史诗。

gitlab_update_issue

ISSUESTOOL

更新问题。

gitlab_update_label

ISSUESTOOL

更新现有标签。

gitlab_update_milestone

ISSUESTOOL

更新项目里程碑。

gitlab_update_note

OTHERTOOL

更新备注。

gitlab_update_project_level_rule

PROJECTSTOOL

更新现有的项目级合并请求批准规则。

gitlab_update_protected_environment

ENVIRONMENTSTOOL

更新项目的受保护环境。

gitlab_update_release

ENVIRONMENTSTOOL

更新项目中发布的信息。

gitlab_update_runner_details

PIPELINESTOOL

更新特定运行器的详细信息。

gitlab_update_snippet

OTHERTOOL

更新代码片段。

gitlab_update_user

USERS_GROUPSTOOL

更新现有用户。

gitlab_update_wiki_page

OTHERTOOL

更新项目的现有 Wiki 页面。

gitlab_upload_wiki_page_attachment

OTHERTOOL

为项目的 Wiki 页面上传附件。

gitlab_verify_runner_authentication

PIPELINESTOOL

验证运行器身份验证。

34 个按操作路由的工具(默认)· 196 个详细 1:1 工具。除非对应的 <DOMAIN>TOOL 开关设为 false,否则每个工具均启用;MCP_TOOL_MODE 选择展示形式(condensed 默认 · verbose 1:1 · both)。自动生成——请勿编辑。

详细的工具模式、参数结构及校验约束保存在 docs/usage.md 中。

动态工具选择与可见性

此 MCP 服务器支持在运行时进行动态工具集选择与可见性过滤。这允许您限制暴露的工具集,以防止撑爆 LLM 的上下文窗口。

您可以通过多种输入渠道配置工具过滤:

  • CLI 参数: 在启动时传入 --tools--toolsets(或其禁用对应项 --disabled-tools--disabled-toolsets)。

  • 环境变量: 定义标准环境变量:

    • MCP_ENABLED_TOOLS / MCP_DISABLED_TOOLS

    • MCP_ENABLED_TAGS / MCP_DISABLED_TAGS

  • HTTP SSE 请求头: 在传输初始化期间传入自定义请求头:

    • x-mcp-enabled-tools / x-mcp-disabled-tools

    • x-mcp-enabled-tags / x-mcp-disabled-tags

  • HTTP SSE 请求查询参数: 直接将查询参数附加到传输连接 URL:

    • ?tools=tool1,tool2

    • ?tags=tag1

当提供查询字符串或参数时,一个无 LLM 的知识图谱解析层(使用 DynamicToolOrchestrator)会将查询意图与已知的工具标签、名称或描述进行匹配,并具备安全回退和自动化的 24 小时后台缓存刷新功能。


MCP 配置示例

安装面向连接器的 [mcp] 附加组件。 示例使用 gitlab-api[mcp] 通过 agent-utilities[mcp] 添加 FastMCP / FastAPI;所需的 Agent Utilities 核心 仍携带 epistemic-graph[full][agent-runtime] 附加组件额外 启用模型编排。

stdio 传输(本地 IDE — Cursor、Claude Desktop、VS Code)

{
  "mcpServers": {
    "gitlab-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "gitlab-api[mcp]",
        "gitlab-mcp"
      ],
      "env": {
        "MCP_TOOL_MODE": "intent",
        "BRANCHESTOOL": "True",
        "COMMITSTOOL": "True",
        "CUSTOM_APITOOL": "True",
        "DEPLOY_TOKENSTOOL": "True",
        "ENVIRONMENTSTOOL": "True",
        "EPICSTOOL": "True",
        "GITLAB_TOKEN": "your_gitlab_token_here",
        "GITLAB_URL": "https://gitlab.example.com",
        "GRAPHQLTOOL": "True",
        "GRAPHQL_OPSTOOL": "True",
        "GROUPSTOOL": "True",
        "ISSUESTOOL": "True",
        "JOBSTOOL": "True",
        "LABELSTOOL": "True",
        "MEMBERSTOOL": "True",
        "MERGE_REQUESTSTOOL": "True",
        "MERGE_RULESTOOL": "True",
        "MILESTONESTOOL": "True",
        "MISCTOOL": "True",
        "NAMESPACESTOOL": "True",
        "NOTESTOOL": "True",
        "PACKAGESTOOL": "True",
        "PIPELINESTOOL": "True",
        "PIPELINE_SCHEDULESTOOL": "True",
        "PROJECTSTOOL": "True",
        "PROTECTED_BRANCHESTOOL": "True",
        "RELEASESTOOL": "True",
        "RUNNERSTOOL": "True",
        "SNIPPETSTOOL": "True",
        "TAGSTOOL": "True",
        "USERSTOOL": "True",
        "VULNERABILITIESTOOL": "True",
        "WIKITOOL": "True"
      }
    }
  }
}

运行时引用需要支持别名的启动器,例如 GraphOS。其他 启动器必须省略这些条目,并通过自身的运行时密钥边界注入解析后的值。

Streamable-HTTP 传输(网络 / 生产环境)

{
  "mcpServers": {
    "gitlab-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "gitlab-api[mcp]",
        "gitlab-mcp",
        "--transport",
        "streamable-http",
        "--port",
        "8000"
      ],
      "env": {
        "TRANSPORT": "streamable-http",
        "HOST": "127.0.0.1",
        "PORT": "8000",
        "MCP_TOOL_MODE": "intent",
        "BRANCHESTOOL": "True",
        "COMMITSTOOL": "True",
        "CUSTOM_APITOOL": "True",
        "DEPLOY_TOKENSTOOL": "True",
        "ENVIRONMENTSTOOL": "True",
        "EPICSTOOL": "True",
        "GITLAB_TOKEN": "your_gitlab_token_here",
        "GITLAB_URL": "https://gitlab.example.com",
        "GRAPHQLTOOL": "True",
        "GRAPHQL_OPSTOOL": "True",
        "GROUPSTOOL": "True",
        "ISSUESTOOL": "True",
        "JOBSTOOL": "True",
        "LABELSTOOL": "True",
        "MEMBERSTOOL": "True",
        "MERGE_REQUESTSTOOL": "True",
        "MERGE_RULESTOOL": "True",
        "MILESTONESTOOL": "True",
        "MISCTOOL": "True",
        "NAMESPACESTOOL": "True",
        "NOTESTOOL": "True",
        "PACKAGESTOOL": "True",
        "PIPELINESTOOL": "True",
        "PIPELINE_SCHEDULESTOOL": "True",
        "PROJECTSTOOL": "True",
        "PROTECTED_BRANCHESTOOL": "True",
        "RELEASESTOOL": "True",
        "RUNNERSTOOL": "True",
        "SNIPPETSTOOL": "True",
        "TAGSTOOL": "True",
        "USERSTOOL": "True",
        "VULNERABILITIESTOOL": "True",
        "WIKITOOL": "True"
      }
    }
  }
}

或者,通过 url 连接到预部署的 Streamable-HTTP 实例:

{
  "mcpServers": {
    "gitlab-mcp": {
      "url": "http://localhost:8000/gitlab-mcp/mcp"
    }
  }
}

以最小权限 stdio 子进程运行经过审查的容器镜像(无 监听器或已发布端口):

docker run -i --rm \
  --read-only \
  --cap-drop=ALL \
  --security-opt=no-new-privileges \
  --pids-limit=256 \
  --tmpfs /tmp:rw,noexec,nosuid,nodev,size=64m \
  -e TRANSPORT=stdio \
  -e MCP_TOOL_MODE=intent \
  -e BRANCHESTOOL=True \
  -e COMMITSTOOL=True \
  -e CUSTOM_APITOOL=True \
  -e DEPLOY_TOKENSTOOL=True \
  -e ENVIRONMENTSTOOL=True \
  -e EPICSTOOL=True \
  -e GITLAB_TOKEN=your_gitlab_token_here \
  -e GITLAB_URL=https://gitlab.example.com \
  -e GRAPHQLTOOL=True \
  -e GRAPHQL_OPSTOOL=True \
  -e GROUPSTOOL=True \
  -e ISSUESTOOL=True \
  -e JOBSTOOL=True \
  -e LABELSTOOL=True \
  -e MEMBERSTOOL=True \
  -e MERGE_REQUESTSTOOL=True \
  -e MERGE_RULESTOOL=True \
  -e MILESTONESTOOL=True \
  -e MISCTOOL=True \
  -e NAMESPACESTOOL=True \
  -e NOTESTOOL=True \
  -e PACKAGESTOOL=True \
  -e PIPELINESTOOL=True \
  -e PIPELINE_SCHEDULESTOOL=True \
  -e PROJECTSTOOL=True \
  -e PROTECTED_BRANCHESTOOL=True \
  -e RELEASESTOOL=True \
  -e RUNNERSTOOL=True \
  -e SNIPPETSTOOL=True \
  -e TAGSTOOL=True \
  -e USERSTOOL=True \
  -e VULNERABILITIESTOOL=True \
  -e WIKITOOL=True \
  registry.example.invalid/gitlab-api@sha256:<digest> gitlab-mcp

对于容器化网络 HTTP,请通过运营商拥有的部署配置文件提供经过身份验证的 TLS 入口(或 直接服务器 TLS)、精确的 MCP_ALLOWED_HOSTS 以及精确的可信代理 CIDR 策略。生成器不会发出未经身份验证的非回环监听器。

根据代码读取的环境表面自动生成(MCP_TOOL_MODE + 包变量)——请勿编辑。

其他部署选项

gitlab-api 可以作为本地 stdio 进程或容器运行,也可以位于远程 网络边界之后。 部署指南 包含 详细的传输契约。

  • 本地容器 — 以最小权限 stdio 子进程启动经过审查的不可变镜像, 无监听器或已发布端口。

  • 远程 URL — 通过运营商提供的经过身份验证的 HTTPS 入口连接。将其 URL、出站身份引用、信任配置文件及精确的 MCP_ALLOWED_HOSTS 保存在 AgentConfig 中。


环境变量

包环境变量

变量

示例

描述

HOST

0.0.0.0

PORT

8000

TRANSPORT

stdio

选项:stdio、streamable-http、sse

ENABLE_OTEL

True

OTEL_EXPORTER_OTLP_ENDPOINT

http://localhost:8080/api/public/otel

OTEL_EXPORTER_OTLP_PUBLIC_KEY

secret-injected

OTEL_EXPORTER_OTLP_SECRET_KEY

secret-injected

OTEL_EXPORTER_OTLP_PROTOCOL

http/protobuf

EUNOMIA_TYPE

none

选项:none、embedded、remote

EUNOMIA_POLICY_FILE

mcp_policies.json

EUNOMIA_REMOTE_URL

http://eunomia-server:8000

GITLAB_URL

https://gitlab.example.com

GITLAB_TOKEN

secret-injected

GITLAB_TLS_PROFILE

命名的 AgentConfig TLS 配置文件;留空则使用配置的默认值

MISCTOOL

True

BRANCHESTOOL

True

PROTECTED_BRANCHESTOOL

True

COMMITSTOOL

True

DEPLOY_TOKENSTOOL

True

ENVIRONMENTSTOOL

True

EPICSTOOL

True

GROUPSTOOL

True

ISSUESTOOL

True

JOBSTOOL

True

LABELSTOOL

True

MEMBERSTOOL

True

MERGE_REQUESTSTOOL

True

MERGE_RULESTOOL

True

MILESTONESTOOL

True

NAMESPACESTOOL

True

NOTESTOOL

True

PACKAGESTOOL

True

PIPELINESTOOL

True

PIPELINE_SCHEDULESTOOL

True

PROJECTSTOOL

True

RELEASESTOOL

True

RUNNERSTOOL

True

SNIPPETSTOOL

True

TAGSTOOL

True

USERSTOOL

True

VULNERABILITIESTOOL

True

WIKITOOL

True

CUSTOM_APITOOL

True

GRAPHQLTOOL

True

GRAPHQL_OPSTOOL

True

继承的 agent-utilities 变量(适用于每个连接器)

变量

示例

描述

MCP_TOOL_MODE

intent

工具表面:intent | condensed | verbose | both

MCP_ENABLED_TOOLS

逗号分隔的工具允许列表

MCP_DISABLED_TOOLS

逗号分隔的工具拒绝列表

MCP_ENABLED_TAGS

逗号分隔的标签允许列表

MCP_DISABLED_TAGS

逗号分隔的标签拒绝列表

MCP_CLIENT_AUTH

出站 MCP 子认证:oidc-client-credentials | basic | none

OIDC_CLIENT_ID

OIDC 客户端 ID(服务账户认证)

OIDC_CLIENT_SECRET_REF

secret://identity/oidc-client-secret

OIDC 服务账户的运行时密钥引用

MCP_BASIC_AUTH_USERNAME

HTTP Basic 用户名(MCP_CLIENT_AUTH=basic

MCP_BASIC_AUTH_PASSWORD_REF

secret://identity/mcp-basic-password

HTTP Basic 认证的运行时密钥引用(MCP_CLIENT_AUTH=basic

DEBUG

False

详细日志

PYTHONUNBUFFERED

1

无缓冲的标准输出(容器中推荐)

MCP_URL

http://localhost:8000/mcp

代理连接的 MCP 服务器 URL

PROVIDER

openai

代理的 LLM 提供商

MODEL_ID

gpt-4o

代理的模型 ID

ENABLE_WEB_UI

True

提供 AG-UI 网页界面

45 个包 + 16 个继承变量。从 .env.example + 共享的 agent-utilities 集合自动生成 — 请勿编辑。

服务器读取的每个变量。

连接与凭据

连接器默认是单主机的,当配置了 gitlab_instances 时是多租户的(参见 多租户)。当未配置实例时,它会回退到下面的单主机 GITLAB_* 值。

变量

描述

默认值

GITLAB_URL

GitLab 实例基础 URL

https://gitlab.example.com

GITLAB_TOKEN

GitLab 个人/项目访问令牌(glpat-…

GITLAB_TLS_PROFILE

可选的运行时 TLS 配置文件选择器

(未设置)

多个实例在共享的 agent-utilities XDG 配置(~/.config/agent-utilities/config.json)中的 gitlab_instances 下声明一次 — 每个条目包含 nameurltoken 和可选的 tls_profile。从客户端工厂按名称定位租户;未设置的实例解析为第一个配置的实例(否则使用 GITLAB_URL / GITLAB_TOKEN)。

MCP 服务器 / 传输

变量

描述

默认值

TRANSPORT

stdiostreamable-httpsse

stdio

HOST

绑定主机(HTTP 传输)

0.0.0.0

PORT

绑定端口(HTTP 传输)

8000

MCP_TOOL_MODE

工具表面:condensedverboseboth

condensed

MCP_ENABLED_TOOLS / MCP_DISABLED_TOOLS

逗号分隔的工具允许/拒绝列表

MCP_ENABLED_TAGS / MCP_DISABLED_TAGS

逗号分隔的标签允许/拒绝列表

DEBUG

详细日志

False

PYTHONUNBUFFERED

无缓冲的标准输出(容器中推荐)

1

工具开关

每个动作路由的工具都可以通过其开关环境变量(设置为 false)单独禁用。完整列表在上面的 可用 MCP 工具 表中(例如 PROJECTSTOOLMERGE_REQUESTSTOOLPIPELINESTOOLGRAPHQLTOOLCUSTOM_APITOOL)。

遥测与治理

变量

描述

默认值

ENABLE_OTEL

启用 OpenTelemetry 导出

True

OTEL_EXPORTER_OTLP_ENDPOINT

OTLP 收集器端点

OTEL_EXPORTER_OTLP_PUBLIC_KEY / OTEL_EXPORTER_OTLP_SECRET_KEY

OTLP 认证密钥

OTEL_EXPORTER_OTLP_PROTOCOL

OTLP 协议(例如 http/protobuf

EUNOMIA_TYPE

授权模式:noneembeddedremote

none

EUNOMIA_POLICY_FILE

嵌入式策略文件

mcp_policies.json

EUNOMIA_REMOTE_URL

远程 Eunomia 服务器 URL

代理 CLI(仅完整 [agent] 运行时)

变量

描述

默认值

MCP_URL

代理连接的 MCP 服务器 URL

http://localhost:8000/mcp

PROVIDER

LLM 提供商(例如 openai

openai

MODEL_ID

模型 ID(例如 gpt-4o

gpt-4o

ENABLE_WEB_UI

提供 AG-UI 网页界面

True

参见 .env.example 获取可复制粘贴的起点。

代理

此仓库包含一个完全集成的 Pydantic AI 图代理。它通过 Agent Control Protocol (ACP) 通信,并与 Agent Web UI (AG-UI) 和终端界面无缝交互。

运行代理 CLI

要启动交互式命令行代理:

# Set credentials
export GITLAB_URL="your_value"
export GITLAB_TOKEN="your_value"

# Run the agent server
gitlab-agent --provider openai --model-id gpt-4o

Docker Compose 编排

以下 docker/agent.compose.yml 将代理、Web UI 和终端界面配置在一起:

version: '3.8'

services:
  gitlab-api-mcp:
    image: example/gitlab-api:mcp
    container_name: gitlab-api-mcp
    hostname: gitlab-api-mcp
    restart: always
    env_file:
      - ../.env
    environment:
      - PYTHONUNBUFFERED=1
      - HOST=0.0.0.0
      - PORT=8000
      - TRANSPORT=streamable-http
    ports:
      - "8000:8000"
    healthcheck:
      test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

  gitlab-api-agent:
    image: example/gitlab-api@sha256:<digest>
    container_name: gitlab-api-agent
    hostname: gitlab-api-agent
    restart: always
    depends_on:
      - gitlab-api-mcp
    env_file:
      - ../.env
    command: [ "gitlab-agent" ]
    environment:
      - PYTHONUNBUFFERED=1
      - HOST=0.0.0.0
      - PORT=9017
      - MCP_URL=http://gitlab-api-mcp:8000/mcp
      - PROVIDER=${PROVIDER:-openai}
      - MODEL_ID=${MODEL_ID:-gpt-4o}
      - ENABLE_WEB_UI=True
      - ENABLE_OTEL=True
    ports:
      - "9017:9017"
    healthcheck:
      test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:9017/health')"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 10s
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"

详细的图节点架构说明、自定义技能配置和代理跟踪指南可在 docs/deployment.md 中找到。


多租户(多个 GitLab 实例)

客户端原生支持多租户。实例集合在共享的 agent-utilities XDG 配置~/.config/agent-utilities/config.json)中的 gitlab_instances 下声明一次 — 与 Knowledge-Graph GitLab 索引器读取的相同列表,因此一个配置驱动代码/元数据索引和每个 API/MCP 调用:

{
  "gitlab_instances": [
    {"name": "internal", "url": "https://gitlab.example.invalid", "token": "<GITLAB_TOKEN>", "tls_profile": "private-pki"},
    {"name": "public",   "url": "https://gitlab.com",  "token": "<GITLAB_TOKEN>"}
  ]
}

从客户端工厂按名称定位租户;裸 URL 仍然有效,未设置的实例解析为第一个配置的实例(否则使用 GITLAB_URL/GITLAB_TOKEN):

from gitlab_api.auth import get_client
from gitlab_api.instances import list_configured_instances

internal = get_client(instance="internal")   # resolves URL, token, and TLS profile
public   = get_client(instance="public")
default  = get_client()                        # first configured / GITLAB_URL fallback
names    = [i.name for i in list_configured_instances()]

MCP 服务器暴露一个 gitlab_instances 工具(action=list|get)来发现配置的租户(令牌永远不会返回)。当未配置实例时,连接器回退到它一直使用的单主机 GITLAB_URL/GITLAB_TOKEN

安全与治理

直接构建在企业级 agent-utilities 核心之上,完全支持标准安全参数:

访问控制与策略执行

  • Eunomia 策略: 细粒度、策略驱动的工具授权。支持 none、本地 embeddedmcp_policies.json)或集中式 remote 模式。

  • OIDC 令牌委派: 符合 RFC 8693 令牌交换,用于从 Web UI / ACP → Agent → MCP 传递认证用户凭据。

  • 作用域凭据: 执行上下文运行限制为特定调用者身份。

运行时安全网格

功能

功能描述

启用方式

工具守卫

敏感度检查,带人工验证

默认启用

提示注入防御

输入扫描、重复监控和递归循环阻止

默认启用

上下文安全守卫

卡死循环检测和上下文溢出预防性警报

默认启用


安装

选择与您要运行的内容匹配的附加组件:

附加组件

安装内容

使用场景

gitlab-api[mcp]

连接器聚焦的 MCP 服务器(agent-utilities[mcp] — FastMCP/FastAPI + epistemic-graph[full]

您只运行 MCP 服务器(最小安装/镜像)

gitlab-api[agent]

代理运行时(agent-utilities[agent-runtime,logfire] — 模型编排 + epistemic-graph[full]

您运行 集成代理

gitlab-api[all]

所有内容(mcp + agent + gql + logfire

开发 / 两种表面

# Connector-focused MCP server (includes the shared graph engine)
uv pip install "gitlab-api[mcp]"

# Agent runtime (adds model orchestration to the shared graph engine)
uv pip install "gitlab-api[agent]"

# Everything (development)
uv pip install "gitlab-api[all]"      # or: python -m pip install "gitlab-api[all]"

容器镜像(:mcp:agent

一个多阶段 docker/Dockerfile 构建两个大小合适的镜像,通过 --target 选择:

镜像标签

构建目标

内容

入口点

example/gitlab-api:mcp

--target mcp

gitlab-api[mcp]面向连接器,包含 epistemic-graph[full];无模型编排栈

gitlab-mcp

example/gitlab-api@sha256:<digest>

--target agent (默认)

gitlab-api[agent]Agent 运行时,模型编排 + epistemic-graph[full]

gitlab-agent

docker build --target mcp   -t example/gitlab-api:mcp    docker/   # connector-focused MCP server
docker build --target agent -t example/gitlab-api:agent-local docker/   # agent runtime

docker/mcp.compose.yml 运行面向连接器的 :mcp 服务器;docker/agent.compose.yml 运行 Agent(immutable agent digest)并附带一个同址 :mcp 边车。

知识图谱数据库(epistemic-graph

[mcp][agent] 都通过必需的 Agent Utilities 核心依赖(epistemic-graph[full])携带 epistemic-graph 引擎。[mcp] extra 使服务器保持面向连接器;[agent] 额外启用模型编排。本地部署可以使用内置引擎。对于生产环境或共享状态,请将 epistemic-graph 作为专用数据库服务运行,并配置运行时使用它。部署方案(单节点 + Raft 高可用)、连接配置和架构图记录在 epistemic-graph 部署指南 中。


文档

完整文档发布在官方文档站点上,是安装、部署和日常操作的首选参考。

页面

内容

安装

pip、源码、extra、预构建 Docker 镜像

部署

运行 MCP 和 Agent 服务器、Compose、Caddy + Technitium、环境配置

使用

MCP 工具、Api 客户端、CLI

支撑平台

使用 Docker 部署 GitLab

概述

动作路由的工具表面与架构

概念

概念注册表(CONCEPT:GL-*


仓库所有者

GitHub followers GitHub User's stars


贡献

欢迎贡献!请在提交拉取请求之前执行本地检查以确保代码质量:

  • 使用 ruff format . 格式化代码

  • 使用 ruff check . 检查代码

  • 使用 mypy . 验证类型安全

  • 使用 pytest 执行测试套件

使用 agent-utilities-deployment 部署

使用整合的 agent-utilities-deployment 工作流来配置此包。它会选择已安装包、可编辑源码或不可变容器路径;仅在 AgentConfig 中记录运行时密钥和 TLS 配置文件引用;并运行 doctor、注册、策略、可观测性和回滚门禁。请让您的 Agent "使用 agent-utilities-deployment 部署 gitlab-api"

安装模式

命令

已安装包

uv tool install "gitlab-api[mcp]",然后运行 gitlab-mcp

可编辑源码

uv pip install -e ".[agent]",然后运行 gitlab-mcp

不可变容器

通过操作员选择的编排器部署 registry.example.invalid/gitlab-api@sha256:<digest>

该仓库不嵌入任何部署配置文件、凭据值、证书路径或环境特定的端点。请在运行时通过 AgentConfig 和已配置的密钥提供程序提供这些内容。

受治理的能力契约

此包提供一个紧凑的规范技能表面,专业流程以引用工作流的形式保留。当前的 MCP 工具、技能元数据、connector_manifest.yml、本体、映射、形状、夹具、迁移、工具模式指纹和认证元数据共同构成一个版本化的能力契约。请一起验证它们;不要依赖过时的工具名称或历史性的按任务技能包装器。

运行时端点、凭据、证书信任、租户身份、保留策略和可观测性策略都是部署输入,绝不是打包值。在启用网络传输、连接器摄取、GraphOS 委派或跟踪导出之前,请参阅配置、信任与隐私

A
license - permissive license
Not graded
quality - not tested
A
maintenance

Maintenance

Maintainers
Response time
2dRelease cycle
147Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Knuckles-Team/gitlab-api'

If you have feedback or need assistance with the MCP directory API, please join our Discord server