Token导航 LogoToken导航

MCP Server · 开发工具

Kepler MCP GitLab Server

一个生产就绪的MCP服务器,提供GitLab集成工具,使AI助手如Claude Desktop和ChatGPT能够与GitLab实例交互。

stdio官方级别未说明来源级核验工具 43
GitLab集成开发工具PythonClaudeClaude Desktop

快速开始

作者 / 组织
ryan-rbw
提供方
ryan-rbw

工具数量

43

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

2 个

MCP World

选型结论

Kepler MCP GitLab Server 属于开发工具类 MCP Server,公开资料标注 43 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude,有可以直接复制的安装命令;接入前要先准备 OAuth 授权。

分类

开发工具

传输方式

stdio

认证方式

OAuth 授权

部署方式

支持远程部署

安装与配置

安装命令

pip install -e .

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 43 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

开普勒MCP GitLab服务器

一个生产就绪的MCP(模型上下文协议)服务器,为Claude Desktop和ChatGPT等AI助手提供GitLab集成工具。

运作原理

此MCP服务器充当AI助手(ChatGPT、Claude等)和GitLab实例之间的桥梁。用户通过GitLab OAuth进行身份验证,就像连接任何第三方应用程序一样。

┌─────────────────┐      ┌─────────────────────┐      ┌─────────────────┐
│   AI Assistant  │      │   MCP Server        │      │    GitLab       │
│   (ChatGPT,     │◄────►│   (Your Company     │◄────►│    (Your        │
│    Claude)      │      │    Hosted)          │      │    Instance)    │
└─────────────────┘      └─────────────────────┘      └─────────────────┘
        │                         │                          │
        │    1. User connects     │                          │
        │    ─────────────────►   │                          │
        │                         │   2. Redirect to GitLab  │
        │                         │   ─────────────────────► │
        │                         │                          │
        │                         │   3. User authorizes     │
        │                         │   ◄───────────────────── │
        │                         │                          │
        │    4. Connected!        │   5. API calls with      │
        │    ◄─────────────────   │      user's permissions  │
        │                         │   ◄────────────────────► │

面向终端用户:只需将MCP服务器URL添加到他们的AI助手中,并使用GitLab进行授权。无需令牌或配置。

对于管理员:一次性设置部署服务器并向GitLab注册OAuth应用程序。

特性

  • GitLab集成:通过MCP工具访问项目、问题、合并请求等
  • OAuth 2.0身份验证:用户通过GitLab授权-无需管理令牌
  • 每个用户权限:尊重每个用户的GitLab权限
  • 多种运输方式:stdio用于本地(Claude Desktop),SSE用于HTTP(ChatGPT)
  • 安全令牌存储:使用Fernet加密的加密会话存储
  • Docker支持:生产就绪的容器图像

可用工具

连接后,用户可以要求他们的AI助手:

工具说明
项目
list_projects列出可访问的GitLab项目
get_project获取项目详细信息
search_projects搜索项目
get_project_languages获取语言细分
问题
list_issues列出项目中的问题
get_issue获取问题详细信息
create_issue创建新问题
update_issue更新问题
close_issue / reopen_issue更改问题状态
list_issue_comments列出对某个问题的评论
add_issue_comment添加评论
合并请求
list_merge_requests列出项目中的MR
get_merge_request获取MR详细信息
create_merge_request创建新MR
update_merge_request更新MR
merge_merge_request合并MR
approve_merge_request批准MR
get_merge_request_changes获取MR差异
list_merge_request_discussions列出评论主题
仓库
list_branches列出存储库分支
get_branch获取分行详细信息
create_branch创建新分支
delete_branch删除分支
list_tags列出存储库标签
get_tag获取标签详细信息
create_tag创建新标签
delete_tag删除标签
compare_branches比较两个分支/提交
list_repository_tree列出文件和目录
get_file获取文件元数据
get_file_content获取文件内容(已解码)
create_file创建新文件
update_file更新现有文件
delete_file删除文件
get_file_blame获取文件责任/历史记录
list_commits列表存储库提交
get_commit获取提交详细信息
get_commit_diff获取提交差异
cherry_pick_commit樱桃挑一个承诺
get_commit_refs获取包含提交的引用
公用事业
get_current_user获取经过身份验证的用户信息
get_gitlab_config获取服务器配置

______________________________________________________________________

部署指南(适用于管理员)

本节适用于为其组织部署MCP服务器的IT管理员。

先决条件

  • Python 3.12+或Docker
  • 访问您的GitLab实例(管理员或创建OAuth应用程序的能力)
  • 运行MCP服务器的服务器/主机(可以与GitLab相同或单独)

了解OAuth应用程序凭据

部署此服务器时,需要在GitLab中将其注册为OAuth应用程序。这类似于Slack、GitHub或任何第三方集成的工作原理。

为什么? GitLab需要知道:

  1. 谁在问 (客户端ID)-标识您的MCP服务器
  2. 真的是你 (客户端机密)-证明请求是合法的
  3. 将用户送回何处 (重定向URI)-授权后

这些是 应用程序凭据,而不是用户凭据。您只需设置一次,组织中的所有用户就可以连接,而无需任何其他配置。

┌─────────────────────────────────────────────────────────────────────┐
│                    OAuth Flow Explained                              │
├─────────────────────────────────────────────────────────────────────┤
│                                                                      │
│  1. User clicks "Connect to GitLab" in ChatGPT                      │
│                          │                                           │
│                          ▼                                           │
│  2. MCP Server redirects to GitLab:                                 │
│     gitlab.com/oauth/authorize?client_id=ABC123&...                 │
│                          │                                           │
│                          │  ◄── GitLab checks: "Is ABC123 a valid   │
│                          │       registered application?"            │
│                          ▼                                           │
│  3. User sees GitLab login page, then:                              │
│     "Kepler MCP Server wants to access your account"                │
│     [Authorize] [Deny]                                              │
│                          │                                           │
│                          ▼                                           │
│  4. User clicks Authorize, GitLab redirects back with temp code     │
│                          │                                           │
│                          ▼                                           │
│  5. MCP Server exchanges code for tokens:                           │
│     POST gitlab.com/oauth/token                                     │
│     { client_id: ABC123, client_secret: XYZ789, code: ... }         │
│                          │                                           │
│                          │  ◄── GitLab verifies the secret matches  │
│                          │       the registered application          │
│                          ▼                                           │
│  6. GitLab returns access token, user is connected!                 │
│                                                                      │
└─────────────────────────────────────────────────────────────────────┘

步骤1:在GitLab中注册OAuth应用程序

  1. 以管理员身份(或用户级应用程序的任何用户)登录您的GitLab实例
  1. 导航到:

- 实例范围内 (推荐):行政区→ 应用程序 - 用户级别:用户设置→ 应用程序

  1. 点击 新应用程序 并填写:
字段值
名字Kepler MCP GitLab Server
重定向URIhttps://your-mcp-server.com/oauth/callback
机密✅ 是(已勾选)
范围✅ api ✅ read_user ✅ read_repository
  1. 点击 保存应用程序
  1. 复制并安全存储:

- 应用标识符 (客户端ID) - 秘密 (客户端密码)-仅显示一次!

步骤2:配置服务器

创建配置文件或设置环境变量:

选项A:环境变量

# Required: GitLab Instance
export KEPLER_MCP_GITLAB_URL=https://gitlab.your-company.com

# Required: OAuth Application Credentials (from Step 1)
export KEPLER_MCP_OAUTH_USER_AUTH_ENABLED=true
export KEPLER_MCP_OAUTH_CLIENT_ID=your_application_id_here
export KEPLER_MCP_OAUTH_CLIENT_SECRET=your_secret_here
export KEPLER_MCP_OAUTH_REDIRECT_URI=https://your-mcp-server.com/oauth/callback
export KEPLER_MCP_OAUTH_SCOPE="api read_user read_repository"

# Required: OAuth Endpoints (adjust domain for your GitLab)
export KEPLER_MCP_OAUTH_AUTHORIZATION_URL=https://gitlab.your-company.com/oauth/authorize
export KEPLER_MCP_OAUTH_TOKEN_URL=https://gitlab.your-company.com/oauth/token
export KEPLER_MCP_OAUTH_USERINFO_URL=https://gitlab.your-company.com/api/v4/user

# Server Settings
export KEPLER_MCP_TRANSPORT_MODE=sse
export KEPLER_MCP_HOST=0.0.0.0
export KEPLER_MCP_PORT=8000

# Optional: Token Encryption (recommended for production)
# Generate key: python -c "from cryptography.fernet import Fernet; print(Fernet.generate_key().decode())"
export KEPLER_MCP_TOKEN_ENCRYPTION_KEY=your_generated_fernet_key
export KEPLER_MCP_TOKEN_STORE_PATH=/var/lib/kepler-mcp/tokens.json

选项B: .env 文件

创建一个 .env 项目根目录中具有相同变量的文件(没有 export).

GitLab.com与自托管

设置GitLab.com自托管
GITLAB_URLhttps://gitlab.comhttps://gitlab.your-company.com
OAUTH_AUTHORIZATION_URLhttps://gitlab.com/oauth/authorizehttps://gitlab.your-company.com/oauth/authorize
OAUTH_TOKEN_URLhttps://gitlab.com/oauth/tokenhttps://gitlab.your-company.com/oauth/token
OAUTH_USERINFO_URLhttps://gitlab.com/api/v4/userhttps://gitlab.your-company.com/api/v4/user

步骤3:部署服务器

选项A:直接使用Python

# Create virtual environment
python3.12 -m venv .venv
source .venv/bin/activate

# Install
pip install -e .

# Run
python -m kepler_mcp_gitlab.cli serve --transport sse

选项B:Docker

# Build
docker build -t kepler-mcp-gitlab -f docker/Dockerfile .

# Run
docker run -d \
  --name kepler-mcp-gitlab \
  -p 8000:8000 \
  -e KEPLER_MCP_GITLAB_URL=https://gitlab.your-company.com \
  -e KEPLER_MCP_OAUTH_USER_AUTH_ENABLED=true \
  -e KEPLER_MCP_OAUTH_CLIENT_ID=your_client_id \
  -e KEPLER_MCP_OAUTH_CLIENT_SECRET=your_secret \
  -e KEPLER_MCP_OAUTH_REDIRECT_URI=https://your-mcp-server.com/oauth/callback \
  -e KEPLER_MCP_OAUTH_AUTHORIZATION_URL=https://gitlab.your-company.com/oauth/authorize \
  -e KEPLER_MCP_OAUTH_TOKEN_URL=https://gitlab.your-company.com/oauth/token \
  -e KEPLER_MCP_OAUTH_SCOPE="api read_user read_repository" \
  kepler-mcp-gitlab

选项C:Docker编写

version: '3.8'
services:
  mcp-gitlab:
    build:
      context: .
      dockerfile: docker/Dockerfile
    ports:
      - "8000:8000"
    environment:
      KEPLER_MCP_GITLAB_URL: https://gitlab.your-company.com
      KEPLER_MCP_OAUTH_USER_AUTH_ENABLED: "true"
      KEPLER_MCP_OAUTH_CLIENT_ID: ${OAUTH_CLIENT_ID}
      KEPLER_MCP_OAUTH_CLIENT_SECRET: ${OAUTH_CLIENT_SECRET}
      KEPLER_MCP_OAUTH_REDIRECT_URI: https://your-mcp-server.com/oauth/callback
      KEPLER_MCP_OAUTH_AUTHORIZATION_URL: https://gitlab.your-company.com/oauth/authorize
      KEPLER_MCP_OAUTH_TOKEN_URL: https://gitlab.your-company.com/oauth/token
      KEPLER_MCP_OAUTH_SCOPE: "api read_user read_repository"
    restart: unless-stopped

步骤4:验证部署

# Health check
curl https://your-mcp-server.com/health

# Expected response:
# {"status": "ok", "app_name": "Kepler MCP GitLab Server", "environment": "prod"}

# Test OAuth redirect (should redirect to GitLab)
curl -I https://your-mcp-server.com/oauth/authorize

# Expected: HTTP 302 with Location header pointing to GitLab

第五步:通知用户

部署后,与用户分享以下说明:

从ChatGPT连接到GitLab 1. 在ChatGPT中,转到设置→ 连接→ 添加MCP服务器 1. 输入服务器URL: https://your-mcp-server.com/sse 1. 点击连接-您将被重定向到GitLab 1. 登录GitLab并点击“授权” 1. 完成!您现在可以向ChatGPT询问您的GitLab项目。 尝试:“列出我的GitLab项目”或“显示项目X中的未解决问题”

______________________________________________________________________

配置参考

所有环境变量

变量描述默认值必填
核心
KEPLER_MCP_APP_NAME应用程序名称Kepler MCP GitLab Server没有
KEPLER_MCP_LOG_LEVEL日志级别INFO没有
KEPLER_MCP_ENVIRONMENT环境(本地/dev/stage/prod)local没有
KEPLER_MCP_TRANSPORT_MODE交通(stdio/sse)stdio没有
KEPLER_MCP_HOST服务器绑定主机0.0.0.0没有
KEPLER_MCP_PORT服务器绑定端口8000没有
GitLab
KEPLER_MCP_GITLAB_URLGitLab实例URLhttps://gitlab.com是的
OAuth (SSE模式需要)
KEPLER_MCP_OAUTH_USER_AUTH_ENABLED启用OAuthfalse是\*
KEPLER_MCP_OAUTH_CLIENT_IDOAuth客户端ID-是\*
KEPLER_MCP_OAUTH_CLIENT_SECRETOAuth客户端密码-是\*
KEPLER_MCP_OAUTH_AUTHORIZATION_URLOAuth授权端点-是\*
KEPLER_MCP_OAUTH_TOKEN_URLOAuth令牌端点-是\*
KEPLER_MCP_OAUTH_REDIRECT_URIOAuth回调URL-是\*
KEPLER_MCP_OAUTH_SCOPEOAuth作用域-是\*
KEPLER_MCP_OAUTH_USERINFO_URL用户信息端点-否
令牌存储
KEPLER_MCP_TOKEN_ENCRYPTION_KEY加密的Fernet密钥-否\*\*
KEPLER_MCP_TOKEN_STORE_PATH令牌持久化路径-否\*\*
速率限制
KEPLER_MCP_RATE_LIMIT_REQUESTS_PER_MINUTE最大请求数/分钟60没有
KEPLER_MCP_RATE_LIMIT_BURST爆裂尺寸10没有

\*需要时 OAUTH_USER_AUTH_ENABLED=true \*\*如果需要持续会话,则需要一起使用

______________________________________________________________________

发展

设置

# Clone and setup
git clone 
cd kepler-mcp-gitlab-server

# Create virtual environment
python3.12 -m venv .venv
source .venv/bin/activate

# Install with dev dependencies
pip install -e ".[dev]"

质量检查

make lint        # Ruff linting
make typecheck   # Mypy type checking
make test        # Run tests
make coverage    # Tests with coverage report
make check-all   # All checks

项目结构

src/kepler_mcp_gitlab/
├── cli.py              # Command-line interface
├── server.py           # FastMCP server setup
├── config.py           # Configuration management
├── context.py          # Request context and session management
├── application.py      # Tool registration
├── transport.py        # stdio/SSE transport handlers
├── security.py         # Auth strategies, token handling
├── gitlab/
│   ├── client.py       # GitLab API client
│   └── exceptions.py   # GitLab-specific errors
├── oauth/
│   ├── flows.py        # OAuth flow implementations
│   ├── pkce.py         # PKCE support
│   ├── session.py      # Session management
│   └── token_store.py  # Token persistence
└── tools/
    ├── projects.py     # Project tools
    ├── issues.py       # Issue tools
    ├── merge_requests.py # MR tools
    └── repository.py   # Repository tools (branches, tags, files, commits)

______________________________________________________________________

安全

  • OAuth 2.0与PKCE:行业标准安全身份验证
  • 没有存储密码:用户直接通过GitLab进行身份验证
  • 每个用户权限:尊重每个用户的GitLab访问权限
  • 加密令牌:使用Fernet静态加密的会话令牌
  • 秘密编辑:敏感值从不出现在日志中
  • 非根容器:Docker镜像以无特权用户身份运行

______________________________________________________________________

故障排除

OAuth错误

“重定向URI无效”

  • 确保GitLab中的重定向URI与服务器的回调URL完全匹配
  • 检查尾随斜线,http与https

“无效客户端”

  • 验证客户端ID是否正确
  • 检查OAuth应用程序是否仍在GitLab中处于活动状态

“无效状态”

  • 状态已过期(默认10分钟)-重试该流程
  • 服务器可能在OAuth流期间重新启动

连接问题

健康检查失败

# Check if server is running
curl http://localhost:8000/health

# Check logs
docker logs kepler-mcp-gitlab

GitLab API错误

# Test GitLab connectivity directly
curl -H "Authorization: Bearer " https://gitlab.your-company.com/api/v4/user

______________________________________________________________________

许可证

MIT许可证-请参阅 许可证 了解详情。

工具与能力

工具数量

43

资源数量

0

提示词数量

0

能力标签

GitLab集成Python本地部署AI助手工具OAuth认证开发工具API管理

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 工具数量 43 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 需要自备OAuth 授权,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到OAuth 授权的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Kepler MCP GitLab Server

MCP World · 本页

43stdio有2 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Kepler MCP GitLab Server 怎么安装?

公开资料给出的安装命令是 pip install -e .,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Kepler MCP GitLab Server 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

Kepler MCP GitLab Server 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Kepler MCP GitLab Server 需要 API Key 吗?

公开资料标注的认证方式是OAuth 授权,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Kepler MCP GitLab Server 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP