{"_id":"@arm5556/gitlab-mcp-ai","_rev":"4-4ec2c2e2c239f2985a8640f6b84b3986","name":"@arm5556/gitlab-mcp-ai","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@arm5556/gitlab-mcp-ai","version":"1.0.0","keywords":["gitlab","mcp-server","ai-tools","model-context-protocol","typescript","llm","code-review","pagination"],"author":{"name":"arm5556"},"license":"MIT","_id":"@arm5556/gitlab-mcp-ai@1.0.0","maintainers":[{"name":"arm5556","email":"armcpe17@gmail.com"}],"homepage":"https://github.com/arm5556/gitlab-mcp","bugs":{"url":"https://github.com/arm5556/gitlab-mcp/issues"},"bin":{"gitlab-mcp-ai":"build/src/index.js"},"dist":{"shasum":"97192e52cfa21bae0e5e2c5ca5f3039c4d80d188","tarball":"https://registry.npmjs.org/@arm5556/gitlab-mcp-ai/-/gitlab-mcp-ai-1.0.0.tgz","fileCount":28,"integrity":"sha512-zBNGKDFnlcOqwNf5ERypJo0k2Txf/C32+kqT4+0nuKGGacB7a0MU8LmYtXkV+5ycTCXPOy77gxMK02RxgvxsTA==","signatures":[{"sig":"MEUCIQCu4UeEJSL2lT+fzfA7WZts/imPFgJfRmzlhxsNLeZToAIgYlVSje93lCstF7Z83LrbdfYv6IxmVyorinWo51VZ/LU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219147},"type":"module","engines":{"node":">=14"},"gitHead":"4cadca9cede47bcea7361245c07e301d549fe727","scripts":{"build":"tsc && node -e \"require('fs').chmodSync('build/src/index.js', '755')\"","watch":"tsc --watch","deploy":"npm publish --access public","prepare":"npm run build","generate-tools":"npx ts-node scripts/generate-tools-readme.ts"},"_npmUser":{"name":"arm5556","email":"armcpe17@gmail.com"},"repository":{"url":"git+https://github.com/arm5556/gitlab-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"AI-optimized GitLab MCP server with smart pagination and streamlined responses for better LLM integration","directories":{},"_nodeVersion":"24.1.0","dependencies":{"form-data":"^4.0.0","node-fetch":"^3.3.2","http-proxy-agent":"^7.0.2","@types/node-fetch":"^2.6.12","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^8.0.5","zod-to-json-schema":"^3.23.5","@modelcontextprotocol/sdk":"1.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"zod":"^3.24.2","typescript":"^5.8.2","@types/node":"^22.13.10"},"_npmOperationalInternal":{"tmp":"tmp/gitlab-mcp-ai_1.0.0_1749834123344_0.49963248041762376","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@arm5556/gitlab-mcp-ai","version":"1.1.0","keywords":["gitlab","mcp-server","ai-tools","model-context-protocol","typescript","llm","code-review","pagination"],"author":{"name":"arm5556"},"license":"MIT","_id":"@arm5556/gitlab-mcp-ai@1.1.0","maintainers":[{"name":"arm5556","email":"armcpe17@gmail.com"}],"homepage":"https://github.com/arm5556/gitlab-mcp","bugs":{"url":"https://github.com/arm5556/gitlab-mcp/issues"},"bin":{"gitlab-mcp-ai":"build/src/index.js"},"dist":{"shasum":"a9bb9738278f069f1c367231c262bf8331df1a52","tarball":"https://registry.npmjs.org/@arm5556/gitlab-mcp-ai/-/gitlab-mcp-ai-1.1.0.tgz","fileCount":32,"integrity":"sha512-UPuCg4PSqFEMFEIvaBZzp39e8MYrfwPLHa9BZUiUTTNqqu8k+isc7L1Wp/PVHr75aov5JVyLoYMAq0YG6lGMbQ==","signatures":[{"sig":"MEYCIQDAyao1VbXgiT91vRbr20AE/kf8eufSgcdUtZfZGbidoQIhANSy5DVdMkiAjXeVeVbSt31ighGKSX+0Jz0tJguo/wuz","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":383532},"type":"module","engines":{"node":">=14"},"gitHead":"16dc4b6192e30031fbb379da8ea1acaaabce344a","scripts":{"build":"tsc && node -e \"require('fs').chmodSync('build/src/index.js', '755')\"","watch":"tsc --watch","deploy":"npm publish --access public","prepare":"npm run build","generate-tools":"npx ts-node scripts/generate-tools-readme.ts"},"_npmUser":{"name":"arm5556","actor":{"name":"arm5556","type":"user","email":"armcpe17@gmail.com"},"email":"armcpe17@gmail.com"},"repository":{"url":"git+https://github.com/arm5556/gitlab-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"AI-optimized GitLab MCP server with smart pagination and streamlined responses for better LLM integration","directories":{},"_nodeVersion":"24.1.0","dependencies":{"zod":"^3.24.2","form-data":"^4.0.0","node-fetch":"^3.3.2","http-proxy-agent":"^7.0.2","@types/node-fetch":"^2.6.12","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^8.0.5","zod-to-json-schema":"^3.23.5","@modelcontextprotocol/sdk":"1.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.10"},"_npmOperationalInternal":{"tmp":"tmp/gitlab-mcp-ai_1.1.0_1750353176549_0.9472357492939674","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@arm5556/gitlab-mcp-ai","version":"1.1.1","keywords":["gitlab","mcp-server","ai-tools","model-context-protocol","typescript","llm","code-review","pagination"],"author":{"name":"arm5556"},"license":"MIT","_id":"@arm5556/gitlab-mcp-ai@1.1.1","maintainers":[{"name":"arm5556","email":"armcpe17@gmail.com"}],"homepage":"https://github.com/arm5556/gitlab-mcp","bugs":{"url":"https://github.com/arm5556/gitlab-mcp/issues"},"bin":{"gitlab-mcp-ai":"build/src/index.js"},"dist":{"shasum":"a4f35e94641c3ddc36e578729c3da1cf90532bbd","tarball":"https://registry.npmjs.org/@arm5556/gitlab-mcp-ai/-/gitlab-mcp-ai-1.1.1.tgz","fileCount":32,"integrity":"sha512-yqRkuDPtz7v/NZ8XWAN61AQUwvDju2xxbuXw97leiVvMx4bpvu62p/ZUQsW44LI8R82gMQiQhtay5j4xkS7CCw==","signatures":[{"sig":"MEQCIFdKPwGXtFRMMPTMuBkQNm5ssHFIFpJd/xXCZRnf7AMOAiASnCBCKNvN0DKiFB0fr0Fg8uh8PBLXOciTYLVrCvPwkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":387109},"type":"module","engines":{"node":">=14"},"gitHead":"cea55cc855a1ea384e777e08ce0c8489db2211e4","scripts":{"build":"tsc && node -e \"require('fs').chmodSync('build/src/index.js', '755')\"","watch":"tsc --watch","deploy":"npm publish --access public","prepare":"npm run build","generate-tools":"npx ts-node scripts/generate-tools-readme.ts"},"_npmUser":{"name":"arm5556","actor":{"name":"arm5556","type":"user","email":"armcpe17@gmail.com"},"email":"armcpe17@gmail.com"},"repository":{"url":"git+https://github.com/arm5556/gitlab-mcp.git","type":"git"},"_npmVersion":"11.3.0","description":"AI-optimized GitLab MCP server with smart pagination and streamlined responses for better LLM integration","directories":{},"_nodeVersion":"24.1.0","dependencies":{"zod":"^3.24.2","form-data":"^4.0.0","node-fetch":"^3.3.2","http-proxy-agent":"^7.0.2","@types/node-fetch":"^2.6.12","https-proxy-agent":"^7.0.6","socks-proxy-agent":"^8.0.5","zod-to-json-schema":"^3.23.5","@modelcontextprotocol/sdk":"1.8.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.8.2","@types/node":"^22.13.10"},"_npmOperationalInternal":{"tmp":"tmp/gitlab-mcp-ai_1.1.1_1750942498506_0.9370094783613068","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@arm5556/gitlab-mcp-ai","version":"1.2.0","description":"AI-optimized GitLab MCP server with smart pagination and streamlined responses for better LLM integration","license":"MIT","author":{"name":"arm5556"},"type":"module","bin":{"gitlab-mcp-ai":"build/src/index.js"},"publishConfig":{"access":"public"},"engines":{"node":">=14"},"scripts":{"build":"tsc && node -e \"require('fs').chmodSync('build/src/index.js', '755')\"","prepare":"npm run build","watch":"tsc --watch","deploy":"npm publish --access public","generate-tools":"npx ts-node scripts/generate-tools-readme.ts"},"keywords":["gitlab","mcp-server","ai-tools","model-context-protocol","typescript","llm","code-review","pagination"],"repository":{"type":"git","url":"git+https://github.com/arm5556/gitlab-mcp.git"},"homepage":"https://github.com/arm5556/gitlab-mcp","bugs":{"url":"https://github.com/arm5556/gitlab-mcp/issues"},"dependencies":{"@modelcontextprotocol/sdk":"1.8.0","form-data":"^4.0.0","@types/node-fetch":"^2.6.12","http-proxy-agent":"^7.0.2","https-proxy-agent":"^7.0.6","node-fetch":"^3.3.2","socks-proxy-agent":"^8.0.5","zod":"^3.24.2","zod-to-json-schema":"^3.23.5"},"devDependencies":{"@types/node":"^22.13.10","typescript":"^5.8.2"},"_id":"@arm5556/gitlab-mcp-ai@1.2.0","gitHead":"0863e1c1fe4224a0e5c75fde1bb712a80a0654f4","_nodeVersion":"24.1.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-3HaPeAALPPqVcnMR0U4KtEJSYikXxPuS6LoTcURieDsVbwELuG5pT64P9Did08SGx3csvQaKYcZxqQ/OWO4w+g==","shasum":"d56058fba9033387cee46b9866020d030df3f5ed","tarball":"https://registry.npmjs.org/@arm5556/gitlab-mcp-ai/-/gitlab-mcp-ai-1.2.0.tgz","fileCount":32,"unpackedSize":394545,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDQyZ/MVxSQg3RG54s19VSKPL2wk9PfcnXr1n4UFAcO0AiEA7iWHAIhze9pOmYEnp/RTT41MqXBDqbnkGFi0RoCOP6k="}]},"_npmUser":{"name":"arm5556","email":"armcpe17@gmail.com","actor":{"name":"arm5556","email":"armcpe17@gmail.com","type":"user"}},"directories":{},"maintainers":[{"name":"arm5556","email":"armcpe17@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/gitlab-mcp-ai_1.2.0_1752070518589_0.8196769828017281"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-13T17:02:03.237Z","modified":"2025-07-09T14:15:18.967Z","1.0.0":"2025-06-13T17:02:03.553Z","1.1.0":"2025-06-19T17:12:56.806Z","1.1.1":"2025-06-26T12:54:58.680Z","1.2.0":"2025-07-09T14:15:18.774Z"},"bugs":{"url":"https://github.com/arm5556/gitlab-mcp/issues"},"author":{"name":"arm5556"},"license":"MIT","homepage":"https://github.com/arm5556/gitlab-mcp","keywords":["gitlab","mcp-server","ai-tools","model-context-protocol","typescript","llm","code-review","pagination"],"repository":{"type":"git","url":"git+https://github.com/arm5556/gitlab-mcp.git"},"description":"AI-optimized GitLab MCP server with smart pagination and streamlined responses for better LLM integration","maintainers":[{"name":"arm5556","email":"armcpe17@gmail.com"}],"readme":"# GitLab MCP Server - AI-Optimized Edition\n\n## An AI-Focused Fork for Better GitLab Integration\n\nThis fork of the GitLab MCP server addresses specific challenges when using AI agents with GitLab workflows, particularly around context management and response optimization.\n\n**Key improvements:** Smart pagination for large discussions, streamlined responses with 65-80% token reduction, and enhanced vulnerability data.\n\n---\n\n## Why This Fork Was Created\n\n### Context Management Challenge\nThe original GitLab MCP server can overwhelm AI assistants when dealing with large merge requests containing many discussions (100+ discussions can generate 50,000+ tokens), often resulting in missed comments due to context window limitations.\n\n### Our Approach\n- **Smart Pagination**: Discussions are served in manageable chunks with clear metadata\n- **Focused Data**: Only essential information is included in responses\n- **Enhanced Tools**: Improved vulnerability data and streamlined workflows\n- **Token Optimization**: 65-80% reduction in response sizes across all operations\n\n---\n\n## Key Improvements\n\n**Response Optimization:**\n- Paginated discussions prevent context overflow\n- Streamlined data format reduces token usage by 65-80%\n- Only unresolved discussions are returned by default\n- Removed unnecessary fields (avatars, SHA hashes, system metadata, color codes)\n- Two-stage optimization: validate with full schema, return essential fields only\n\n**Token Usage Reductions:**\n- **Issue Operations**: ~80% reduction (getIssue, createIssue, updateIssue)\n- **Note Creation**: ~75% reduction (createMergeRequestNote)\n- **Thread Replies**: ~80% reduction (reply_to_thread - optimized for AI agents)\n- **Merge Requests**: ~65% reduction (getMergeRequest, discussions)\n- **Overall**: 65-80% fewer tokens across all operations\n\n**Enhanced Features:**\n- Better vulnerability data with remediation guidance\n- Modular TypeScript architecture (500 vs 3,490 lines)\n- 11 focused tools instead of 40+ comprehensive ones\n- Complete issue management workflow coverage\n\n**Pagination Example:**\n```json\n{\n  \"total_unresolved\": 45,\n  \"current_page\": 1,\n  \"total_pages\": 3,\n  \"discussions\": [...]  // 20 discussions per page\n}\n```\n\n**Optimization Pattern:**\nAll responses follow a two-stage pattern:\n1. **Validate** with full GitLab schema for safety\n2. **Transform** to optimized format with essential fields only\n3. **Return** streamlined response to AI agent\n\n---\n\n## Available Tools\n\n**Merge Request Management:**\n- `get_merge_request` - Retrieve MR details by ID or branch name\n- `get_mr_discussions` - Get paginated unresolved discussions  \n- `reply_to_thread` - Reply to existing discussion threads *(optimized - 80% token reduction)*\n- `create_merge_request_note` - Add new notes to MRs *(optimized - 75% token reduction)*\n- `update_merge_request` - Modify MR properties and labels\n- `create_merge_request` - Create new merge requests\n\n**Issue Management:**\n- `get_issue` - Get issue details *(optimized - 80% token reduction)*\n- `create_issue` - Create new issues *(optimized - 80% token reduction)*\n- `update_issue` - Update existing issues *(optimized - 80% token reduction)*\n\n**Security & Testing:**\n- `get_vulnerabilities_by_ids` - Enhanced vulnerability information with fix guidance\n- `get_failed_test_cases` - Pipeline test failure analysis\n\n---\n\n## Setup Options\n\n### NPX Installation (Recommended)\n```bash\nnpx @arm5556/gitlab-mcp-ai\n```\n\nConfiguration for `mcp.json`:\n```json\n{\n  \"mcpServers\": {\n    \"gitlab-ai-optimized\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@arm5556/gitlab-mcp-ai\"],\n      \"env\": {\n        \"GITLAB_PERSONAL_ACCESS_TOKEN\": \"your_token_here\",\n        \"GITLAB_API_URL\": \"https://your-gitlab.com/api/v4\"\n      }\n    }\n  }\n}\n```\n\n### Local Installation\n```bash\ngit clone https://github.com/arm5556/gitlab-mcp.git\ncd gitlab-mcp\nnpm install && npm run build\n```\n\nAlternative configuration for `mcp.json`:\n```json\n{\n  \"mcpServers\": {\n    \"gitlab-ai-optimized\": {\n      \"command\": \"node\",\n      \"args\": [\"./build/src/index.js\"],\n      \"env\": {\n        \"GITLAB_PERSONAL_ACCESS_TOKEN\": \"your_token_here\",\n        \"GITLAB_API_URL\": \"https://your-gitlab.com/api/v4\"\n      }\n    }\n  }\n}\n```\n\n### Original Package (For Comparison)\n```json\n{\n  \"mcpServers\": {\n    \"gitlab-original\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@zereight/mcp-gitlab\"],\n      \"env\": {\n        \"GITLAB_PERSONAL_ACCESS_TOKEN\": \"your_token_here\"\n      }\n    }\n  }\n}\n```\n\n---\n\n## Technical Comparison\n\n| Aspect | This Fork | Original |\n|--------|-----------|----------|\n| Discussion Handling | Paginated responses | All-at-once |\n| Response Size | 65-80% token reduction | Full GitLab API response |\n| Code Size | ~500 lines | ~3,490 lines |\n| Tool Count | 11 focused | 40+ comprehensive |\n| Architecture | Modular TypeScript | Monolithic |\n| Vulnerability Data | Enhanced with fixes | Standard GitLab data |\n| Issue Operations | Optimized (80% reduction) | Full API response |\n| Note Creation | Optimized (75% reduction) | Full API response |\n| Optimization Pattern | Two-stage validation | Direct API passthrough |\n\nBoth versions serve different use cases - this fork specifically optimizes for AI agent workflows.\n\n---\n\n## Token Usage Examples\n\n**Before Optimization (Full GitLab API Response):**\n```json\n{\n  \"id\": 123,\n  \"iid\": 42,\n  \"project_id\": 456,\n  \"title\": \"Fix authentication bug\",\n  \"author\": {\n    \"id\": 789, \"username\": \"dev\", \"name\": \"Developer\",\n    \"avatar_url\": \"https://...\", \"web_url\": \"https://...\",\n    \"state\": \"active\", \"email\": \"dev@example.com\"\n  },\n  \"labels\": [\n    {\n      \"id\": 101, \"name\": \"bug\", \"color\": \"#d73a4a\",\n      \"description\": \"Something isn't working\",\n      \"open_issues_count\": 15, \"closed_issues_count\": 8\n    }\n  ],\n  // ... 15+ more fields\n}\n```\n\n**After Optimization (Essential Fields Only):**\n```json\n{\n  \"iid\": 42,\n  \"title\": \"Fix authentication bug\",\n  \"author\": { \"username\": \"dev\" },\n  \"labels\": [\"bug\"],\n  \"state\": \"opened\",\n  \"created_at\": \"2024-01-15T10:30:00.000Z\",\n  \"web_url\": \"https://gitlab.com/project/issues/42\"\n}\n```\n\n---\n\n## Use Cases\n\nThis fork may be helpful if you're:\n- Using AI assistants for code review workflows\n- Working with large merge requests (many discussions)\n- Focused on security vulnerability management\n- Looking for more efficient token usage with LLM APIs\n- Wanting a simpler, more maintainable codebase\n- Processing high-volume GitLab operations\n\n---\n\n## Contributing\n\nContributions are welcome! The modular architecture makes it easier to add features or make improvements. Each component is focused on a specific functionality.\n\n---\n\n## Credits\n\nBuilt upon the excellent foundation of the [original GitLab MCP server](https://github.com/zereight/mcp-gitlab) by [@zereight](https://github.com/zereight). This fork adapts the codebase for specific AI workflow optimizations.\n\n---\n\n## License\n\nSame license as the original project.\n","readmeFilename":"README.md"}