{"_id":"@agenis/gitlab-code-search-mcp","_rev":"2-2fe61a39077fe65c9c35914e2a557498","name":"@agenis/gitlab-code-search-mcp","dist-tags":{"latest":"1.0.1"},"versions":{"1.0.0":{"name":"@agenis/gitlab-code-search-mcp","version":"1.0.0","_id":"@agenis/gitlab-code-search-mcp@1.0.0","maintainers":[{"name":"agenis","email":"18381005693@163.com"}],"dist":{"shasum":"bba5996964eb4317812364afd50b5b3b5d986841","tarball":"https://registry.npmjs.org/@agenis/gitlab-code-search-mcp/-/gitlab-code-search-mcp-1.0.0.tgz","fileCount":7,"integrity":"sha512-840JN4X3JWQzq1gN/Iwp9piqujb2N7wlRRM3odcehIT9G2vI1Q89+HXbCQVAwNYrlzTxlX11d5iNz/+k8mpBBA==","signatures":[{"sig":"MEYCIQCBFXYKmISM9HmK6Qhjk8GiUel8wGCUowUqTaWj8M0VpgIhAODz3tNvHffdsEKNWOvWVPbmk8poo3YKD1LB3laPQjz6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":17018},"main":"server.js","type":"module","scripts":{"start":"node server.js"},"_npmUser":{"name":"agenis","email":"18381005693@163.com"},"_npmVersion":"11.11.0","description":"`scripts-spec` 技能依赖本 MCP 提供的 3 个工具：","directories":{},"_nodeVersion":"22.21.1","dependencies":{"zod":"^3.23.8","@modelcontextprotocol/sdk":"^1.0.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/gitlab-code-search-mcp_1.0.0_1780034536762_0.3537720154416981","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@agenis/gitlab-code-search-mcp","version":"1.0.1","description":"MCP server: GitLab code search, get file, compare refs","type":"module","main":"server.js","bin":{"gitlab-code-search-mcp":"server.js"},"scripts":{"start":"node server.js"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.1","zod":"^3.23.8"},"_id":"@agenis/gitlab-code-search-mcp@1.0.1","_nodeVersion":"22.21.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-WTVms8e5po++Rhqh45HMoyfHWgox8Ce17Fm+MWm7E9pxCUXQEzAVMdBixbSxaRsuoV8A1DIKcAQp9Km/65v5YA==","shasum":"d5777ed3afa06c3f0476e15ac27146b1dd044b93","tarball":"https://registry.npmjs.org/@agenis/gitlab-code-search-mcp/-/gitlab-code-search-mcp-1.0.1.tgz","fileCount":3,"unpackedSize":8293,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFEOaG9AtbQjHJmAoTfrcdnvdJMLQZ0j867y3YmzFe4AAiANWYXd3ztp9WtZe2eiEamjTplB6uWPIlPR1Fp6OC+F5g=="}]},"_npmUser":{"name":"agenis","email":"18381005693@163.com"},"directories":{},"maintainers":[{"name":"agenis","email":"18381005693@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gitlab-code-search-mcp_1.0.1_1780034781627_0.8783217260172813"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-29T06:02:16.620Z","modified":"2026-05-29T06:06:21.881Z","1.0.0":"2026-05-29T06:02:16.895Z","1.0.1":"2026-05-29T06:06:21.788Z"},"description":"MCP server: GitLab code search, get file, compare refs","maintainers":[{"name":"agenis","email":"18381005693@163.com"}],"readme":"# gitlab-code-search MCP（团队本地部署）\n\n`scripts-spec` 技能依赖本 MCP 提供的 3 个工具：\n\n| 工具 | 作用 |\n| :--- | :--- |\n| `search_code` | 远程按关键字搜索代码 |\n| `get_file_content` | 拉取指定分支上的文件内容 |\n| `compare_refs` | 对比两个 ref 的差异 |\n\n**仅拉取 SKILL.md 不够**：还必须在本机安装依赖并配置 Cursor MCP。\n\n---\n\n## 一、仓库里有什么（提交到 Git）\n\n```\n.cursor/\n├── skills/scripts-spec/          # 技能说明（Agent 读这个）\n└── mcp-servers/gitlab-code-search/\n    ├── server.js                 # MCP 服务入口\n    ├── package.json\n    ├── package-lock.json         # 锁定依赖版本\n    ├── install.sh                # 安装 node 依赖\n    └── README.md                 # 本文件\n```\n\n**不要提交** `node_modules/`（每人本地 `npm install` 生成）。\n\n**不要提交** 含 Token 的 `mcp.json`（已在 `.gitignore`）。\n\n---\n\n## 二、同事首次使用（3 步）\n\n### 1. 拉代码\n\n```bash\ngit clone <本仓库地址>\ncd <仓库目录>\n```\n\n### 2. 安装 MCP 依赖\n\n```bash\nbash .cursor/mcp-servers/gitlab-code-search/install.sh\n```\n\n需要本机已安装 **Node.js 18+**（`node -v` 可检查）。\n\n### 3. 配置 Cursor MCP\n\n仓库根目录执行：\n\n```bash\nbash .cursor/mcp-servers/gitlab-code-search/setup-mcp-snippet.sh\n```\n\n脚本会在 `.cursor/` 下生成 `mcp.gitlab-code-search.snippet.json`（已填入本机绝对路径）。\n\n打开 Cursor → **Settings → MCP**，把 snippet 里的 `gitlab-code-search` 段合并进你的 **项目** `.cursor/mcp.json`（若不存在则新建），并修改：\n\n```json\n\"GITLAB_PERSONAL_ACCESS_TOKEN\": \"你的GitLab_PAT\"\n```\n\n保存后 **Reload Window**，在 MCP 列表中打开 `gitlab-code-search`，应能看到 3 个 tools。\n\n---\n\n## 三、验证是否成功\n\n在 Cursor 对话中说：\n\n> 用 gitlab-code-search 在 hsy_ng/deployment_scripts 的 master 上搜索 grid_item_product\n\n若 MCP 正常，Agent 会调用 `search_code` 并返回结果。\n\n---\n\n## 四、环境变量\n\n| 变量 | 说明 |\n| :--- | :--- |\n| `GITLAB_PERSONAL_ACCESS_TOKEN` | GitLab PAT，建议 scope：`read_api`、`read_repository` |\n| `GITLAB_API_URL` | 默认 `https://gitlab.rd.chanjet.com/api/v4` |\n\n---\n\n## 五、常见问题\n\n**Q: MCP 显示 No tools**  \n- 检查 `node` 路径是否正确（setup 脚本会用 `which node`）  \n- 是否执行过 `install.sh`  \n- Token 是否有效（`curl -H \"PRIVATE-TOKEN: xxx\" https://gitlab.rd.chanjet.com/api/v4/user` 应返回 200）\n\n**Q: 只有 skill 没有 MCP**  \n- Agent 只能按文档“口述”流程，无法真正调 GitLab，必须完成第二节配置。\n\n**Q: 能否不用 server.js，只用官方 gitlab MCP**  \n- 可以，但官方工具没有 `search_code` 这种内容检索封装，`scripts-spec` 远程核查体验会差很多。\n","readmeFilename":"README.md"}