{"_id":"@bossforce.ai/mcp-gitlab","name":"@bossforce.ai/mcp-gitlab","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@bossforce.ai/mcp-gitlab","version":"0.1.0","type":"module","repository":{"type":"git","url":"git+https://github.com/bossforce-ai/bossforce-tools.git","directory":"mcps/development/gitlab"},"publishConfig":{"access":"public"},"bin":{"bossforce-mcp-gitlab":"dist/bin.js"},"dependencies":{"zod":"^4.4.3","@bossforce.ai/mcp-core":"0.3.0"},"devDependencies":{"@bossforce.ai/mcp-testkit":"0.0.0"},"scripts":{"build":"tsc -p tsconfig.json","test":"node --test \"dist/*.test.js\""},"_id":"@bossforce.ai/mcp-gitlab@0.1.0","description":"MCP server for the **GitLab REST API v4**, authenticated with a personal access token (`Authorization: Bearer <token>`). Browse projects, read repository files, and manage issues and merge requests. Works against GitLab.com by default and any self-managed","bugs":{"url":"https://github.com/bossforce-ai/bossforce-tools/issues"},"homepage":"https://github.com/bossforce-ai/bossforce-tools#readme","_integrity":"sha512-pufgUe5xvTXvx7j/8g+2BCOFi/JkJzbEZt9K6R/BI6Q7sf6CHSDPiAgSrou2nLV0l7PZqr8yEho5Ve25AVo9Yw==","_resolved":"C:\\Users\\user\\AppData\\Local\\Temp\\1d9cd2469c7dfccfebf908358f6fc6bd\\bossforce.ai-mcp-gitlab-0.1.0.tgz","_from":"file:bossforce.ai-mcp-gitlab-0.1.0.tgz","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-pufgUe5xvTXvx7j/8g+2BCOFi/JkJzbEZt9K6R/BI6Q7sf6CHSDPiAgSrou2nLV0l7PZqr8yEho5Ve25AVo9Yw==","shasum":"a2bdf7ccc804bbca0cd735b0e84945bc190c59e3","tarball":"https://registry.npmjs.org/@bossforce.ai/mcp-gitlab/-/mcp-gitlab-0.1.0.tgz","fileCount":26,"unpackedSize":32019,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD1M1PkAZ0Slh/RsWP76o8kIy9GEvC+v+AmABQl/MecQAIhAKpACBIgtaU4LocDWjllt38HqB1qx2S5fSIvoTsF0wBj"}]},"_npmUser":{"name":"bossforce.ai","email":"bossforce.ai@gmail.com"},"directories":{},"maintainers":[{"name":"bossforce.ai","email":"bossforce.ai@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-gitlab_0.1.0_1781237969550_0.11831207238009966"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-12T04:19:29.405Z","0.1.0":"2026-06-12T04:19:29.674Z","modified":"2026-06-12T04:19:29.871Z"},"maintainers":[{"name":"bossforce.ai","email":"bossforce.ai@gmail.com"}],"description":"MCP server for the **GitLab REST API v4**, authenticated with a personal access token (`Authorization: Bearer <token>`). Browse projects, read repository files, and manage issues and merge requests. Works against GitLab.com by default and any self-managed","homepage":"https://github.com/bossforce-ai/bossforce-tools#readme","repository":{"type":"git","url":"git+https://github.com/bossforce-ai/bossforce-tools.git","directory":"mcps/development/gitlab"},"bugs":{"url":"https://github.com/bossforce-ai/bossforce-tools/issues"},"readme":"# @bossforce.ai/mcp-gitlab\n\nMCP server for the **GitLab REST API v4**, authenticated with a personal access\ntoken (`Authorization: Bearer <token>`). Browse projects, read repository files,\nand manage issues and merge requests. Works against GitLab.com by default and any\nself-managed instance via an optional base URL.\n\n## Credentials\n\n| Env               | How to obtain                                                                                                                                               |\n| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `GITLAB_TOKEN`    | Create a personal access token in GitLab (User Settings → [Access Tokens](https://gitlab.com/-/user_settings/personal_access_tokens)) with the `api` scope. |\n| `GITLAB_BASE_URL` | _Optional._ API base URL for a self-managed instance, e.g. `https://gitlab.example.com/api/v4`. Defaults to `https://gitlab.com/api/v4`.                    |\n\nThe `api` scope grants full read/write; use `read_api` for read-only access. The\ntoken is read lazily, so the server boots and answers `tools/list` without it;\ncalls fail with an `auth` error until it is set.\n\n## Tools\n\n| Tool                   | Arguments                                                                                                                                                           | Returns                   |\n| ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |\n| `list_projects`        | `search?`, `owned?`, `simple?`, `order_by?`, `sort?`, `per_page?`, `page?`                                                                                          | `{ items: [...] }`        |\n| `list_issues`          | `project_id`, `state?`, `labels?`, `search?`, `per_page?`, `page?`                                                                                                  | `{ items: [...] }`        |\n| `create_issue`         | `project_id`, `title`, `description?`, `labels?`, `assignee_ids?`, `milestone_id?`, `confidential?`                                                                 | the created issue         |\n| `get_file`             | `project_id`, `file_path`, `ref`                                                                                                                                    | the file (Base64 content) |\n| `create_merge_request` | `project_id`, `source_branch`, `target_branch`, `title`, `description?`, `assignee_ids?`, `reviewer_ids?`, `labels?`, `remove_source_branch?`, `target_project_id?` | the created merge request |\n\nResponses are GitLab's native JSON payloads, returned as `structuredContent`.\nEndpoints that return a bare array (`list_projects`, `list_issues`) are wrapped\nunder `items`.\n\n### Working with projects\n\n`project_id` is either the numeric project ID or the URL-encoded\n`namespace/project` path (e.g. `mygroup/myrepo`); it is encoded for you, so pass\nit unescaped. Use `list_projects` to discover a project ID first. For `get_file`,\nthe returned `content` is Base64-encoded — decode it to read the file. Page\nthrough `list_projects` and `list_issues` with `per_page` and `page`.\n\n## Develop\n\n```bash\npnpm --filter @bossforce.ai/mcp-gitlab build\npnpm --filter @bossforce.ai/mcp-gitlab test\n```\n\nRegenerate the tools/list snapshot after an intentional signature change:\n\n```bash\nUPDATE_SNAPSHOTS=1 pnpm --filter @bossforce.ai/mcp-gitlab test\n```\n","readmeFilename":"README.md","_rev":"1-e44e4a365ad96b248a9aa1f8c6e04a29"}