GitLab Duo Agent平台新增支持模型上下文协议

GitLab Duo Agent平台新增对模型上下文协议的支持,实现了AI与内部工具的安全连接。该功能让开发者能在IDE中通过自然语言访问项目跟踪器、数据库等内部系统,显著提升开发效率并减少上下文切换。

GitLab Duo Agent平台新增支持模型上下文协议

GitLab的MCP支持增强了AI驱动的开发工作流程,将Duo Agent平台连接为MCP客户端,并作为MCP服务器为外部AI助手提供服务。

人工智能(AI)可以通过生成代码、调试和自动化常规任务来加速开发。但仅凭自身能力,AI受限于训练数据或公共资源,而开发者通常需要访问内部系统,如项目跟踪器、仪表板、数据库、Figma中的设计文件或Google Drive中的文档。

首次在GitLab Duo Agent平台中引入的模型上下文协议(MCP)为AI提供了对内部工具的安全访问,使开发者能够直接在其工作流程中获得全面协助。

什么是MCP?

MCP由Anthropic于2024年首次推出,是一个连接AI与数据和工具的开放标准。它作为一个安全的双向通道工作:MCP客户端(AI应用程序、自主代理或开发工具)请求数据或操作,而MCP服务器从其连接的数据源提供受信任的授权响应。

MCP服务器充当各种系统的安全桥梁:它们可以连接到数据库、API、文件系统、云服务或任何外部工具以检索和提供数据。这使得AI工具和代理能够超越其初始训练数据,通过允许它们访问实时信息并执行操作(如重新安排会议或检查日历可用性),同时保持严格的安全性、隐私性和审计控制。

为什么AI使用MCP而不是API?

您可能会问:如果AI已经可以直接调用系统API,为什么还要使用MCP?挑战在于每个API都有自己的身份验证、数据格式和行为,这将要求AI为每个系统使用自定义连接器,并在API发展时持续维护它们,使得直接集成复杂且容易出错。MCP通过提供标准化的安全接口来处理身份验证、权限和数据转换,从而解决了这个问题。这使得AI工具能够可靠地连接到任何系统,同时简化集成并确保一致、安全的行为。

GitLab的MCP支持

GitLab通过MCP支持扩展了Duo Agentic Chat,打破了先前将AI与开发者日常使用的工具隔离开的障碍。这使开发者能够直接从他们最喜欢的IDE中以自然语言访问他们的整个工具包,使GitLab Duo Agent平台能够提供全面协助,而不会中断开发者流程或强制进行破坏性的上下文切换。

GitLab通过两个互补的工作流程提供全面的MCP支持:

  • MCP客户端工作流程:Duo Agent平台作为MCP客户端,允许功能访问各种外部工具和服务。
  • MCP服务器工作流程:GitLab还提供MCP服务器功能,使AI工具和应用程序如Claude Desktop、Cursor和其他MCP兼容工具能够安全连接到您的GitLab实例。

MCP客户端工作流程的交互式演示

想象这个常见的周一早晨场景:您公司的结账服务出现超时错误。客户无法完成购买,您需要快速调查。通常,您会打开Jira查看事件单,滚动Slack获取更新,并检查Grafana仪表板以查看错误峰值。借助GitLab的MCP支持,您可以直接从IDE的聊天中以自然语言完成所有这些操作。MCP在所有系统中关联数据,立即为您提供完整情况,而无需离开开发工作流程。

为了亲身体验此功能,我们创建了一个交互式演示,说明了上述支付服务场景。点击下图开始演示。

设置GitLab MCP客户端

在开始通过GitLab Duo Agentic Chat或软件开发流程查询数据之前,您需要在开发环境中配置MCP。步骤包括:

  1. 为您的群组启用MCP - 在GitLab群组设置中启用MCP支持,以允许Duo功能连接到外部系统。

  2. 设置MCP服务器 - 在mcp.json文件中以JSON格式定义MCP服务器。在此位置创建文件:

    Windows: C:\Users\<username>\AppData\Roaming\GitLab\duo\mcp.json
    所有其他操作系统: ~/.gitlab/duo/mcp.json

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
{
  "mcpServers": {
    "server-name": {
      "type": "stdio",
      "command": "path/to/server",
      "args": ["--arg1", "value1"],
      "env": {
        "ENV_VAR": "value"
      }
    },
    "http-server": {
      "type": "http",
      "url": "http://localhost:3000/mcp"
    },
    "sse-server": {
      "type": "sse",
      "url": "http://localhost:3000/mcp/sse"
    }
  }
}
  1. 安装和配置IDE - 确保安装Visual Studio Code以及GitLab Workflow扩展(6.28.2或更高版本支持基本MCP功能,6.35.6或更高版本支持完整功能)。

有关完整的分步说明、配置示例和故障排除提示,请参阅GitLab MCP客户端文档。

示例项目

为了补充演示,我们分享了作为其基础的项目。该项目允许您在自己的环境中重现相同的流程,并亲手探索GitLab的MCP功能。

它演示了在模拟企业设置中的MCP功能,使用来自Jira、Slack和Grafana的模拟数据来建模事件响应场景。包含的mcp.json配置显示了如何连接到本地MCP服务器(enterprise-data-v2)或可选地使用AWS服务扩展设置以实现云集成。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
{
  "mcpServers": {
    "enterprise-data-v2": {
      "type": "stdio", 
      "command": "node",
      "args": ["src/server.js"],
      "cwd": "/path/to/your/project"
    },
    "aws-knowledge": {
      "type": "stdio",
      "command": "npx",
      "args": ["mcp-remote", "https://knowledge-mcp.global.api.aws"]
    },
    "aws-console": {
      "type": "stdio",
      "command": "npx", 
      "args": ["@imazhar101/mcp-aws-server"],
      "env": {
        "AWS_REGION": "YOUR_REGION",
        "AWS_PROFILE": "default",
        "AWS_ACCESS_KEY_ID": "YOUR_ACCESS_KEY_ID",
        "AWS_SECRET_ACCESS_KEY": "YOUR_SECRET_ACCESS_KEY"
      }
    }
  }
}

安全说明:aws-console使用社区开发的MCP服务器包(@imazhar101/mcp-aws-server)进行AWS集成,该包尚未经过独立验证。这仅用于演示和学习目的。对于生产用途,请彻底评估包或使用官方替代方案。

要开始使用,请克隆项目,使用npm install安装依赖项,然后使用npm start启动本地MCP服务器。使用上述配置创建~/.gitlab/duo/mcp.json文件,更新文件路径以匹配您的本地设置,并重新启动VS Code以加载MCP配置。可选地,添加您的AWS凭据以体验实时云集成。

在此处克隆项目:[GitLab Duo MCP演示](GitLab Duo MCP Demo)。

演示项目的示例提示

配置示例项目后,您可以直接从IDE中的GitLab Duo Agentic Chat开始探索您的数据和工具。以下是一些可以尝试的提示:

  • “您可以通过MCP访问哪些工具?”
  • “显示最近关于数据库问题的Slack讨论。”

GitLab MCP服务器功能

到目前为止,我们已经了解了GitLab Duo Agent平台如何作为MCP客户端连接到外部MCP服务器。现在,让我们探索GitLab MCP服务器功能。

GitLab MCP服务器允许像Cursor或Claude Desktop这样的AI工具安全连接到您的GitLab实例,并通过自然语言处理您的开发数据。身份验证通过OAuth 2.0动态客户端注册处理,因此AI工具可以自动注册并在获得适当授权后访问您的GitLab数据。

目前,服务器支持:

  • 问题 - 获取详细信息或创建新问题
  • 合并请求 - 查看详细信息、提交和文件更改
  • 流水线 - 列出合并请求的作业和流水线
  • 服务器信息 - 检查MCP服务器版本

有关可用工具和功能的完整列表,请参阅MCP服务器文档。

交互式演示:GitLab MCP服务器实战

通过我们的交互式演示亲身体验GitLab MCP服务器。

它将指导您设置带有MCP服务器的Cursor,并使用Cursor Chat安全连接到您的GitLab实例。您将看到如何执行诸如查看问题、创建新问题和检查合并请求等操作,所有这些都直接通过自然语言完成,而无需离开开发环境。

如何在AI工具中配置MCP服务器

  1. 启用功能标志
    在您的GitLab实例中激活mcp_serveroauth_dynamic_client_generation

  2. 将GitLab MCP服务器配置添加到AI工具
    将MCP服务器条目添加到您工具的配置文件中(Cursor的mcp.json,Claude Desktop的claude_desktop_config.json):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
{
  "mcpServers": {
    "GitLab": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://<your-gitlab-instance>/api/v4/mcp",
        "--static-oauth-client-metadata",
        "{\"scope\": \"mcp\"}"
      ]
    }
  }
}
  1. 注册和身份验证
    在首次连接时,AI工具将:
    • 自动注册为OAuth应用程序
    • 请求mcp范围的授权
    • 在浏览器中授权

连接时,MCP客户端将自动打开您的默认浏览器以完成OAuth流程。在GitLab中审查并批准请求以授予访问权限,并接收用于安全API访问的访问令牌。

使用MCP服务器

一旦您的AI工具连接到MCP服务器,您就可以使用自然语言直接从开发环境中安全地获取和处理GitLab数据(问题、合并请求和流水线)。例如:

  • “获取项目123中问题42的详细信息”
  • “创建一个标题为’修复登录错误’的新问题,描述中包含关于密码特殊字符的信息”
  • “显示gitlab-org/gitlab项目中合并请求15的所有提交”
  • “合并请求25中更改了哪些文件?”
  • “显示流水线12345中的所有作业”

此功能是实验性的,由功能标志控制,尚未准备好用于生产用途。

有关完整的分步说明、配置示例和故障排除提示,请参阅GitLab MCP服务器文档。

总结

GitLab Duo Agent平台引入对MCP的支持,实现了前所未有的AI驱动开发工作流程。通过MCP支持,GitLab既充当客户端又充当服务器:

  • MCP客户端:GitLab Duo Agent平台可以安全访问外部系统的数据和工具,将丰富的上下文直接带入IDE。
  • MCP服务器:外部AI工具如Cursor或Claude Desktop可以连接到您的GitLab实例,访问项目数据并执行操作,同时保持严格的安全性和隐私性。

这种双向支持减少了上下文切换,加速了开发者工作流程,并确保AI能够在您的整个工具包中提供有意义的协助。

立即尝试

尝试GitLab Duo Agent平台的测试版并探索MCP功能。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计