使用说明
GitLab MCP服务器(noqta-GitLab服务器)
A. 模型上下文协议(MCP) 服务器,提供与GitLab API交互的工具。
该服务器允许AI助手(如通过MCP集成的Claude)直接通过自然语言命令在GitLab上执行各种操作,如搜索存储库、管理问题、创建分支等。
功能/可用工具
此服务器公开以下工具供MCP客户端使用:
search_repositories:按名称搜索GitLab项目。get_project_from_git_url:从git远程URL获取GitLab项目详细信息。list_issues:列出特定GitLab项目的问题(可按状态、标签、受让人、范围过滤)。get_my_issues:列出所有项目中分配给经过身份验证的用户或由其创建的问题(可按状态、范围过滤)。get_issue:通过IID获取项目中特定问题的详细信息。create_issue_note:对特定问题添加评论(注释)。update_issue:更新问题的属性(例如,标题、描述、标签、状态)。bulk_update_issues:一次更新项目中多个问题的属性。create_branch:从指定的引用在项目中创建新分支。create_issue:在项目中创建新问题。list_documentation_wiki_pages:列出已配置文档项目的文档wiki页面。get_documentation_wiki_page:通过slug为配置的文档项目获取文档维基页面。list_wiki_pages:列出特定GitLab项目的wiki页面(默认为DOC_WIKI_PROJECT_PATH).create_merge_request:创建新的合并请求。list_issue_notes:列出特定问题的评论(注释)。create_merge_request_note:为特定的合并请求添加注释(note)。search_user:通过电子邮件或用户名搜索GitLab用户。create_repository:在用户或组命名空间下创建一个新的GitLab项目(存储库)。
(请参阅服务器的 ListTools 响应或源代码(src/index.ts)了解每个工具的详细输入模式。)
先决条件
- Node.js(推荐LTS版本)
- npm(通常包含在Node.js中)
- GitLab帐户(GitLab.com或自托管)
- GitLab个人访问令牌
api和read_api范围。
安装和设置
-
克隆存储库:
git clone https://github.com/nooqta/noqta-gitlab-server.git # Replace with actual URL after creation cd noqta-gitlab-server -
安装依赖项:
npm install -
配置环境变量:
- 复制示例环境文件:
cp .env.example .env - 编辑
.env文件:- 生成一个 GitLab个人访问令牌:转到您的GitLab个人资料->设置->访问令牌。使用创建令牌
api和read_api范围。 - 将生成的令牌粘贴到
.env为了GITLAB_PERSONAL_ACCESS_TOKEN变量。 - (可选) 如果你使用自托管的GitLab实例,请更新
GITLAB_API_URL以指向实例的API端点(例如。,https://gitlab.yourcompany.com/api/v4).否则,将其保留为gitlab.com的默认设置。 - (可选) 集
DOC_WIKI_HOME_URL转到您的wiki主页URL。如果DOC_WIKI_PROJECT_PATH如果未设置,则它来自此URL。
- 生成一个 GitLab个人访问令牌:转到您的GitLab个人资料->设置->访问令牌。使用创建令牌
- 复制示例环境文件:
-
构建服务器:
npm run build这将TypeScript代码编译为JavaScript
build/目录。
运行服务器
直接使用Node.js(克隆和构建后)
如果您已经克隆了存储库并构建了项目(npm run build),您可以直接运行服务器:
node build/index.js
使用npx(发布到npm后)
一旦包发布到npm(如 @nooqta/gitlab-mcp-server),您可以使用直接运行它 npx 无需克隆或手动安装。 npx 将下载并执行该包。
npx @nooqta/gitlab-mcp-server
注: 当通过时 npx,服务器仍然需要环境变量(GITLAB_PERSONAL_ACCESS_TOKEN 并且可选 GITLAB_API_URL)在执行的环境中设置 npx 命令,或可通过 .env 运行目录中的文件 npx.
服务器通过标准输入/输出(stdio)进行通信。对于持久使用,考虑使用流程管理器运行它,例如 pm2 或 systemd.
集成(示例:Claude Desktop)
要将此服务器与Claude Desktop等MCP客户端一起使用,请将其配置添加到客户端的设置文件中。
配置文件位置:
- MacOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 窗户:
%APPDATA%/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
示例 claude_desktop_config.json 条目(使用npx):
{
"mcpServers": {
"@nooqta/gitlab-mcp-server": {
"command": "npx",
"args": ["-y", "@nooqta/gitlab-mcp-server"],
"env": {
"GITLAB_PERSONAL_ACCESS_TOKEN": "...",
"GITLAB_API_URL": "..."
}
}
}
// Potentially other configurations...
}
示例 claude_desktop_config.json 条目(使用本地构建):
{
"mcpServers": {
"@nooqta/gitlab-mcp-server": {
// Use the package name for consistency, even if running locally
"command": "/full/path/to/your/custom-gitlab-server/build/index.js",
"env": {
"GITLAB_PERSONAL_ACCESS_TOKEN": "...",
"GITLAB_API_URL": "..."
}
}
// Potentially other configurations...
}
}
重要安全提示: 此服务器使用 dotenv 加载 GITLAB_PERSONAL_ACCESS_TOKEN 和 GITLAB_API_URL 从一 .env 文件。 从不 将您的实际令牌或敏感URL直接放入MCP客户端配置文件中(如 claude_desktop_config.json)使用 env 财产。始终使用 .env 文件(位于服务器的本地运行项目目录中,或位于以下目录中 npx 执行)或通过操作系统的环境提供变量。
发展
- 构建:
npm run build(编译TypeScript并设置可执行权限) - 观看模式:
npm run watch(文件更改时自动重新编译)
调试
由于MCP服务器通过stdio进行通信,直接调试可能会很棘手。使用 MCP检查员 为了更容易调试:
npm run inspector
此命令启动连接了检查器的服务器。在浏览器中打开控制台输出中提供的URL,查看MCP消息和服务器日志。
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
贡献
欢迎投稿!请查看 贡献.md 文件指南。
