Compare commits
52 Commits
1.0.32
...
feat/docke
Author | SHA1 | Date | |
---|---|---|---|
0b876ebff6 | |||
a2c2ac185a | |||
2462168697 | |||
88af65fcd0 | |||
0b55cc3cee | |||
40e39d7b36 | |||
cc847772f1 | |||
ab571d211d | |||
f8b1444afd | |||
06f9437329 | |||
dc99f864ca | |||
8ba33986f3 | |||
64a936446e | |||
8ab0ac7145 | |||
ea06c21f29 | |||
140620397b | |||
3d7aa8035d | |||
25be1947b9 | |||
864ee77ae6 | |||
dc6cc59434 | |||
5924fd3ed4 | |||
f4b265bf2e | |||
b326f4c3c3 | |||
1350a024b5 | |||
4c57c37888 | |||
e4a28a9a47 | |||
9f1e7b5bca | |||
f37e210ee8 | |||
6f789692be | |||
1bb70dccb9 | |||
676bbcd4dd | |||
0bb59a3217 | |||
b908f03801 | |||
5024a2a5af | |||
d2cced1b38 | |||
2fec95d469 | |||
3565d1b397 | |||
353e62a401 | |||
3f2b35535e | |||
026dd58887 | |||
bde83c0a91 | |||
08ab1357a0 | |||
651072dfd7 | |||
bf250b0d88 | |||
3a25e7c5e8 | |||
23a9bbc728 | |||
5398526f94 | |||
bccd5f29c3 | |||
8071fef6c4 | |||
f0eac83788 | |||
7b8cbc0806 | |||
20f62756c1 |
70
CHANGELOG.md
Normal file
70
CHANGELOG.md
Normal file
@ -0,0 +1,70 @@
|
||||
## [1.0.47] - 2025-05-29
|
||||
|
||||
### Added
|
||||
|
||||
- 🔄 **List Merge Requests Tool**: Added functionality to list and filter merge requests in GitLab projects
|
||||
- `list_merge_requests`: List merge requests with comprehensive filtering options
|
||||
- Supports filtering by state, scope, author, assignee, reviewer, labels, and more
|
||||
- Includes pagination support for large result sets
|
||||
- See: [PR #56](https://github.com/zereight/gitlab-mcp/pull/56)
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed issue where GitLab users without profile pictures would cause JSON-RPC errors
|
||||
- Changed `avatar_url` field to be nullable in GitLabUserSchema
|
||||
- This allows proper handling of users without avatars in GitLab API responses
|
||||
- See: [PR #55](https://github.com/zereight/gitlab-mcp/pull/55)
|
||||
|
||||
- Fixed issue where GitLab pipelines without illustrations would cause JSON-RPC errors
|
||||
- Changed `illustration` field to be nullable in GitLabPipelineSchema
|
||||
- This allows proper handling of pipelines without illustrations
|
||||
- See: [PR #58](https://github.com/zereight/gitlab-mcp/pull/58), [Issue #57](https://github.com/zereight/gitlab-mcp/issues/57)
|
||||
|
||||
---
|
||||
|
||||
## [1.0.46] - 2025-05-27
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed issue where GitLab issues and milestones with null descriptions would cause JSON-RPC errors
|
||||
- Changed `description` field to be nullable with default empty string in schemas
|
||||
- This allows proper handling of GitLab issues/milestones without descriptions
|
||||
- See: [PR #53](https://github.com/zereight/gitlab-mcp/pull/53), [Issue #51](https://github.com/zereight/gitlab-mcp/issues/51)
|
||||
|
||||
---
|
||||
|
||||
## [1.0.45] - 2025-05-24
|
||||
|
||||
### Added
|
||||
|
||||
- 🔄 **Pipeline Management Tools**: Added GitLab pipeline status monitoring and management functionality
|
||||
- `list_pipelines`: List project pipelines with various filtering options
|
||||
- `get_pipeline`: Get detailed information about a specific pipeline
|
||||
- `list_pipeline_jobs`: List all jobs in a specific pipeline
|
||||
- `get_pipeline_job`: Get detailed information about a specific pipeline job
|
||||
- `get_pipeline_job_output`: Get execution logs/output from pipeline jobs
|
||||
- 📊 Pipeline status summary and analysis support
|
||||
- Example: "How many of the last N pipelines are successful?"
|
||||
- Example: "Can you make a summary of the output in the last pipeline?"
|
||||
- See: [PR #52](https://github.com/zereight/gitlab-mcp/pull/52)
|
||||
|
||||
---
|
||||
|
||||
## [1.0.42] - 2025-05-22
|
||||
|
||||
### Added
|
||||
|
||||
- Added support for creating and updating issue notes (comments) in GitLab.
|
||||
- You can now add or edit comments on issues.
|
||||
- See: [PR #47](https://github.com/zereight/gitlab-mcp/pull/47)
|
||||
|
||||
---
|
||||
|
||||
## [1.0.38] - 2025-05-17
|
||||
|
||||
### Fixed
|
||||
|
||||
- Added `expanded` property to `start` and `end` in `GitLabDiscussionNoteSchema`
|
||||
Now you can expand or collapse more information at the start and end of discussion notes.
|
||||
Example: In code review, you can choose to show or hide specific parts of the discussion.
|
||||
(See: [PR #40](https://github.com/zereight/gitlab-mcp/pull/40))
|
24
Dockerfile
Normal file
24
Dockerfile
Normal file
@ -0,0 +1,24 @@
|
||||
FROM node:22.15-alpine AS builder
|
||||
|
||||
COPY . /app
|
||||
COPY tsconfig.json /tsconfig.json
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
RUN --mount=type=cache,target=/root/.npm npm install
|
||||
|
||||
RUN --mount=type=cache,target=/root/.npm-production npm ci --ignore-scripts --omit-dev
|
||||
|
||||
FROM node:22.12-alpine AS release
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
COPY --from=builder /app/build /app/build
|
||||
COPY --from=builder /app/package.json /app/package.json
|
||||
COPY --from=builder /app/package-lock.json /app/package-lock.json
|
||||
|
||||
ENV NODE_ENV=production
|
||||
|
||||
RUN npm ci --ignore-scripts --omit-dev
|
||||
|
||||
ENTRYPOINT ["node", "build/index.js"]
|
113
README.md
113
README.md
@ -14,6 +14,8 @@ GitLab MCP(Model Context Protocol) Server. **Includes bug fixes and improvements
|
||||
|
||||
When using with the Claude App, you need to set up your API key and URLs directly.
|
||||
|
||||
#### npx
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
@ -24,15 +26,52 @@ When using with the Claude App, you need to set up your API key and URLs directl
|
||||
"GITLAB_PERSONAL_ACCESS_TOKEN": "your_gitlab_token",
|
||||
"GITLAB_API_URL": "your_gitlab_api_url",
|
||||
"GITLAB_READ_ONLY_MODE": "false",
|
||||
"USE_GITLAB_WIKI":"true"
|
||||
"USE_GITLAB_WIKI": "true"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
#### Docker
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"GitLab communication server": {
|
||||
"command": "docker",
|
||||
"args": [
|
||||
"run",
|
||||
"-i",
|
||||
"--rm",
|
||||
"-e",
|
||||
"GITLAB_PERSONAL_ACCESS_TOKEN",
|
||||
"-e",
|
||||
"GITLAB_API_URL",
|
||||
"-e",
|
||||
"GITLAB_READ_ONLY_MODE",
|
||||
"-e",
|
||||
"USE_GITLAB_WIKI",
|
||||
"iwakitakuma/gitlab-mcp"
|
||||
],
|
||||
"env": {
|
||||
"GITLAB_PERSONAL_ACCESS_TOKEN": "your_gitlab_token",
|
||||
"GITLAB_API_URL": "https://gitlab.com/api/v4", // Optional, for self-hosted GitLab
|
||||
"GITLAB_READ_ONLY_MODE": "false",
|
||||
"USE_GITLAB_WIKI": "true"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### Docker Image Push
|
||||
|
||||
```shell
|
||||
$ sh scripts/image_push.sh docker_user_name
|
||||
```
|
||||
|
||||
### Environment Variables
|
||||
|
||||
- `GITLAB_PERSONAL_ACCESS_TOKEN`: Your GitLab personal access token.
|
||||
- `GITLAB_API_URL`: Your GitLab API URL. (Default: `https://gitlab.com/api/v4`)
|
||||
@ -51,34 +90,46 @@ When using with the Claude App, you need to set up your API key and URLs directl
|
||||
7. `create_merge_request` - Create a new merge request in a GitLab project
|
||||
8. `fork_repository` - Fork a GitLab project to your account or specified namespace
|
||||
9. `create_branch` - Create a new branch in a GitLab project
|
||||
10. `get_merge_request` - Get details of a merge request
|
||||
11. `get_merge_request_diffs` - Get the changes/diffs of a merge request
|
||||
12. `update_merge_request` - Update a merge request
|
||||
10. `get_merge_request` - Get details of a merge request (Either mergeRequestIid or branchName must be provided)
|
||||
11. `get_merge_request_diffs` - Get the changes/diffs of a merge request (Either mergeRequestIid or branchName must be provided)
|
||||
12. `update_merge_request` - Update a merge request (Either mergeRequestIid or branchName must be provided)
|
||||
13. `create_note` - Create a new note (comment) to an issue or merge request
|
||||
14. `mr_discussions` - List discussion items for a merge request
|
||||
15. `update_merge_request_note` - Modify an existing merge request thread note
|
||||
16. `list_issues` - List issues in a GitLab project with filtering options
|
||||
17. `get_issue` - Get details of a specific issue in a GitLab project
|
||||
18. `update_issue` - Update an issue in a GitLab project
|
||||
19. `delete_issue` - Delete an issue from a GitLab project
|
||||
20. `list_issue_links` - List all issue links for a specific issue
|
||||
21. `get_issue_link` - Get a specific issue link
|
||||
22. `create_issue_link` - Create an issue link between two issues
|
||||
23. `delete_issue_link` - Delete an issue link
|
||||
24. `list_namespaces` - List all namespaces available to the current user
|
||||
25. `get_namespace` - Get details of a namespace by ID or path
|
||||
26. `verify_namespace` - Verify if a namespace path exists
|
||||
27. `get_project` - Get details of a specific project
|
||||
28. `list_projects` - List projects accessible by the current user
|
||||
29. `list_labels` - List labels for a project
|
||||
30. `get_label` - Get a single label from a project
|
||||
31. `create_label` - Create a new label in a project
|
||||
32. `update_label` - Update an existing label in a project
|
||||
33. `delete_label` - Delete a label from a project
|
||||
34. `list_group_projects` - List projects in a GitLab group with filtering options
|
||||
35. `list_wiki_pages` - List wiki pages in a GitLab project
|
||||
36. `get_wiki_page` - Get details of a specific wiki page
|
||||
37. `create_wiki_page` - Create a new wiki page in a GitLab project
|
||||
38. `update_wiki_page` - Update an existing wiki page in a GitLab project
|
||||
39. `delete_wiki_page` - Delete a wiki page from a GitLab project
|
||||
14. `create_merge_request_thread` - Create a new thread on a merge request
|
||||
15. `mr_discussions` - List discussion items for a merge request
|
||||
16. `update_merge_request_note` - Modify an existing merge request thread note
|
||||
17. `create_merge_request_note` - Add a new note to an existing merge request thread
|
||||
18. `update_issue_note` - Modify an existing issue thread note
|
||||
19. `create_issue_note` - Add a new note to an existing issue thread
|
||||
20. `list_issues` - List issues in a GitLab project with filtering options
|
||||
21. `get_issue` - Get details of a specific issue in a GitLab project
|
||||
22. `update_issue` - Update an issue in a GitLab project
|
||||
23. `delete_issue` - Delete an issue from a GitLab project
|
||||
24. `list_issue_links` - List all issue links for a specific issue
|
||||
25. `list_issue_discussions` - List discussions for an issue in a GitLab project
|
||||
26. `get_issue_link` - Get a specific issue link
|
||||
27. `create_issue_link` - Create an issue link between two issues
|
||||
28. `delete_issue_link` - Delete an issue link
|
||||
29. `list_namespaces` - List all namespaces available to the current user
|
||||
30. `get_namespace` - Get details of a namespace by ID or path
|
||||
31. `verify_namespace` - Verify if a namespace path exists
|
||||
32. `get_project` - Get details of a specific project
|
||||
33. `list_projects` - List projects accessible by the current user
|
||||
34. `list_labels` - List labels for a project
|
||||
35. `get_label` - Get a single label from a project
|
||||
36. `create_label` - Create a new label in a project
|
||||
37. `update_label` - Update an existing label in a project
|
||||
38. `delete_label` - Delete a label from a project
|
||||
39. `list_group_projects` - List projects in a GitLab group with filtering options
|
||||
40. `list_wiki_pages` - List wiki pages in a GitLab project
|
||||
41. `get_wiki_page` - Get details of a specific wiki page
|
||||
42. `create_wiki_page` - Create a new wiki page in a GitLab project
|
||||
43. `update_wiki_page` - Update an existing wiki page in a GitLab project
|
||||
44. `delete_wiki_page` - Delete a wiki page from a GitLab project
|
||||
45. `get_repository_tree` - Get the repository tree for a GitLab project (list files and directories)
|
||||
46. `list_pipelines` - List pipelines in a GitLab project with filtering options
|
||||
47. `get_pipeline` - Get details of a specific pipeline in a GitLab project
|
||||
48. `list_pipeline_jobs` - List all jobs in a specific pipeline
|
||||
49. `get_pipeline_job` - Get details of a GitLab pipeline job number
|
||||
50. `get_pipeline_job_output` - Get the output/trace of a GitLab pipeline job number
|
||||
51. `list_merge_requests` - List merge requests in a GitLab project with filtering options
|
||||
<!-- TOOLS-END -->
|
||||
|
5
package-lock.json
generated
5
package-lock.json
generated
@ -1,16 +1,17 @@
|
||||
{
|
||||
"name": "@zereight/mcp-gitlab",
|
||||
"version": "1.0.30",
|
||||
"version": "1.0.46",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@zereight/mcp-gitlab",
|
||||
"version": "1.0.30",
|
||||
"version": "1.0.46",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@modelcontextprotocol/sdk": "1.8.0",
|
||||
"@types/node-fetch": "^2.6.12",
|
||||
"form-data": "^4.0.0",
|
||||
"http-proxy-agent": "^7.0.2",
|
||||
"https-proxy-agent": "^7.0.6",
|
||||
"node-fetch": "^3.3.2",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@zereight/mcp-gitlab",
|
||||
"version": "1.0.32",
|
||||
"version": "1.0.47",
|
||||
"description": "MCP server for using the GitLab API",
|
||||
"license": "MIT",
|
||||
"author": "zereight",
|
||||
|
5
release-notes.md
Normal file
5
release-notes.md
Normal file
@ -0,0 +1,5 @@
|
||||
### 1.0.40 (2025-05-21)
|
||||
|
||||
- Added support for listing discussions (comments/notes) on GitLab issues.
|
||||
- Example: You can now easily fetch all conversations (comments) attached to an issue via the API.
|
||||
- Related PR: [#44](https://github.com/zereight/gitlab-mcp/pull/44)
|
783
schemas.ts
783
schemas.ts
File diff suppressed because it is too large
Load Diff
18
scripts/image_push.sh
Normal file
18
scripts/image_push.sh
Normal file
@ -0,0 +1,18 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ -z "$1" ]; then
|
||||
echo "Error: docker user name required."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
DOCKER_USER=$1
|
||||
IMAGE_NAME=gitlab-mcp
|
||||
IMAGE_VERSION=$(jq -r '.version' package.json)
|
||||
|
||||
echo "${DOCKER_USER}/${IMAGE_NAME}:${IMAGE_VERSION}"
|
||||
docker build --platform=linux/arm64 -t "${DOCKER_USER}/${IMAGE_NAME}:latest" .
|
||||
|
||||
docker tag "${DOCKER_USER}/${IMAGE_NAME}:latest" "${DOCKER_USER}/${IMAGE_NAME}:${IMAGE_VERSION}"
|
||||
|
||||
docker push "${DOCKER_USER}/${IMAGE_NAME}:latest"
|
||||
docker push "${DOCKER_USER}/${IMAGE_NAME}:${IMAGE_VERSION}"
|
Reference in New Issue
Block a user