### Changelog

All notable changes to this project will be documented in this file. Dates are displayed in UTC.

Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog).

#### Unreleased

- fix: sanitize top-level null optional tool arguments before Zod validation ([#281](https://github.com/zereight/gitlab-mcp/issues/281))
    - preserve intentional nested nulls (GraphQL variables, diff line numbers, label priority)
    - reject partial merge request position SHAs via schema preprocess instead of silently dropping position

#### [v2.1.0](https://github.com/zereight/gitlab-mcp/compare/v2.0.36...v2.1.0)

##### Token Optimization & Tool Policy

- **Security**: Refuse unauthenticated Streamable HTTP startup when a server-side GitLab token is configured without MCP-layer authorization
- **Schema slimming (C)**: Strip `$schema` and `additionalProperties` from tool input schemas, reducing per-tool payload by ~40%
- **Tool annotations (E)**: Add MCP annotations (`readOnlyHint`, `destructiveHint`, `confirmationHint`, `openWorldHint`) to all tools
- **Tool policy - approve (F)**: `GITLAB_TOOL_POLICY_APPROVE` env var / `--tool-policy-approve` CLI - comma-separated tool names that require `_confirmed: true` before execution
- **Tool policy - hidden (F)**: `GITLAB_TOOL_POLICY_HIDDEN` env var / `--tool-policy-hidden` CLI - comma-separated tool names excluded from tools/list
- **Dynamic discovery (H)**: `discover_tools` meta-tool always available; agents call it to activate toolsets on demand instead of receiving all tools upfront
- **Centralized registry (A/B)**: `tools/registry.ts` exports `allTools`, `readOnlyTools`, `destructiveTools`, `TOOLSET_DEFINITIONS`
- **Audit logging (G)**: Structured pino logs for every tool call (`tool_call_done` with duration, tool name)
- **Tests**: 34 tests covering schema slimming, raw HTTP annotations, policy edge cases (hidden/approve precedence, regex+hidden combo, annotation overlap), dynamic discovery, and hidden+discover_tools bypass prevention

#### [v2.0.24](https://github.com/zereight/gitlab-mcp/compare/v2.0.23...v2.0.24)

- Add include_inheritance support to list_project_members [`#316`](https://github.com/zereight/gitlab-mcp/pull/316)
- feat: approve and unapprove merge requests [`#308`](https://github.com/zereight/gitlab-mcp/pull/308)
- Add cookie file reload and session warmup for proxy authenticationFix cookie warmup [`#315`](https://github.com/zereight/gitlab-mcp/pull/315)
- feat: add excluded_file_patterns parameter to get_merge_request_diffs [`#313`](https://github.com/zereight/gitlab-mcp/pull/313)
- fix: remove obsolete readonly MCP tests and update test scripts [`b72bc76`](https://github.com/zereight/gitlab-mcp/commit/b72bc7673545ca2725b6d880fa7c7d042b24920d)
- refactor: extract filterDiffsByPatterns util and add ReDoS protection [`f1adeec`](https://github.com/zereight/gitlab-mcp/commit/f1adeeceb0fc987c0baa3537c66b3b24118f64f8)
- ci: add test:mock to PR validation workflow [`78ac4a6`](https://github.com/zereight/gitlab-mcp/commit/78ac4a695f94795d6a6e03709aa4cf2d28b2f42f)

#### [v2.0.23](https://github.com/zereight/gitlab-mcp/compare/v2.0.22...v2.0.23)

> 15 January 2026

- feat(gitlab): expose merge request version tools [`#272`](https://github.com/zereight/gitlab-mcp/pull/272)
- feat(docker): add Docker support with example environment and README [`#270`](https://github.com/zereight/gitlab-mcp/pull/270)
- fix: make create_draft_note position parameter flexible [`#269`](https://github.com/zereight/gitlab-mcp/pull/269)
- feat: add CLI arguments support for configuration [`#291`](https://github.com/zereight/gitlab-mcp/pull/291)
- refactor: unify test scripts structure [`#304`](https://github.com/zereight/gitlab-mcp/pull/304)
- refactor: fix deprecated lint issues and security vulnerability [`#303`](https://github.com/zereight/gitlab-mcp/pull/303)
- fix: update dependencies for @modelcontextprotocol/sdk and add @hono/node-server [`3a07d08`](https://github.com/zereight/gitlab-mcp/commit/3a07d086ccea67d9866f4fcb7da11fd7d5140820)
- fix: use getEffectiveApiUrl and getFetchConfig in MR version functions [`bc205a5`](https://github.com/zereight/gitlab-mcp/commit/bc205a584ae9a5d356771f99eab22ab1142bc4ca)
- fix: restore original package name and remove fork references [`0c001f5`](https://github.com/zereight/gitlab-mcp/commit/0c001f54a49512f758d1496a949f36e0bf38c4da)

#### [v2.0.22](https://github.com/zereight/gitlab-mcp/compare/v2.0.21...v2.0.22)

> 4 January 2026

- ci: add missing tests to PR workflow [`#302`](https://github.com/zereight/gitlab-mcp/pull/302)
- refactor(list_merge_requests): improve code quality and docs [`#301`](https://github.com/zereight/gitlab-mcp/pull/301)
- feat: allow global merge request listing (optional project_id) [`#293`](https://github.com/zereight/gitlab-mcp/pull/293)
- chore(deps): bump qs from 6.14.0 to 6.14.1 [`#300`](https://github.com/zereight/gitlab-mcp/pull/300)

#### [v2.0.21](https://github.com/zereight/gitlab-mcp/compare/v2.0.20...v2.0.21)

> 21 December 2025

- fix: change default HOST from 0.0.0.0 to 127.0.0.1 [`#289`](https://github.com/zereight/gitlab-mcp/pull/289)
- chore(deps-dev): bump js-yaml [`#296`](https://github.com/zereight/gitlab-mcp/pull/296)
- chore(deps): bump body-parser [`#297`](https://github.com/zereight/gitlab-mcp/pull/297)
- ci: remove matrix strategy and unify Node.js to 22.21.1 in all workflows [`c8c2ac7`](https://github.com/zereight/gitlab-mcp/commit/c8c2ac75b78a84f83cc6d08a78019b6bbc9c94fb)
- chore: remove 'peer' property from multiple dependencies in package-lock.json [`6d56742`](https://github.com/zereight/gitlab-mcp/commit/6d5674216f263a719efbbdd5671b9209fe2b004f)
- chore: update step 2 image in documentation [`b235c32`](https://github.com/zereight/gitlab-mcp/commit/b235c3279ca9b7776fd35559ad012bba9490c740)

#### [v2.0.20](https://github.com/zereight/gitlab-mcp/compare/v2.0.19...v2.0.20)

> 20 December 2025

- feat: add 405 response for GET /mcp endpoint when STREAMABLE_HTTP is enabled. https://modelcontextprotocol.io/specification/2025-06-18/basic/transports#listening-for-messages-from-the-server [`#295`](https://github.com/zereight/gitlab-mcp/pull/295)
- chore: change Docker Hub to zereight050, add workflow_dispatch [`292c801`](https://github.com/zereight/gitlab-mcp/commit/292c8018a8c64524dc46b78880c49278ddd902f8)
- chore: bump version to 2.0.20 [`49b047d`](https://github.com/zereight/gitlab-mcp/commit/49b047d2b07764d4e09b8cb65d407b73b402a235)
- chore: standardize Node.js to 22.21.1 (LTS) across all environments [`718262c`](https://github.com/zereight/gitlab-mcp/commit/718262c61a46c4a71f293f11f1bd33b70bc202d3)

#### [v2.0.19](https://github.com/zereight/gitlab-mcp/compare/v2.0.18...v2.0.19)

> 20 December 2025

- feat: add OAuth2 support and update documentation [`52661c4`](https://github.com/zereight/gitlab-mcp/commit/52661c4f219583693bea0d83a66b8cbb8a31f961)
- feat: add OAuth2 configuration examples and update documentation for Docker deployments [`1f6f2f8`](https://github.com/zereight/gitlab-mcp/commit/1f6f2f8fa25a3afc9d18bf6fec1cc6a83eae9a30)

#### [v2.0.18](https://github.com/zereight/gitlab-mcp/compare/v2.0.17...v2.0.18)

> 20 December 2025

- chore: bump version to 2.0.18 and update changelog [`55c7896`](https://github.com/zereight/gitlab-mcp/commit/55c7896a56612bad578ceb949a008f4c4cfc5c44)
- ci: upgrade npm for OIDC trusted publishing support [`cf4a57f`](https://github.com/zereight/gitlab-mcp/commit/cf4a57f18ec74a628fe8c5f027646e02c3847ae6)

#### [v2.0.17](https://github.com/zereight/gitlab-mcp/compare/v2.0.16...v2.0.17)

> 20 December 2025

- chore: bump version to 2.0.17 and update changelog [`d4cef6e`](https://github.com/zereight/gitlab-mcp/commit/d4cef6ef10f43e02e8a0a082ac92b665912e1e7f)
- ci: update npm-publish to use OIDC trusted publishing [`4eabe16`](https://github.com/zereight/gitlab-mcp/commit/4eabe16e454b481abfe473e257327e78e5d1e657)

#### [v2.0.16](https://github.com/zereight/gitlab-mcp/compare/v2.0.15...v2.0.16)

> 20 December 2025

- Revert to npm registry and add OTP support [`df5b223`](https://github.com/zereight/gitlab-mcp/commit/df5b223dfc5ea3bf88ebe73b1cc79e55716ea952)

#### [v2.0.15](https://github.com/zereight/gitlab-mcp/compare/v2.0.14...v2.0.15)

> 20 December 2025

- Switch publishing to GitHub Packages [`a2b7882`](https://github.com/zereight/gitlab-mcp/commit/a2b78820bceff9bb347b13a8978465edccd43f3b)

#### [v2.0.14](https://github.com/zereight/gitlab-mcp/compare/v2.0.13...v2.0.14)

> 20 December 2025

- Add support for dynamic GitLab API URLs and connection pooling [`#290`](https://github.com/zereight/gitlab-mcp/pull/290)
- Update changelog for v2.0.14 [`e10a3bc`](https://github.com/zereight/gitlab-mcp/commit/e10a3bcb5f15b40bb3be19bf5c3f57065103e646)
- Bump version to 2.0.14 [`124ba79`](https://github.com/zereight/gitlab-mcp/commit/124ba79f039915c9756e2143d37bfa1a6d271e39)
- Add gitignore entry for local docs [`c0d20d1`](https://github.com/zereight/gitlab-mcp/commit/c0d20d1c25813492e969ffaf5cf45700219da5d5)

#### [v2.0.13](https://github.com/zereight/gitlab-mcp/compare/v2.0.12...v2.0.13)

> 24 November 2025

- chore: bump version to 2.0.12 in package.json and update CHANGELOG [`1d9d6ae`](https://github.com/zereight/gitlab-mcp/commit/1d9d6ae3d0721aa885284a16ad8226485cdeafc9)
- chore: bump version to 2.0.13 in package.json and package-lock.json [`3f33859`](https://github.com/zereight/gitlab-mcp/commit/3f33859d7a6db680cb41c7e490eaaa3c7aa4dab2)

#### [v2.0.12](https://github.com/zereight/gitlab-mcp/compare/v2.0.11...v2.0.12)

> 23 November 2025

- fix: pin zod-to-json-schema to 3.24.5 to prevent breakage from v3.25.0 [`#285`](https://github.com/zereight/gitlab-mcp/pull/285)

#### [v2.0.11](https://github.com/zereight/gitlab-mcp/compare/v2.0.10...v2.0.11)

> 7 November 2025

- Fix #266 [`#273`](https://github.com/zereight/gitlab-mcp/pull/273)
- Support Oauth client authentication with Gitlab [`#261`](https://github.com/zereight/gitlab-mcp/pull/261)
- Fix #266 (#273) [`#266`](https://github.com/zereight/gitlab-mcp/issues/266)
- chore: bump version to 2.0.11 in package.json and update CHANGELOG [`9202826`](https://github.com/zereight/gitlab-mcp/commit/9202826b2431e42d5272e2e2a63d62dbf6e1fa8d)

#### [v2.0.10](https://github.com/zereight/gitlab-mcp/compare/v2.0.9...v2.0.10)

> 7 November 2025

#### [v2.0.9](https://github.com/zereight/gitlab-mcp/compare/v2.0.8...v2.0.9)

> 5 November 2025

- Added documentation integration with strands agents mcp tools [`#265`](https://github.com/zereight/gitlab-mcp/pull/265)
- Fix regex for GitLab PAT token validation [`#267`](https://github.com/zereight/gitlab-mcp/pull/267)
- feat(gitlab): GitLab Merge Request Notes and Discussions: Full CRUD + Thread Resolution [`#260`](https://github.com/zereight/gitlab-mcp/pull/260)
- chore: bump version to 2.0.8 in package.json and update CHANGELOG [`3656011`](https://github.com/zereight/gitlab-mcp/commit/3656011d95b8d146ec0fa04ca19d697991721c04)
- chore: bump version to 2.0.9 in package.json [`88b8a1b`](https://github.com/zereight/gitlab-mcp/commit/88b8a1b9ade2838c968ae9eef812de54b74ebae9)

#### [v2.0.8](https://github.com/zereight/gitlab-mcp/compare/v2.0.7...v2.0.8)

> 27 October 2025

- feat: implement gitlab releases endpoint [`#259`](https://github.com/zereight/gitlab-mcp/pull/259)
- Add support for remote authorization in Streamable HTTP transport [`#258`](https://github.com/zereight/gitlab-mcp/pull/258)
- docs: update CHANGELOG for version 2.0.7 [`3bb35ab`](https://github.com/zereight/gitlab-mcp/commit/3bb35abe37201273e20019a8a5505dbddeaec9f4)
- ci: add remote auth tests to PR workflow [`db4f724`](https://github.com/zereight/gitlab-mcp/commit/db4f72471f0c971178bc150be426bab611e57145)
- 릴리즈배포의 서브태스크 (vibe-kanban 06e3f5cb) [`4d66c93`](https://github.com/zereight/gitlab-mcp/commit/4d66c9316686757eaaddde6be227affc5c3d36cf)

#### [v2.0.7](https://github.com/zereight/gitlab-mcp/compare/v2.0.6...v2.0.7)

> 11 October 2025

- execute graphql [`#253`](https://github.com/zereight/gitlab-mcp/pull/253)
- removed flexibleBoolean and replaced with z.boolean() [`#251`](https://github.com/zereight/gitlab-mcp/pull/251)
- Squashed commit of the following: [`ba4dfcf`](https://github.com/zereight/gitlab-mcp/commit/ba4dfcf72382ab1537fe2dc74ac76151fb0dd6de)
- bump version to 2.0.7 in package.json [`a794e28`](https://github.com/zereight/gitlab-mcp/commit/a794e2860cb3bc5cf457cda614c51dee8293256c)

#### [v2.0.6](https://github.com/zereight/gitlab-mcp/compare/v2.0.5...v2.0.6)

> 20 September 2025

- Fix/inline schemas [`#242`](https://github.com/zereight/gitlab-mcp/pull/242)
- Add "full_diff" parameter to get_commit_diff so we can retreive more than 20 files [`#244`](https://github.com/zereight/gitlab-mcp/pull/244)
- refactor(schemas): replace custom boolean validators with native zod boolean [`#245`](https://github.com/zereight/gitlab-mcp/pull/245)
- Feat/add delete to streamhttp [`#246`](https://github.com/zereight/gitlab-mcp/pull/246)
- Fix: Add 'logic' and 'style' line types to enum for mr_discussions [`#248`](https://github.com/zereight/gitlab-mcp/pull/248)
- bump version to 2.0.5 and update dependencies in package-lock.json [`d1d3f1a`](https://github.com/zereight/gitlab-mcp/commit/d1d3f1a4dabd7a2c0771871a8a08179dd9fba674)
- Bump version to 2.0.6 in package.json [`7a3f89f`](https://github.com/zereight/gitlab-mcp/commit/7a3f89f4577aa0fdfb218ed32a4fe79b126ce071)

#### [v2.0.5](https://github.com/zereight/gitlab-mcp/compare/v2.0.4...v2.0.5)

> 9 September 2025

- Add ability to trigger / retry / cancel individual jobs [`#233`](https://github.com/zereight/gitlab-mcp/pull/233)
- chore: add expose to docker file [`#222`](https://github.com/zereight/gitlab-mcp/pull/222)
- Pull Request: Add GitLab Events API Tools [`#235`](https://github.com/zereight/gitlab-mcp/pull/235)
- bump version to 2.0.5 in package.json [`3e1bdd1`](https://github.com/zereight/gitlab-mcp/commit/3e1bdd114e9e72757dc916a82b831f56ffef6df0)
- docs: update README to include new pipeline-related tools [`f051153`](https://github.com/zereight/gitlab-mcp/commit/f0511537c96dffba6a4a6cee5ee860b23c318668)

#### [v2.0.4](https://github.com/zereight/gitlab-mcp/compare/v2.0.3...v2.0.4)

> 31 August 2025

- Fixes coverage parsing error on Pipelines related types [`#230`](https://github.com/zereight/gitlab-mcp/pull/230)
- FEAT: add GITLAB_DENIED_TOOLS_REGEX env to disable some tools [`#206`](https://github.com/zereight/gitlab-mcp/pull/206)
- Feat/modify email [`#225`](https://github.com/zereight/gitlab-mcp/pull/225)
- v1.0.77 [`#209`](https://github.com/zereight/gitlab-mcp/pull/209)
- FIX: docker hub repo user name [`#210`](https://github.com/zereight/gitlab-mcp/pull/210)
- feat: Add NPM publish workflow for automated package publishing [`#208`](https://github.com/zereight/gitlab-mcp/pull/208)
- Fix list of tools in `README.md` [`#205`](https://github.com/zereight/gitlab-mcp/pull/205)
- FIX: flexible boolean [`#201`](https://github.com/zereight/gitlab-mcp/pull/201)
- feat(attachement):download attachement, e.g. images [`#200`](https://github.com/zereight/gitlab-mcp/pull/200)
- FEAT: merge MR [`#193`](https://github.com/zereight/gitlab-mcp/pull/193)
- FEAT: get draft note [`#197`](https://github.com/zereight/gitlab-mcp/pull/197)
- feat: Add createDraftNote api support, useful for bulk code review [`#183`](https://github.com/zereight/gitlab-mcp/pull/183)
- feat: add my_issues and list_project_members tools [`#133`](https://github.com/zereight/gitlab-mcp/pull/133)
- feat(pipeline): Add list_pipeline_trigger_jobs tools [`#194`](https://github.com/zereight/gitlab-mcp/pull/194)
- (feat): add tool to upload file for markdown content [`#196`](https://github.com/zereight/gitlab-mcp/pull/196)
- Bump version to 1.0.76 [`#182`](https://github.com/zereight/gitlab-mcp/pull/182)
- FEAT: iteration [`#179`](https://github.com/zereight/gitlab-mcp/pull/179)
- Bump version to 1.0.75 [`#178`](https://github.com/zereight/gitlab-mcp/pull/178)
- Allow accessing issues without project id [`#168`](https://github.com/zereight/gitlab-mcp/pull/168)
- Feat/deploy script [`#176`](https://github.com/zereight/gitlab-mcp/pull/176)
- FEAT: target project on create MR [`#174`](https://github.com/zereight/gitlab-mcp/pull/174)
- Bump version to 1.0.74 [`#175`](https://github.com/zereight/gitlab-mcp/pull/175)
- FEAT: add logging [`#162`](https://github.com/zereight/gitlab-mcp/pull/162)
- FEAT: id is string or number [`#161`](https://github.com/zereight/gitlab-mcp/pull/161)
- FIX string or number [`#160`](https://github.com/zereight/gitlab-mcp/pull/160)
- FIX: id string or number [`#158`](https://github.com/zereight/gitlab-mcp/pull/158)
- FIX: deploy script [`#156`](https://github.com/zereight/gitlab-mcp/pull/156)
- chore: Bump version 1.0.72 [`#154`](https://github.com/zereight/gitlab-mcp/pull/154)
- FEAT: enable string for boolean for claude [`#150`](https://github.com/zereight/gitlab-mcp/pull/150)
- Bump version to 1.0.71 [`#152`](https://github.com/zereight/gitlab-mcp/pull/152)
- tag with image push [`#151`](https://github.com/zereight/gitlab-mcp/pull/151)
- FIX: string | number for gemini [`#149`](https://github.com/zereight/gitlab-mcp/pull/149)
- FIX: format boolean for claude [`#148`](https://github.com/zereight/gitlab-mcp/pull/148)
- Print logs to stderr [`#147`](https://github.com/zereight/gitlab-mcp/pull/147)
- FIX: CreateMergeRequestSchema [`#146`](https://github.com/zereight/gitlab-mcp/pull/146)
- chore: Bump version to 1.0.70 [`#145`](https://github.com/zereight/gitlab-mcp/pull/145)
- FIX: sse [`#144`](https://github.com/zereight/gitlab-mcp/pull/144)
- FIX: default project id [`#141`](https://github.com/zereight/gitlab-mcp/pull/141)
- FEAT: format boolean [`#143`](https://github.com/zereight/gitlab-mcp/pull/143)
- FIX: console to stderr [`#135`](https://github.com/zereight/gitlab-mcp/pull/135)
- FIX: create pipeline [`#138`](https://github.com/zereight/gitlab-mcp/pull/138)
- FEAT: Add support for Streamable HTTP transport [`#128`](https://github.com/zereight/gitlab-mcp/pull/128)
- FIX: notable iid [`#126`](https://github.com/zereight/gitlab-mcp/pull/126)
- FEAT: reviewer on update MR [`#118`](https://github.com/zereight/gitlab-mcp/pull/118)
- FEAT: not call create fork repo on set default project id [`#116`](https://github.com/zereight/gitlab-mcp/pull/116)
- FEAT: project id , vscode doc [`#113`](https://github.com/zereight/gitlab-mcp/pull/113)
- feat(simple healthcheck): [`#112`](https://github.com/zereight/gitlab-mcp/pull/112)
- FIX: new,old path nullable [`#108`](https://github.com/zereight/gitlab-mcp/pull/108)
- fix: avoid error caused by line_range type: null in discussion [`#107`](https://github.com/zereight/gitlab-mcp/pull/107)
- FIX: sse readme [`#103`](https://github.com/zereight/gitlab-mcp/pull/103)
- FEAT: mr discussion with code diff [`#93`](https://github.com/zereight/gitlab-mcp/pull/93)
- feat: add cookie-based authentication support for enterprise GitLab  [`#101`](https://github.com/zereight/gitlab-mcp/pull/101)
- Fix notification_level null handling for GitLab group owners [`#99`](https://github.com/zereight/gitlab-mcp/pull/99)
- feat: add pagination support for CI job logs to prevent context window flooding [`#97`](https://github.com/zereight/gitlab-mcp/pull/97)
- FIX: private token auth [`#91`](https://github.com/zereight/gitlab-mcp/pull/91)
- FEAT: private token auth [`#89`](https://github.com/zereight/gitlab-mcp/pull/89)
- FIX: list issues assginee username [`#87`](https://github.com/zereight/gitlab-mcp/pull/87)
- FEAT: add support for `remove_source_branch` and `squash` options for merge requests [`#86`](https://github.com/zereight/gitlab-mcp/pull/86)
- Fix for null error [`#85`](https://github.com/zereight/gitlab-mcp/pull/85)
- FIX: bug get issues [`#83`](https://github.com/zereight/gitlab-mcp/pull/83)
- Add support for retrieving wiki page content in list_wiki_pages [`#82`](https://github.com/zereight/gitlab-mcp/pull/82)
- DOC: readme docker image [`#81`](https://github.com/zereight/gitlab-mcp/pull/81)
- Add pagination to merge request discussions, similar to issue discussions [`#80`](https://github.com/zereight/gitlab-mcp/pull/80)
- fix: merge_requests_template can be null [`#79`](https://github.com/zereight/gitlab-mcp/pull/79)
- FIX: issue param [`#78`](https://github.com/zereight/gitlab-mcp/pull/78)
- FIX: get issues labels [`#77`](https://github.com/zereight/gitlab-mcp/pull/77)
- FEAT: MCP SSE [`#76`](https://github.com/zereight/gitlab-mcp/pull/76)
- Feat: Enrich Merge Request Creation [`#68`](https://github.com/zereight/gitlab-mcp/pull/68)
- Feat/custom ssl [`#72`](https://github.com/zereight/gitlab-mcp/pull/72)
- FEAT: multi platform [`#71`](https://github.com/zereight/gitlab-mcp/pull/71)
- FEAT: ci push docker hub [`#65`](https://github.com/zereight/gitlab-mcp/pull/65)
- feat: add pipeline management commands [`#64`](https://github.com/zereight/gitlab-mcp/pull/64)
- [main] docs: update README with comments on GITLAB configuration options [`#63`](https://github.com/zereight/gitlab-mcp/pull/63)
- test [`#61`](https://github.com/zereight/gitlab-mcp/pull/61)
- Fix GitHub Actions workflow syntax errors [`#62`](https://github.com/zereight/gitlab-mcp/pull/62)
- feat: add tools for milestones [`#59`](https://github.com/zereight/gitlab-mcp/pull/59)
- FEAT: docker image push script [`#60`](https://github.com/zereight/gitlab-mcp/pull/60)
- fix(schemas): make illustration nullable in GitLabPipelineSchema [`#58`](https://github.com/zereight/gitlab-mcp/pull/58)
- feat: implement list_merge_requests functionality  [`#56`](https://github.com/zereight/gitlab-mcp/pull/56)
- fix(schemas): make avatar_url nullable in GitLabUserSchema [`#55`](https://github.com/zereight/gitlab-mcp/pull/55)
- FIX: description null error [`#53`](https://github.com/zereight/gitlab-mcp/pull/53)
- feat(release): 1.0.44  adds pipeline jobs tool [`#52`](https://github.com/zereight/gitlab-mcp/pull/52)
- feat: add support for creating and updating issue notes [`#47`](https://github.com/zereight/gitlab-mcp/pull/47)
- fix: fix README [`#45`](https://github.com/zereight/gitlab-mcp/pull/45)
- feat: add issue discussions support [`#44`](https://github.com/zereight/gitlab-mcp/pull/44)
- feat: add docker image and push to dockerhub [`#42`](https://github.com/zereight/gitlab-mcp/pull/42)
- fixed resolve_outdated_diff_discussions nullable [`#41`](https://github.com/zereight/gitlab-mcp/pull/41)
- fix: add `expanded` to `start` and `end` for GitLabDiscussionNoteSchema [`#40`](https://github.com/zereight/gitlab-mcp/pull/40)
- Adds threaded comment support for merge requests [`#38`](https://github.com/zereight/gitlab-mcp/pull/38)
- Support resolving merge request discussion notes [`#37`](https://github.com/zereight/gitlab-mcp/pull/37)
- feat: Gitlab list repository tree tool [`#35`](https://github.com/zereight/gitlab-mcp/pull/35)
- feat: support search by branch for get_merge_request [`#34`](https://github.com/zereight/gitlab-mcp/pull/34)
- feat: Implement proxy configuration for HTTP/HTTPS/SOCKS [`#33`](https://github.com/zereight/gitlab-mcp/pull/33)
- feat: Add read-only mode support [`#29`](https://github.com/zereight/gitlab-mcp/pull/29)
- Add schemas for GitLab discussion notes and merge request discussions [`#26`](https://github.com/zereight/gitlab-mcp/pull/26)
- :sparkles: Add `list_group_projects tool` [`#25`](https://github.com/zereight/gitlab-mcp/pull/25)
- Update README.md [`#24`](https://github.com/zereight/gitlab-mcp/pull/24)
- Fixed types for create_merge_request and get_merge_request tools. [`#23`](https://github.com/zereight/gitlab-mcp/pull/23)
- Authentication Header Consistency Fix [`#22`](https://github.com/zereight/gitlab-mcp/pull/22)
- Labels API Support [`#21`](https://github.com/zereight/gitlab-mcp/pull/21)
- Improve README documentation with detailed tool descriptions [`#18`](https://github.com/zereight/gitlab-mcp/pull/18)
- Implement GitLab Issues and Issue Links API [`#17`](https://github.com/zereight/gitlab-mcp/pull/17)
- Add GitLab Projects API support [`#16`](https://github.com/zereight/gitlab-mcp/pull/16)
- Add GitLab Namespaces API support [`#15`](https://github.com/zereight/gitlab-mcp/pull/15)
- Fix GitLab API fork repository parameter handling [`#14`](https://github.com/zereight/gitlab-mcp/pull/14)
- Fix GitLab API parameter handling in create_or_update_file [`#13`](https://github.com/zereight/gitlab-mcp/pull/13)
- Improve code documentation with bilingual JSDoc comments [`#11`](https://github.com/zereight/gitlab-mcp/pull/11)
- Fix URL construction with smart API URL normalization [`#10`](https://github.com/zereight/gitlab-mcp/pull/10)
- Fix createNote function URL construction: use plural resource names and avoid duplicate /api/v4 [`#7`](https://github.com/zereight/gitlab-mcp/pull/7)
- Added missing api url part to create_note [`#3`](https://github.com/zereight/gitlab-mcp/pull/3)
- Deployment: Dockerfile and Smithery config [`#2`](https://github.com/zereight/gitlab-mcp/pull/2)
- add MCP server badge [`#1`](https://github.com/zereight/gitlab-mcp/pull/1)
- [feat/pipeline-support] feat: add pipeline management commands [`#46`](https://github.com/zereight/gitlab-mcp/issues/46)
- chore: update CHANGELOG for version 2.0.4 [`e26c169`](https://github.com/zereight/gitlab-mcp/commit/e26c16998256cca0d4c3aea9b3046f61ed6cb866)
- Squashed commit of the following: [`73f21db`](https://github.com/zereight/gitlab-mcp/commit/73f21dbf1ea29e501e095b78b8d55cc517e777f5)
- Squashed commit of the following: [`750e1c6`](https://github.com/zereight/gitlab-mcp/commit/750e1c614047a1bb84ac4324d5881f78f24c8482)

#### [v2.0.3](https://github.com/zereight/gitlab-mcp/compare/v2.0.2...v2.0.3)

> 17 August 2025

- fix: Update Docker image repository name in workflow [`b97b264`](https://github.com/zereight/gitlab-mcp/commit/b97b2642c954e6cea8d3ce0c1092d04229cfd1f9)
- chore: Update version to 2.0.3 in package.json [`196aee3`](https://github.com/zereight/gitlab-mcp/commit/196aee3db2faa0e3f4f9263a24d31b29c95fdfda)

#### [v2.0.2](https://github.com/zereight/gitlab-mcp/compare/v2.0.1...v2.0.2)

> 15 August 2025

- chore: update version in package.json to 2.0.2 [`0c5e667`](https://github.com/zereight/gitlab-mcp/commit/0c5e667c5c600c4a70ff613fc6e1de6dcbc2403a)
- chore: update version in CHANGELOG to 2.0.1 [`e3b0144`](https://github.com/zereight/gitlab-mcp/commit/e3b0144f98a409e0decedef076d4c4097b0c8519)

#### [v2.0.1](https://github.com/zereight/gitlab-mcp/compare/2.0.0...v2.0.1)

> 15 August 2025

- v1.0.77 [`#209`](https://github.com/zereight/gitlab-mcp/pull/209)
- FIX: docker hub repo user name [`#210`](https://github.com/zereight/gitlab-mcp/pull/210)
- feat: Add NPM publish workflow for automated package publishing [`#208`](https://github.com/zereight/gitlab-mcp/pull/208)
- Fix list of tools in `README.md` [`#205`](https://github.com/zereight/gitlab-mcp/pull/205)
- Squashed commit of the following: [`291fb10`](https://github.com/zereight/gitlab-mcp/commit/291fb10a6c2e42cc377d5bfd87fe94546ecdfa1e)
- Fix list of tools [`4ab6eb1`](https://github.com/zereight/gitlab-mcp/commit/4ab6eb186c16cc8534f649fe76b71f5e4dc82b9d)
- fix: update Docker Hub repository username in workflow [`4ed895b`](https://github.com/zereight/gitlab-mcp/commit/4ed895b7360c94d7f3b8c788510233550b2a6281)

### [2.0.0](https://github.com/zereight/gitlab-mcp/compare/v1.0.77...2.0.0)

> 15 August 2025

- User based authentication methods [`#130`](https://github.com/zereight/gitlab-mcp/pull/130)
- feat: update version to 2.0.0-canary.0 [`1751d1d`](https://github.com/zereight/gitlab-mcp/commit/1751d1db1c3be99419dfb9d7faf2797d8347063b)
- fix: update version to 2.0.0 in package.json and package-lock.json [`cce5d07`](https://github.com/zereight/gitlab-mcp/commit/cce5d07c9825011f6a326a82d85a097cf258ba60)
- fix: update version to 2.0.0-beta.0 and rename deploy scripts [`d5a652d`](https://github.com/zereight/gitlab-mcp/commit/d5a652d52d908c164665a59ce8a964373bf7dec1)

#### [v1.0.77](https://github.com/zereight/gitlab-mcp/compare/v1.0.76...v1.0.77)

> 13 August 2025

- feat: Add NPM publish workflow for automated package publishing [`#208`](https://github.com/zereight/gitlab-mcp/pull/208)
- Fix list of tools in `README.md` [`#205`](https://github.com/zereight/gitlab-mcp/pull/205)
- FIX: flexible boolean [`#201`](https://github.com/zereight/gitlab-mcp/pull/201)
- feat(attachement):download attachement, e.g. images [`#200`](https://github.com/zereight/gitlab-mcp/pull/200)
- FEAT: merge MR [`#193`](https://github.com/zereight/gitlab-mcp/pull/193)
- FEAT: get draft note [`#197`](https://github.com/zereight/gitlab-mcp/pull/197)
- feat: Add createDraftNote api support, useful for bulk code review [`#183`](https://github.com/zereight/gitlab-mcp/pull/183)
- feat: add my_issues and list_project_members tools [`#133`](https://github.com/zereight/gitlab-mcp/pull/133)
- feat(pipeline): Add list_pipeline_trigger_jobs tools [`#194`](https://github.com/zereight/gitlab-mcp/pull/194)
- (feat): add tool to upload file for markdown content [`#196`](https://github.com/zereight/gitlab-mcp/pull/196)
- Fix list of tools [`4ab6eb1`](https://github.com/zereight/gitlab-mcp/commit/4ab6eb186c16cc8534f649fe76b71f5e4dc82b9d)
- feat: replace GITLAB_LOCK_PROJECT with GITLAB_ALLOWED_PROJECT_IDS [`009ad97`](https://github.com/zereight/gitlab-mcp/commit/009ad97ef74f06b58319a08fdda11253e629b077)
- feat: add GITLAB_LOCK_PROJECT environment variable [`c899a7d`](https://github.com/zereight/gitlab-mcp/commit/c899a7dc3be63bbfce25a715cd3d910255604c0b)

#### [v1.0.76](https://github.com/zereight/gitlab-mcp/compare/v1.0.75...v1.0.76)

> 25 July 2025

- Bump version to 1.0.76 [`#182`](https://github.com/zereight/gitlab-mcp/pull/182)
- FEAT: iteration [`#179`](https://github.com/zereight/gitlab-mcp/pull/179)
- Bump version to 1.0.75 [`#178`](https://github.com/zereight/gitlab-mcp/pull/178)
- Merge pull request #181 from zereight/feat/166-1 [`6adbeea`](https://github.com/zereight/gitlab-mcp/commit/6adbeea560dc6a06d90a1b0984253bb2f3df2867)
- FIX [`46f8405`](https://github.com/zereight/gitlab-mcp/commit/46f8405a31f957c4c60113e3473e9e084562eff0)
- FIX: default null [`6e82e7e`](https://github.com/zereight/gitlab-mcp/commit/6e82e7e5c9e603af18fa4639956d159a861edce6)

#### [v1.0.75](https://github.com/zereight/gitlab-mcp/compare/v1.0.74...v1.0.75)

> 18 July 2025

- Allow accessing issues without project id [`#168`](https://github.com/zereight/gitlab-mcp/pull/168)
- Feat/deploy script [`#176`](https://github.com/zereight/gitlab-mcp/pull/176)
- FEAT: target project on create MR [`#174`](https://github.com/zereight/gitlab-mcp/pull/174)
- Bump version to 1.0.74 [`#175`](https://github.com/zereight/gitlab-mcp/pull/175)
- FIX [`2872aed`](https://github.com/zereight/gitlab-mcp/commit/2872aed35fee55b29d44ec01e0417a0a087e9ef3)
- fix(list_issues): make project_id optional [`b242522`](https://github.com/zereight/gitlab-mcp/commit/b2425221a6077c7fdba343e8681d1938a24d3a39)
- Bump version to 1.0.75 [`b0411ba`](https://github.com/zereight/gitlab-mcp/commit/b0411ba2b9e949fefe37620b27425310d38a5cd7)

#### [v1.0.74](https://github.com/zereight/gitlab-mcp/compare/v1.0.73...v1.0.74)

> 17 July 2025

- Bump version to 1.0.74 [`8effa28`](https://github.com/zereight/gitlab-mcp/commit/8effa283ba7fe71e7b9c6548e37a7866bd730421)

#### [v1.0.73](https://github.com/zereight/gitlab-mcp/compare/v1.0.72...v1.0.73)

> 13 July 2025

- FEAT: add logging [`#162`](https://github.com/zereight/gitlab-mcp/pull/162)
- FEAT: id is string or number [`#161`](https://github.com/zereight/gitlab-mcp/pull/161)
- FIX string or number [`#160`](https://github.com/zereight/gitlab-mcp/pull/160)
- FIX: id string or number [`#158`](https://github.com/zereight/gitlab-mcp/pull/158)
- FIX: deploy script [`#156`](https://github.com/zereight/gitlab-mcp/pull/156)
- FIX [`1131897`](https://github.com/zereight/gitlab-mcp/commit/1131897817ca5462320ba1a9a532ec3f2b196286)
- FIX [`0affdf9`](https://github.com/zereight/gitlab-mcp/commit/0affdf9df0c2ca1ec9deab2e4977b93f8acd9e0b)
- FIX: string or number [`429f397`](https://github.com/zereight/gitlab-mcp/commit/429f39700ee9f48f65af8bbc8d8756abe3da37bd)

#### [v1.0.72](https://github.com/zereight/gitlab-mcp/compare/v1.0.65...v1.0.72)

> 9 July 2025

- chore: Bump version 1.0.72 [`#154`](https://github.com/zereight/gitlab-mcp/pull/154)
- FEAT: enable string for boolean for claude [`#150`](https://github.com/zereight/gitlab-mcp/pull/150)
- Bump version to 1.0.71 [`#152`](https://github.com/zereight/gitlab-mcp/pull/152)
- tag with image push [`#151`](https://github.com/zereight/gitlab-mcp/pull/151)
- FIX: string | number for gemini [`#149`](https://github.com/zereight/gitlab-mcp/pull/149)
- FIX: format boolean for claude [`#148`](https://github.com/zereight/gitlab-mcp/pull/148)
- Print logs to stderr [`#147`](https://github.com/zereight/gitlab-mcp/pull/147)
- FIX: CreateMergeRequestSchema [`#146`](https://github.com/zereight/gitlab-mcp/pull/146)
- chore: Bump version to 1.0.70 [`#145`](https://github.com/zereight/gitlab-mcp/pull/145)
- FIX: sse [`#144`](https://github.com/zereight/gitlab-mcp/pull/144)
- FIX: default project id [`#141`](https://github.com/zereight/gitlab-mcp/pull/141)
- FEAT: format boolean [`#143`](https://github.com/zereight/gitlab-mcp/pull/143)
- FIX: console to stderr [`#135`](https://github.com/zereight/gitlab-mcp/pull/135)
- FIX: create pipeline [`#138`](https://github.com/zereight/gitlab-mcp/pull/138)
- FEAT: Add support for Streamable HTTP transport [`#128`](https://github.com/zereight/gitlab-mcp/pull/128)
- FIX: notable iid [`#126`](https://github.com/zereight/gitlab-mcp/pull/126)
- FEAT: reviewer on update MR [`#118`](https://github.com/zereight/gitlab-mcp/pull/118)
- FEAT: not call create fork repo on set default project id [`#116`](https://github.com/zereight/gitlab-mcp/pull/116)
- FEAT: project id , vscode doc [`#113`](https://github.com/zereight/gitlab-mcp/pull/113)
- feat(simple healthcheck): [`#112`](https://github.com/zereight/gitlab-mcp/pull/112)
- FIX: new,old path nullable [`#108`](https://github.com/zereight/gitlab-mcp/pull/108)
- fix: avoid error caused by line_range type: null in discussion [`#107`](https://github.com/zereight/gitlab-mcp/pull/107)
- FIX: sse readme [`#103`](https://github.com/zereight/gitlab-mcp/pull/103)
- REVIEW FIX [`3ad2954`](https://github.com/zereight/gitlab-mcp/commit/3ad29547b4f53aacb07b54d4f88329f8cb23c1cf)
- fix: avoid error caused by line_range: null in discussion [`d50b7fd`](https://github.com/zereight/gitlab-mcp/commit/d50b7fd1ac01802889bd383e39d767378204aa66)
- FIX [`b109392`](https://github.com/zereight/gitlab-mcp/commit/b109392f1c89d891d6a9706249c2fcd541ab0165)

#### [v1.0.65](https://github.com/zereight/gitlab-mcp/compare/v1.0.64...v1.0.65)

> 16 June 2025

- FEAT: mr discussion with code diff [`#93`](https://github.com/zereight/gitlab-mcp/pull/93)
- docs: update README and version to 1.0.64 [`cced1c1`](https://github.com/zereight/gitlab-mcp/commit/cced1c16f9c2c7cc0ba2e7e2c28884bb966f0bd5)

#### [v1.0.64](https://github.com/zereight/gitlab-mcp/compare/1.0.63...v1.0.64)

> 16 June 2025

- feat: add cookie-based authentication support for enterprise GitLab  [`#101`](https://github.com/zereight/gitlab-mcp/pull/101)
- Fix notification_level null handling for GitLab group owners [`#99`](https://github.com/zereight/gitlab-mcp/pull/99)

#### [1.0.63](https://github.com/zereight/gitlab-mcp/compare/v1.0.63...1.0.63)

> 12 June 2025

- docs: add CHANGELOG entry for v1.0.63 [`8d70627`](https://github.com/zereight/gitlab-mcp/commit/8d706275e657be0509941b43c47f892643a24a5b)

#### [v1.0.63](https://github.com/zereight/gitlab-mcp/compare/1.0.62...v1.0.63)

> 12 June 2025

- feat: add pagination support for CI job logs to prevent context window flooding [`#97`](https://github.com/zereight/gitlab-mcp/pull/97)
- [version-update] fix: correct Private-Token header authentication for GitLab API 🔐 [`3c23675`](https://github.com/zereight/gitlab-mcp/commit/3c23675eece9b1d8ce90f65cc9692100f5cb2c8a)
- chore: bump version to 1.0.63 [`62f0fff`](https://github.com/zereight/gitlab-mcp/commit/62f0ffff69e8b52acc078410e5578231ef883cc1)

#### [1.0.62](https://github.com/zereight/gitlab-mcp/compare/1.0.60...1.0.62)

> 10 June 2025

- FIX: private token auth [`#91`](https://github.com/zereight/gitlab-mcp/pull/91)
- FEAT: private token auth [`#89`](https://github.com/zereight/gitlab-mcp/pull/89)
- style: format code for consistency and readability ✨ [`1ba5434`](https://github.com/zereight/gitlab-mcp/commit/1ba54342bc4a2769b95cf27fc6cc54c84e55aa94)
- [version-update] feat: bump version to 1.0.60 🎉 [`29659db`](https://github.com/zereight/gitlab-mcp/commit/29659db0b74471b6042106fcae1b2ca273f2ae4c)
- [version-update] feat: bump version to 1.0.62 🎉 [`8df87c6`](https://github.com/zereight/gitlab-mcp/commit/8df87c67d2701f5bd6bdbef4e0880457507b135d)

#### [1.0.60](https://github.com/zereight/gitlab-mcp/compare/v1.0.59...1.0.60)

> 7 June 2025

- FIX: list issues assginee username [`#87`](https://github.com/zereight/gitlab-mcp/pull/87)
- FEAT: add support for `remove_source_branch` and `squash` options for merge requests [`#86`](https://github.com/zereight/gitlab-mcp/pull/86)

#### [v1.0.59](https://github.com/zereight/gitlab-mcp/compare/v1.0.57...v1.0.59)

> 4 June 2025

- Fix for null error [`#85`](https://github.com/zereight/gitlab-mcp/pull/85)
- FIX: bug get issues [`#83`](https://github.com/zereight/gitlab-mcp/pull/83)
- Add support for retrieving wiki page content in list_wiki_pages [`#82`](https://github.com/zereight/gitlab-mcp/pull/82)
- DOC: readme docker image [`#81`](https://github.com/zereight/gitlab-mcp/pull/81)
- [version-update] feat: bump version to 1.0.59 🎉 [`0930ce3`](https://github.com/zereight/gitlab-mcp/commit/0930ce3636e8b155d7ac5892226cc1c780135de3)
- [feat] update: bump version to 1.0.58 [`8cb7703`](https://github.com/zereight/gitlab-mcp/commit/8cb7703aa1a2284143bc4e84f16bf2af59a2792a)

#### [v1.0.57](https://github.com/zereight/gitlab-mcp/compare/v1.0.56...v1.0.57)

> 3 June 2025

- Add pagination to merge request discussions, similar to issue discussions [`#80`](https://github.com/zereight/gitlab-mcp/pull/80)
- fix: merge_requests_template can be null [`#79`](https://github.com/zereight/gitlab-mcp/pull/79)
- [feat] update: bump version to 1.0.57 [`c07356b`](https://github.com/zereight/gitlab-mcp/commit/c07356bd465dc565ce323683a8b96a7e76241c8b)

#### [v1.0.56](https://github.com/zereight/gitlab-mcp/compare/v1.0.54...v1.0.56)

> 2 June 2025

- FIX: issue param [`#78`](https://github.com/zereight/gitlab-mcp/pull/78)
- FIX: get issues labels [`#77`](https://github.com/zereight/gitlab-mcp/pull/77)
- FEAT: MCP SSE [`#76`](https://github.com/zereight/gitlab-mcp/pull/76)
- Feat: Enrich Merge Request Creation [`#68`](https://github.com/zereight/gitlab-mcp/pull/68)
- feat: add branch comparison functionality and update related schemas [`c834ebc`](https://github.com/zereight/gitlab-mcp/commit/c834ebc135bf5896ab4f7982ae417f0c32d8ea42)
- fix: remove duplicate entry for get_branch_diffs in tools list [`6bc1379`](https://github.com/zereight/gitlab-mcp/commit/6bc13794c8cfe09dafa2fddeae2d05589700cac6)
- feat: add user retrieval functions and schemas for GitLab API integration [`005b46a`](https://github.com/zereight/gitlab-mcp/commit/005b46a1a66d2d72bc922f9f98f2df2f58c5f084)

#### [v1.0.54](https://github.com/zereight/gitlab-mcp/compare/v1.0.53...v1.0.54)

> 31 May 2025

- Feat/custom ssl [`#72`](https://github.com/zereight/gitlab-mcp/pull/72)
- FEAT: multi platform [`#71`](https://github.com/zereight/gitlab-mcp/pull/71)
- Release v1.0.54: Add multi-platform support and custom SSL configuration [`459161e`](https://github.com/zereight/gitlab-mcp/commit/459161e23514e9a4d70fd6f902e5f84ba049eec1)
- chore: remove outdated release notes for version 1.0.40 [`e9493b2`](https://github.com/zereight/gitlab-mcp/commit/e9493b2ff90554d21bd8056350a554e8325c22ba)
- [main] chore: bump version to v1.0.54 🚀 [`4a8088c`](https://github.com/zereight/gitlab-mcp/commit/4a8088c25cea0c747c9df71501ff0a6fe46bef40)

#### [v1.0.53](https://github.com/zereight/gitlab-mcp/compare/v1.0.52...v1.0.53)

> 30 May 2025

- FEAT: ci push docker hub [`#65`](https://github.com/zereight/gitlab-mcp/pull/65)
- [main] fix: make old_line and new_line optional for image diff discussions [`cb36c00`](https://github.com/zereight/gitlab-mcp/commit/cb36c007cb215127c16e621ef5a0255c76a6cdbe)
- [main] chore: bump version to v1.0.53 [`fcb71e2`](https://github.com/zereight/gitlab-mcp/commit/fcb71e293e8a0f7f803397582d2e5ff867febd2d)

#### [v1.0.52](https://github.com/zereight/gitlab-mcp/compare/v1.0.50...v1.0.52)

> 30 May 2025

- feat: add pipeline management commands [`#64`](https://github.com/zereight/gitlab-mcp/pull/64)
- [main] docs: update README with comments on GITLAB configuration options [`#63`](https://github.com/zereight/gitlab-mcp/pull/63)
- test [`#61`](https://github.com/zereight/gitlab-mcp/pull/61)
- Fix GitHub Actions workflow syntax errors [`#62`](https://github.com/zereight/gitlab-mcp/pull/62)
- [feat/pipeline-support] feat: add pipeline management commands [`#46`](https://github.com/zereight/gitlab-mcp/issues/46)
- [feat/pipeline-support] feat: add USE_PIPELINE environment variable for conditional pipeline feature activation [`de0b138`](https://github.com/zereight/gitlab-mcp/commit/de0b138d8002daf15d845c6360957c50d95a6288)
- [main] docs: update README to remove automated testing section 📝 [`37203ba`](https://github.com/zereight/gitlab-mcp/commit/37203bae5a87d902380ecb7ead454ec9b19af1ef)
- [main] debug: temporarily disable MCP server startup test [`8e2b6e6`](https://github.com/zereight/gitlab-mcp/commit/8e2b6e67349aa575dd9c3217b58bfe76772932ae)

#### [v1.0.50](https://github.com/zereight/gitlab-mcp/compare/v1.0.48...v1.0.50)

> 29 May 2025

- [main] feat: update milestone management tools and improve code formatting ✨ [`181f1e9`](https://github.com/zereight/gitlab-mcp/commit/181f1e943cbfcee8486717e73a63fd62e3ded280)

#### [v1.0.48](https://github.com/zereight/gitlab-mcp/compare/v1.0.47...v1.0.48)

> 29 May 2025

- feat: add tools for milestones [`#59`](https://github.com/zereight/gitlab-mcp/pull/59)
- FEAT: docker image push script [`#60`](https://github.com/zereight/gitlab-mcp/pull/60)
- [main] chore: v1.0.48 버전 업데이트 [`2a80988`](https://github.com/zereight/gitlab-mcp/commit/2a80988a0231320f80a1d4bd75e51f50e195b29a)
- feat: add milestone management commands to README [`5762b32`](https://github.com/zereight/gitlab-mcp/commit/5762b32a69c3aa13ae819335ba7549be6f36722e)

#### [v1.0.47](https://github.com/zereight/gitlab-mcp/compare/v1.0.46...v1.0.47)

> 29 May 2025

- fix(schemas): make illustration nullable in GitLabPipelineSchema [`#58`](https://github.com/zereight/gitlab-mcp/pull/58)
- feat: implement list_merge_requests functionality  [`#56`](https://github.com/zereight/gitlab-mcp/pull/56)
- fix(schemas): make avatar_url nullable in GitLabUserSchema [`#55`](https://github.com/zereight/gitlab-mcp/pull/55)
- feat: implement list_merge_requests functionality [`cc84777`](https://github.com/zereight/gitlab-mcp/commit/cc847772f1f8560d9ce9cba25acbb232cbbf618d)
- [main] release: v1.0.47 [`a2c2ac1`](https://github.com/zereight/gitlab-mcp/commit/a2c2ac185ad2891e11e27a534ef089701effb526)

#### [v1.0.46](https://github.com/zereight/gitlab-mcp/compare/v1.0.45...v1.0.46)

> 27 May 2025

- FIX: description null error [`#53`](https://github.com/zereight/gitlab-mcp/pull/53)
- [main] fix: description null error handling [`f8b1444`](https://github.com/zereight/gitlab-mcp/commit/f8b1444afd5932307ae743ec11380189e59daafa)

#### [v1.0.45](https://github.com/zereight/gitlab-mcp/compare/v1.0.42...v1.0.45)

> 24 May 2025

- feat(release): 1.0.44  adds pipeline jobs tool [`#52`](https://github.com/zereight/gitlab-mcp/pull/52)
- chore(release): 1.0.43 - get_repository_tree is added read_only_mode [`1406203`](https://github.com/zereight/gitlab-mcp/commit/140620397ba88ee6abbd6da01147a466905e1f22)
- [main] docs: update changelog for v1.0.45 pipeline tools [`8ba3398`](https://github.com/zereight/gitlab-mcp/commit/8ba33986f3da8eae4079b179aa3580a1712586a1)
- docs: translate issue notes changelog from Korean to English [`3d7aa80`](https://github.com/zereight/gitlab-mcp/commit/3d7aa8035d996a312559e15f7dd1457e1f32a826)

#### [v1.0.42](https://github.com/zereight/gitlab-mcp/compare/v1.0.40...v1.0.42)

> 22 May 2025

- feat: add support for creating and updating issue notes [`#47`](https://github.com/zereight/gitlab-mcp/pull/47)
- fix: fix README [`#45`](https://github.com/zereight/gitlab-mcp/pull/45)
- chore(release): 1.0.42 - issue note 기능 추가 (#47) [`25be194`](https://github.com/zereight/gitlab-mcp/commit/25be1947b98ffe1e5cffbfce9e04928f4180d2f8)
- docs: update release notes for v1.0.40 (2025-05-21) [`b326f4c`](https://github.com/zereight/gitlab-mcp/commit/b326f4c3c3c43ec6b669a36bbc016377ebfc1a0c)

#### [v1.0.40](https://github.com/zereight/gitlab-mcp/compare/v1.0.39...v1.0.40)

> 21 May 2025

- feat: add issue discussions support [`#44`](https://github.com/zereight/gitlab-mcp/pull/44)

#### [v1.0.39](https://github.com/zereight/gitlab-mcp/compare/v1.0.38...v1.0.39)

> 20 May 2025

- feat: add docker image and push to dockerhub [`#42`](https://github.com/zereight/gitlab-mcp/pull/42)
- fixed resolve_outdated_diff_discussions nullable [`#41`](https://github.com/zereight/gitlab-mcp/pull/41)
- docs: add release-notes.md [`676bbcd`](https://github.com/zereight/gitlab-mcp/commit/676bbcd4ddb9fa3b566a67fffdd2f25de258b933)
- 버전 1.0.39로 업데이트 [`e4a28a9`](https://github.com/zereight/gitlab-mcp/commit/e4a28a9a47540214587169b7d3f3a98fe057c7d8)

#### [v1.0.38](https://github.com/zereight/gitlab-mcp/compare/v1.0.37...v1.0.38)

> 17 May 2025

- fix: add `expanded` to `start` and `end` for GitLabDiscussionNoteSchema [`#40`](https://github.com/zereight/gitlab-mcp/pull/40)
- Bump version [`0bb59a3`](https://github.com/zereight/gitlab-mcp/commit/0bb59a3217f4c3dd98b51503bf2de51d8578bb0d)

#### [v1.0.37](https://github.com/zereight/gitlab-mcp/compare/v1.0.36...v1.0.37)

> 15 May 2025

- Adds threaded comment support for merge requests [`#38`](https://github.com/zereight/gitlab-mcp/pull/38)
- Support resolving merge request discussion notes [`#37`](https://github.com/zereight/gitlab-mcp/pull/37)
- feat: Add create_merge_request_thread tool for diff notes [`026dd58`](https://github.com/zereight/gitlab-mcp/commit/026dd58887079bb60187d6acacaafc6fa28d0c3d)
- feat: Implement add_merge_request_thread_note function for adding notes to existing MR threads [`3f2b355`](https://github.com/zereight/gitlab-mcp/commit/3f2b35535ee93b14a6649074608842d1ff8de208)
- feat: support resolving merge request notes [`bde83c0`](https://github.com/zereight/gitlab-mcp/commit/bde83c0a912ba60026abd1954e764bb09d5a013d)

#### [v1.0.36](https://github.com/zereight/gitlab-mcp/compare/v1.0.34...v1.0.36)

> 13 May 2025

- feat: Decode project_id for GitLab API calls [`08ab135`](https://github.com/zereight/gitlab-mcp/commit/08ab1357a0bfdef0bf6360f0c61759f25405652b)
- [main] refactor: update label_id schema to use string type [`bf250b0`](https://github.com/zereight/gitlab-mcp/commit/bf250b0d88fad864a93ae2d95c0f99b7eb827498)
- [main] chore: update version to 1.0.35 🚀 [`651072d`](https://github.com/zereight/gitlab-mcp/commit/651072dfd7926101b77f095d5ce2ab9d0fe6af58)

#### [v1.0.34](https://github.com/zereight/gitlab-mcp/compare/1.0.32...v1.0.34)

> 7 May 2025

- feat: Gitlab list repository tree tool [`#35`](https://github.com/zereight/gitlab-mcp/pull/35)
- feat: support search by branch for get_merge_request [`#34`](https://github.com/zereight/gitlab-mcp/pull/34)
- fix: rename to source branch [`7b8cbc0`](https://github.com/zereight/gitlab-mcp/commit/7b8cbc0806ed9123e033d98f4965fd6fbc532c07)
- [main] docs: update README with detailed descriptions for merge request functions [`3a25e7c`](https://github.com/zereight/gitlab-mcp/commit/3a25e7c5e8b9e21585068db15e61818ca542f0f9)
- [main] chore: update version to 1.0.34 [`23a9bbc`](https://github.com/zereight/gitlab-mcp/commit/23a9bbc728a4171eb362d6458ef165d3f9246564)

#### 1.0.32

> 25 April 2025

- feat: Implement proxy configuration for HTTP/HTTPS/SOCKS [`#33`](https://github.com/zereight/gitlab-mcp/pull/33)
- feat: Add read-only mode support [`#29`](https://github.com/zereight/gitlab-mcp/pull/29)
- Add schemas for GitLab discussion notes and merge request discussions [`#26`](https://github.com/zereight/gitlab-mcp/pull/26)
- :sparkles: Add `list_group_projects tool` [`#25`](https://github.com/zereight/gitlab-mcp/pull/25)
- Update README.md [`#24`](https://github.com/zereight/gitlab-mcp/pull/24)
- Fixed types for create_merge_request and get_merge_request tools. [`#23`](https://github.com/zereight/gitlab-mcp/pull/23)
- Authentication Header Consistency Fix [`#22`](https://github.com/zereight/gitlab-mcp/pull/22)
- Labels API Support [`#21`](https://github.com/zereight/gitlab-mcp/pull/21)
- Improve README documentation with detailed tool descriptions [`#18`](https://github.com/zereight/gitlab-mcp/pull/18)
- Implement GitLab Issues and Issue Links API [`#17`](https://github.com/zereight/gitlab-mcp/pull/17)
- Add GitLab Projects API support [`#16`](https://github.com/zereight/gitlab-mcp/pull/16)
- Add GitLab Namespaces API support [`#15`](https://github.com/zereight/gitlab-mcp/pull/15)
- Fix GitLab API fork repository parameter handling [`#14`](https://github.com/zereight/gitlab-mcp/pull/14)
- Fix GitLab API parameter handling in create_or_update_file [`#13`](https://github.com/zereight/gitlab-mcp/pull/13)
- Improve code documentation with bilingual JSDoc comments [`#11`](https://github.com/zereight/gitlab-mcp/pull/11)
- Fix URL construction with smart API URL normalization [`#10`](https://github.com/zereight/gitlab-mcp/pull/10)
- Fix createNote function URL construction: use plural resource names and avoid duplicate /api/v4 [`#7`](https://github.com/zereight/gitlab-mcp/pull/7)
- Added missing api url part to create_note [`#3`](https://github.com/zereight/gitlab-mcp/pull/3)
- Deployment: Dockerfile and Smithery config [`#2`](https://github.com/zereight/gitlab-mcp/pull/2)
- add MCP server badge [`#1`](https://github.com/zereight/gitlab-mcp/pull/1)
- build: test-note.js 파일 삭제 [`61ee124`](https://github.com/zereight/gitlab-mcp/commit/61ee1244f431c591f199d93d683f2f9b573e48b6)
- Add compiled JavaScript files for Issue Links API schema fix [`a4d7795`](https://github.com/zereight/gitlab-mcp/commit/a4d7795a7ab28a28a3863e8cc77322d6829ec713)
- Build upd. [`5d10401`](https://github.com/zereight/gitlab-mcp/commit/5d1040141d20169420e63e67c438a9a942d157d6)
