{
  "name": "@zereight/mcp-gitlab",
  "version": "2.1.27",
  "mcpName": "io.github.zereight/gitlab-mcp",
  "description": "GitLab MCP server for projects, merge requests, issues, pipelines, wiki, releases, and more",
  "keywords": [
    "gitlab",
    "gitlab-mcp",
    "mcp",
    "mcp-server",
    "model-context-protocol",
    "gitlab-api",
    "claude",
    "cursor",
    "vscode",
    "copilot",
    "ai-agent",
    "merge-requests",
    "pipelines",
    "oauth",
    "stdio",
    "sse",
    "streamable-http"
  ],
  "license": "MIT",
  "author": "zereight",
  "type": "module",
  "bin": {
    "mcp-gitlab": "build/index.js"
  },
  "files": [
    "build"
  ],
  "repository": {
    "type": "git",
    "url": "git+https://github.com/zereight/gitlab-mcp.git"
  },
  "publishConfig": {
    "access": "public"
  },
  "engines": {
    "node": ">=18.0.0",
    "npm": ">=9.0.0"
  },
  "scripts": {
    "build": "tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\"",
    "prepare": "npm run build",
    "dev": "npm run build && node build/index.js",
    "watch": "tsc --watch",
    "deploy": "npm publish --access public",
    "changelog": "auto-changelog -p",
    "test": "npm run test:all",
    "test:all": "npm run build && npm run test:mock && npm run test:live",
    "test:mock": "node --import tsx/esm --test test/remote-auth-simple-test.ts && node --import tsx/esm --test test/dynamic-api-url-allowlist.test.ts && node --import tsx/esm --test test/mcp-oauth-tests.ts && node --import tsx/esm --test test/test-oauth-proxy-rate-limit.ts && node --import tsx/esm --test test/streamable-http-static-token-auth.test.ts && node --import tsx/esm --test test/sse-auth-guard.test.ts && node --import tsx/esm --test test/streamable-http-concurrent-session.test.ts && node --import tsx/esm --test test/streamable-http-unauthenticated-discovery.test.ts && tsx test/oauth-tests.ts && tsx test/test-list-merge-requests.ts && tsx test/test-list-issues.ts && node --import tsx/esm --test test/test-create-repository.ts && node --import tsx/esm --test test/test-update-project.ts && node --import tsx/esm --test test/test-merge-request-pipelines.ts && tsx test/test-list-project-members.ts && tsx test/test-download-attachment.ts && node --import tsx/esm --test test/test-upload-markdown.ts && node --import tsx/esm --test test/test-job-artifacts.ts && node --import tsx/esm --test test/test-remote-downloads.ts && node --import tsx/esm --test test/test-deployment-tools.ts && node --import tsx/esm --test test/test-merge-request-approval-state-tools.ts && node --import tsx/esm --test test/test-search-code.ts && node --import tsx/esm --test test/test-tags.ts && node --import tsx/esm --test test/test-protected-branches.ts && node --import tsx/esm --test test/test-toolset-filtering.ts && node --import tsx/esm --test test/test-ci-lint.ts && node --import tsx/esm --test test/test-ci-catalog.ts && node --import tsx/esm --test test/test-todos.ts && node --import tsx/esm --test test/test-auth-retry.ts && node --import tsx/esm --test test/test-issue-description-patch.ts && node --import tsx/esm --test test/test-geteffectiveprojectid.ts && node --import tsx/esm --test test/test-get-file-blame.ts && node --import tsx/esm --test test/stateless/codec.test.ts test/stateless/client-id.test.ts test/stateless/callback-proxy.test.ts test/stateless/session-id.test.ts test/stateless/session-id-integration.test.ts test/stateless/config-ttl.test.ts && node --import tsx/esm --test test/utils/tool-args.test.ts && node --import tsx/esm --test test/utils/proxy-client-ip.test.ts && node --import tsx/esm --test test/utils/forwarded-public-base-url.test.ts && node --import tsx/esm --test test/utils/graphql-query.test.ts && node --import tsx/esm --test test/utils/wiki-title.test.ts && node --import tsx/esm --test test/utils/merge-request-position.test.ts && node --import tsx/esm --test test/nullish-tool-arguments-schema.test.ts && node --import tsx/esm --test test/test-ci-variables.ts && node --import tsx/esm --test test/test-dependency-proxy.ts",
    "test:stateless": "npm run build && node --import tsx/esm --test test/stateless/codec.test.ts test/stateless/client-id.test.ts test/stateless/callback-proxy.test.ts test/stateless/session-id.test.ts test/stateless/session-id-integration.test.ts test/stateless/config-ttl.test.ts",
    "test:mcp-oauth": "npm run build && node --import tsx/esm --test test/mcp-oauth-tests.ts",
    "test:live": "node test/validate-api.js",
    "test:consumer-smoke": "bash scripts/consumer-install-smoke.sh",
    "test:remote-auth": "npm run build && node --import tsx/esm --test test/remote-auth-simple-test.ts",
    "test:schema": "tsx test/schema-tests.ts && tsx test/test-json-schema.ts",
    "test:oauth": "tsx test/oauth-tests.ts",
    "test:list-merge-requests": "npm run build && tsx test/test-list-merge-requests.ts",
    "test:approvals": "npm run build && tsx test/test-merge-request-approvals.ts",
    "lint": "eslint . --ext .ts",
    "check:runtime-deps": "node scripts/check-runtime-deps.mjs",
    "lint:fix": "eslint . --ext .ts --fix",
    "release": "bash scripts/release.sh",
    "release:mcp-registry": "bash scripts/publish_mcp_registry.sh",
    "format": "prettier --write \"**/*.{js,ts,json,md}\"",
    "format:check": "prettier --check \"**/*.{js,ts,json,md}\""
  },
  "dependencies": {
    "@modelcontextprotocol/sdk": "^1.24.2",
    "@types/node-fetch": "^2.6.12",
    "diff": "^9.0.0",
    "express": "^5.1.0",
    "express-rate-limit": "^8.5.2",
    "fetch-cookie": "^3.1.0",
    "form-data": "^4.0.0",
    "http-proxy-agent": "^7.0.2",
    "https-proxy-agent": "^7.0.6",
    "node-fetch": "^3.3.2",
    "open": "^10.2.0",
    "pino": "^9.7.0",
    "pino-pretty": "^13.0.0",
    "pkce-challenge": "^5.0.0",
    "socks-proxy-agent": "^8.0.5",
    "tldts": "^6.1.86",
    "tough-cookie": "^5.1.2",
    "zod": "^3.24.2",
    "zod-to-json-schema": "3.24.5"
  },
  "devDependencies": {
    "@types/express": "^5.0.2",
    "@types/node": "^22.13.10",
    "@typescript-eslint/eslint-plugin": "^8.21.0",
    "@typescript-eslint/parser": "^8.21.0",
    "auto-changelog": "^2.4.0",
    "dotenv": "^17.2.2",
    "eslint": "^9.18.0",
    "prettier": "^3.4.2",
    "ts-node": "^10.9.2",
    "tsx": "^4.20.5",
    "typescript": "^5.8.2"
  }
}
