@zereight/mcp-gitlab 2.1.6 → 2.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ko.md +25 -0
- package/README.md +143 -93
- package/README.zh-CN.md +25 -0
- package/build/index.js +239 -6
- package/build/schemas.js +160 -0
- package/build/test/test-ci-lint.js +191 -0
- package/build/test/test-tags.js +206 -0
- package/build/test/test-todos.js +195 -0
- package/build/test/test-toolset-filtering.js +23 -5
- package/build/tools/registry.js +79 -1
- package/package.json +2 -2
package/build/tools/registry.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { zodToJsonSchema } from "zod-to-json-schema";
|
|
2
2
|
import { toJSONSchema } from "../utils/schema.js";
|
|
3
3
|
import { USE_GITLAB_WIKI, USE_MILESTONE, USE_PIPELINE, } from "../config.js";
|
|
4
|
-
import { ApproveMergeRequestSchema, BulkPublishDraftNotesSchema, CancelPipelineJobSchema, CancelPipelineSchema, ConvertWorkItemTypeSchema, CreateBranchSchema, CreateDraftNoteSchema, CreateGroupWikiPageSchema, CreateIssueLinkSchema, CreateIssueNoteSchema, CreateIssueSchema, CreateIssueEmojiReactionSchema, CreateIssueNoteEmojiReactionSchema, ListIssueEmojiReactionsSchema, ListIssueNoteEmojiReactionsSchema, CreateLabelSchema, CreateMergeRequestDiscussionNoteSchema, CreateMergeRequestEmojiReactionSchema, ListMergeRequestEmojiReactionsSchema, ListMergeRequestNoteEmojiReactionsSchema, CreateMergeRequestNoteSchema, CreateMergeRequestNoteEmojiReactionSchema, CreateMergeRequestSchema, CreateMergeRequestThreadSchema, CreateNoteSchema, CreateOrUpdateFileSchema, CreatePipelineSchema, CreateProjectMilestoneSchema, CreateReleaseEvidenceSchema, CreateReleaseSchema, CreateRepositorySchema, CreateTimelineEventSchema, CreateWikiPageSchema, CreateWorkItemNoteSchema, CreateWorkItemEmojiReactionSchema, CreateWorkItemNoteEmojiReactionSchema, ListWorkItemEmojiReactionsSchema, ListWorkItemNoteEmojiReactionsSchema, CreateWorkItemSchema, DeleteDraftNoteSchema, DeleteGroupWikiPageSchema, DeleteIssueLinkSchema, DeleteIssueSchema, DeleteIssueEmojiReactionSchema, DeleteIssueNoteEmojiReactionSchema, DeleteLabelSchema, DeleteMergeRequestDiscussionNoteSchema, DeleteMergeRequestNoteSchema, DeleteMergeRequestEmojiReactionSchema, DeleteMergeRequestNoteEmojiReactionSchema, DeleteProjectMilestoneSchema, DeleteReleaseSchema, DeleteWikiPageSchema, DeleteWorkItemEmojiReactionSchema, DeleteWorkItemNoteEmojiReactionSchema, DownloadAttachmentSchema, DownloadJobArtifactsSchema, DownloadReleaseAssetSchema, EditProjectMilestoneSchema, ExecuteGraphQLSchema, ForkRepositorySchema, GetBranchDiffsSchema, GetCommitDiffSchema, GetCommitSchema, GetDeploymentSchema, GetDraftNoteSchema, GetEnvironmentSchema, GetFileContentsSchema, GetGroupWikiPageSchema, GetIssueLinkSchema, GetIssueSchema, GetJobArtifactFileSchema, GetLabelSchema, GetMergeRequestApprovalStateSchema, GetMergeRequestConflictsSchema, GetMergeRequestDiffsSchema, GetMergeRequestFileDiffSchema, GetMergeRequestNoteSchema, GetMergeRequestNotesSchema, GetMergeRequestSchema, GetMergeRequestVersionSchema, GetMilestoneBurndownEventsSchema, GetMilestoneIssuesSchema, GetMilestoneMergeRequestsSchema, GetNamespaceSchema, GetPipelineJobOutputSchema, GetPipelineSchema, GetProjectEventsSchema, GetProjectMilestoneSchema, GetProjectSchema, GetReleaseSchema, GetRepositoryTreeSchema, GetTimelineEventsSchema, GetUsersSchema, GetWebhookEventSchema, GetWikiPageSchema, GetWorkItemSchema, ListCommitsSchema, ListCustomFieldDefinitionsSchema, ListDeploymentsSchema, ListDraftNotesSchema, ListEnvironmentsSchema, ListEventsSchema, ListGroupIterationsSchema, ListGroupProjectsSchema, ListGroupWikiPagesSchema, ListIssueDiscussionsSchema, ListIssueLinksSchema, ListIssuesSchema, ListJobArtifactsSchema, ListLabelsSchema, ListMergeRequestChangedFilesSchema, ListMergeRequestDiffsSchema, ListMergeRequestDiscussionsSchema, ListMergeRequestVersionsSchema, ListMergeRequestsSchema, ListNamespacesSchema, ListPipelineJobsSchema, ListPipelineTriggerJobsSchema, ListPipelinesSchema, ListProjectMembersSchema, ListProjectMilestonesSchema, ListProjectsSchema, ListReleasesSchema, ListWebhookEventsSchema, ListWebhooksSchema, ListWikiPagesSchema, ListWorkItemNotesSchema, ListWorkItemStatusesSchema, ListWorkItemsSchema, MarkdownUploadSchema, MergeMergeRequestSchema, MoveWorkItemSchema, MyIssuesSchema, PlayPipelineJobSchema, PromoteProjectMilestoneSchema, PublishDraftNoteSchema, PushFilesSchema, ResolveMergeRequestThreadSchema, RetryPipelineJobSchema, RetryPipelineSchema, SearchCodeSchema, SearchGroupCodeSchema, SearchProjectCodeSchema, SearchRepositoriesSchema, UnapproveMergeRequestSchema, UpdateDraftNoteSchema, UpdateGroupWikiPageSchema, UpdateIssueNoteSchema, UpdateIssueSchema, UpdateLabelSchema, UpdateMergeRequestDiscussionNoteSchema, UpdateMergeRequestNoteSchema, UpdateMergeRequestSchema, UpdateReleaseSchema, UpdateWikiPageSchema, UpdateWorkItemSchema, VerifyNamespaceSchema, } from "../schemas.js";
|
|
4
|
+
import { ApproveMergeRequestSchema, BulkPublishDraftNotesSchema, CancelPipelineJobSchema, CancelPipelineSchema, ConvertWorkItemTypeSchema, CreateBranchSchema, CreateDraftNoteSchema, CreateGroupWikiPageSchema, CreateIssueLinkSchema, CreateIssueNoteSchema, CreateIssueSchema, CreateIssueEmojiReactionSchema, CreateIssueNoteEmojiReactionSchema, ListIssueEmojiReactionsSchema, ListIssueNoteEmojiReactionsSchema, CreateLabelSchema, MarkAllTodosDoneSchema, ListTodosSchema, MarkTodoDoneSchema, CreateMergeRequestDiscussionNoteSchema, CreateMergeRequestEmojiReactionSchema, ListMergeRequestEmojiReactionsSchema, ListMergeRequestNoteEmojiReactionsSchema, CreateMergeRequestNoteSchema, CreateMergeRequestNoteEmojiReactionSchema, CreateMergeRequestSchema, CreateMergeRequestThreadSchema, CreateNoteSchema, CreateOrUpdateFileSchema, CreatePipelineSchema, CreateProjectMilestoneSchema, CreateReleaseEvidenceSchema, CreateReleaseSchema, CreateRepositorySchema, CreateTagSchema, CreateTimelineEventSchema, CreateWikiPageSchema, CreateWorkItemNoteSchema, CreateWorkItemEmojiReactionSchema, CreateWorkItemNoteEmojiReactionSchema, ListWorkItemEmojiReactionsSchema, ListWorkItemNoteEmojiReactionsSchema, CreateWorkItemSchema, DeleteDraftNoteSchema, DeleteGroupWikiPageSchema, DeleteIssueLinkSchema, DeleteIssueSchema, DeleteIssueEmojiReactionSchema, DeleteIssueNoteEmojiReactionSchema, DeleteLabelSchema, DeleteMergeRequestDiscussionNoteSchema, DeleteMergeRequestNoteSchema, DeleteMergeRequestEmojiReactionSchema, DeleteMergeRequestNoteEmojiReactionSchema, DeleteProjectMilestoneSchema, DeleteReleaseSchema, DeleteTagSchema, DeleteWikiPageSchema, DeleteWorkItemEmojiReactionSchema, DeleteWorkItemNoteEmojiReactionSchema, DownloadAttachmentSchema, DownloadJobArtifactsSchema, DownloadReleaseAssetSchema, EditProjectMilestoneSchema, ExecuteGraphQLSchema, ForkRepositorySchema, GetBranchDiffsSchema, GetCommitDiffSchema, GetCommitSchema, GetDeploymentSchema, GetDraftNoteSchema, GetEnvironmentSchema, GetFileContentsSchema, GetGroupWikiPageSchema, GetIssueLinkSchema, GetIssueSchema, GetJobArtifactFileSchema, GetLabelSchema, GetMergeRequestApprovalStateSchema, GetMergeRequestConflictsSchema, GetMergeRequestDiffsSchema, GetMergeRequestFileDiffSchema, GetMergeRequestNoteSchema, GetMergeRequestNotesSchema, GetMergeRequestSchema, GetMergeRequestVersionSchema, GetMilestoneBurndownEventsSchema, GetMilestoneIssuesSchema, GetMilestoneMergeRequestsSchema, GetNamespaceSchema, GetPipelineJobOutputSchema, GetPipelineSchema, GetProjectEventsSchema, GetProjectMilestoneSchema, GetProjectSchema, GetReleaseSchema, GetRepositoryTreeSchema, GetTagSchema, GetTagSignatureSchema, GetTimelineEventsSchema, GetUsersSchema, GetWebhookEventSchema, GetWikiPageSchema, GetWorkItemSchema, ListCommitsSchema, ListCustomFieldDefinitionsSchema, ListDeploymentsSchema, ListDraftNotesSchema, ListEnvironmentsSchema, ListEventsSchema, ListGroupIterationsSchema, ListGroupProjectsSchema, ListGroupWikiPagesSchema, ListIssueDiscussionsSchema, ListIssueLinksSchema, ListIssuesSchema, ListJobArtifactsSchema, ListLabelsSchema, ListMergeRequestChangedFilesSchema, ListMergeRequestDiffsSchema, ListMergeRequestDiscussionsSchema, ListMergeRequestVersionsSchema, ListMergeRequestsSchema, ListNamespacesSchema, ListPipelineJobsSchema, ListPipelineTriggerJobsSchema, ValidateCiLintSchema, ValidateProjectCiLintSchema, ListPipelinesSchema, ListProjectMembersSchema, ListProjectMilestonesSchema, ListProjectsSchema, ListReleasesSchema, ListTagsSchema, ListWebhookEventsSchema, ListWebhooksSchema, ListWikiPagesSchema, ListWorkItemNotesSchema, ListWorkItemStatusesSchema, ListWorkItemsSchema, MarkdownUploadSchema, MergeMergeRequestSchema, MoveWorkItemSchema, MyIssuesSchema, PlayPipelineJobSchema, PromoteProjectMilestoneSchema, PublishDraftNoteSchema, PushFilesSchema, ResolveMergeRequestThreadSchema, RetryPipelineJobSchema, RetryPipelineSchema, SearchCodeSchema, SearchGroupCodeSchema, SearchProjectCodeSchema, SearchRepositoriesSchema, UnapproveMergeRequestSchema, UpdateDraftNoteSchema, UpdateGroupWikiPageSchema, UpdateIssueNoteSchema, UpdateIssueSchema, UpdateLabelSchema, UpdateMergeRequestDiscussionNoteSchema, UpdateMergeRequestNoteSchema, UpdateMergeRequestSchema, UpdateReleaseSchema, UpdateWikiPageSchema, UpdateWorkItemSchema, VerifyNamespaceSchema, } from "../schemas.js";
|
|
5
5
|
// Define all available tools
|
|
6
6
|
export const allTools = [
|
|
7
7
|
{
|
|
@@ -316,6 +316,21 @@ export const allTools = [
|
|
|
316
316
|
description: "Delete an issue",
|
|
317
317
|
inputSchema: toJSONSchema(DeleteIssueSchema),
|
|
318
318
|
},
|
|
319
|
+
{
|
|
320
|
+
name: "list_todos",
|
|
321
|
+
description: "List GitLab to-do items for the current user",
|
|
322
|
+
inputSchema: toJSONSchema(ListTodosSchema),
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
name: "mark_todo_done",
|
|
326
|
+
description: "Mark a GitLab to-do item as done",
|
|
327
|
+
inputSchema: toJSONSchema(MarkTodoDoneSchema),
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
name: "mark_all_todos_done",
|
|
331
|
+
description: "Mark all pending GitLab to-do items as done for the current user",
|
|
332
|
+
inputSchema: toJSONSchema(MarkAllTodosDoneSchema),
|
|
333
|
+
},
|
|
319
334
|
{
|
|
320
335
|
name: "list_issue_links",
|
|
321
336
|
description: "List all issue links for a specific issue",
|
|
@@ -506,6 +521,16 @@ export const allTools = [
|
|
|
506
521
|
description: "Get the output/trace of a pipeline job with optional pagination",
|
|
507
522
|
inputSchema: toJSONSchema(GetPipelineJobOutputSchema),
|
|
508
523
|
},
|
|
524
|
+
{
|
|
525
|
+
name: "validate_ci_lint",
|
|
526
|
+
description: "Validate provided GitLab CI/CD YAML content for a project",
|
|
527
|
+
inputSchema: toJSONSchema(ValidateCiLintSchema),
|
|
528
|
+
},
|
|
529
|
+
{
|
|
530
|
+
name: "validate_project_ci_lint",
|
|
531
|
+
description: "Validate an existing .gitlab-ci.yml configuration for a project",
|
|
532
|
+
inputSchema: toJSONSchema(ValidateProjectCiLintSchema),
|
|
533
|
+
},
|
|
509
534
|
{
|
|
510
535
|
name: "create_pipeline",
|
|
511
536
|
description: "Create a new pipeline for a branch or tag",
|
|
@@ -681,6 +706,31 @@ export const allTools = [
|
|
|
681
706
|
description: "Download a release asset file by direct asset path",
|
|
682
707
|
inputSchema: toJSONSchema(DownloadReleaseAssetSchema),
|
|
683
708
|
},
|
|
709
|
+
{
|
|
710
|
+
name: "list_tags",
|
|
711
|
+
description: "List repository tags for a project",
|
|
712
|
+
inputSchema: toJSONSchema(ListTagsSchema),
|
|
713
|
+
},
|
|
714
|
+
{
|
|
715
|
+
name: "get_tag",
|
|
716
|
+
description: "Get a repository tag by name",
|
|
717
|
+
inputSchema: toJSONSchema(GetTagSchema),
|
|
718
|
+
},
|
|
719
|
+
{
|
|
720
|
+
name: "create_tag",
|
|
721
|
+
description: "Create a new repository tag",
|
|
722
|
+
inputSchema: toJSONSchema(CreateTagSchema),
|
|
723
|
+
},
|
|
724
|
+
{
|
|
725
|
+
name: "delete_tag",
|
|
726
|
+
description: "Delete a repository tag",
|
|
727
|
+
inputSchema: toJSONSchema(DeleteTagSchema),
|
|
728
|
+
},
|
|
729
|
+
{
|
|
730
|
+
name: "get_tag_signature",
|
|
731
|
+
description: "Get the X.509 signature of a signed tag (404 if unsigned)",
|
|
732
|
+
inputSchema: toJSONSchema(GetTagSignatureSchema),
|
|
733
|
+
},
|
|
684
734
|
// --- Work item tools (GraphQL-based) ---
|
|
685
735
|
{
|
|
686
736
|
name: "get_work_item",
|
|
@@ -842,6 +892,7 @@ export const readOnlyTools = new Set([
|
|
|
842
892
|
"list_draft_notes",
|
|
843
893
|
"mr_discussions",
|
|
844
894
|
"list_issues",
|
|
895
|
+
"list_todos",
|
|
845
896
|
"my_issues",
|
|
846
897
|
"list_merge_requests",
|
|
847
898
|
"get_issue",
|
|
@@ -864,6 +915,8 @@ export const readOnlyTools = new Set([
|
|
|
864
915
|
"list_pipeline_trigger_jobs",
|
|
865
916
|
"get_pipeline_job",
|
|
866
917
|
"get_pipeline_job_output",
|
|
918
|
+
"validate_ci_lint",
|
|
919
|
+
"validate_project_ci_lint",
|
|
867
920
|
"list_job_artifacts",
|
|
868
921
|
"download_job_artifacts",
|
|
869
922
|
"get_job_artifact_file",
|
|
@@ -892,6 +945,9 @@ export const readOnlyTools = new Set([
|
|
|
892
945
|
"list_releases",
|
|
893
946
|
"get_release",
|
|
894
947
|
"download_release_asset",
|
|
948
|
+
"list_tags",
|
|
949
|
+
"get_tag",
|
|
950
|
+
"get_tag_signature",
|
|
895
951
|
"get_merge_request_approval_state",
|
|
896
952
|
"get_work_item",
|
|
897
953
|
"list_work_items",
|
|
@@ -919,6 +975,7 @@ export const destructiveTools = new Set([
|
|
|
919
975
|
"delete_group_wiki_page",
|
|
920
976
|
"delete_milestone",
|
|
921
977
|
"delete_release",
|
|
978
|
+
"delete_tag",
|
|
922
979
|
"delete_merge_request_note",
|
|
923
980
|
"delete_merge_request_discussion_note",
|
|
924
981
|
"delete_draft_note",
|
|
@@ -969,6 +1026,8 @@ export const pipelineToolNames = new Set([
|
|
|
969
1026
|
"list_pipeline_trigger_jobs",
|
|
970
1027
|
"get_pipeline_job",
|
|
971
1028
|
"get_pipeline_job_output",
|
|
1029
|
+
"validate_ci_lint",
|
|
1030
|
+
"validate_project_ci_lint",
|
|
972
1031
|
"create_pipeline",
|
|
973
1032
|
"retry_pipeline",
|
|
974
1033
|
"cancel_pipeline",
|
|
@@ -1036,6 +1095,9 @@ export const TOOLSET_DEFINITIONS = [
|
|
|
1036
1095
|
"get_issue",
|
|
1037
1096
|
"update_issue",
|
|
1038
1097
|
"delete_issue",
|
|
1098
|
+
"list_todos",
|
|
1099
|
+
"mark_todo_done",
|
|
1100
|
+
"mark_all_todos_done",
|
|
1039
1101
|
"create_issue_note",
|
|
1040
1102
|
"update_issue_note",
|
|
1041
1103
|
"list_issue_links",
|
|
@@ -1100,6 +1162,11 @@ export const TOOLSET_DEFINITIONS = [
|
|
|
1100
1162
|
"delete_label",
|
|
1101
1163
|
]),
|
|
1102
1164
|
},
|
|
1165
|
+
{
|
|
1166
|
+
id: "ci",
|
|
1167
|
+
isDefault: true,
|
|
1168
|
+
tools: new Set(["validate_ci_lint", "validate_project_ci_lint"]),
|
|
1169
|
+
},
|
|
1103
1170
|
{
|
|
1104
1171
|
id: "pipelines",
|
|
1105
1172
|
isDefault: false,
|
|
@@ -1169,6 +1236,17 @@ export const TOOLSET_DEFINITIONS = [
|
|
|
1169
1236
|
"download_release_asset",
|
|
1170
1237
|
]),
|
|
1171
1238
|
},
|
|
1239
|
+
{
|
|
1240
|
+
id: "tags",
|
|
1241
|
+
isDefault: false,
|
|
1242
|
+
tools: new Set([
|
|
1243
|
+
"list_tags",
|
|
1244
|
+
"get_tag",
|
|
1245
|
+
"create_tag",
|
|
1246
|
+
"delete_tag",
|
|
1247
|
+
"get_tag_signature",
|
|
1248
|
+
]),
|
|
1249
|
+
},
|
|
1172
1250
|
{
|
|
1173
1251
|
id: "users",
|
|
1174
1252
|
isDefault: true,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zereight/mcp-gitlab",
|
|
3
|
-
"version": "2.1.
|
|
3
|
+
"version": "2.1.8",
|
|
4
4
|
"mcpName": "io.github.zereight/gitlab-mcp",
|
|
5
5
|
"description": "GitLab MCP server for projects, merge requests, issues, pipelines, wiki, releases, and more",
|
|
6
6
|
"keywords": [
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"changelog": "auto-changelog -p",
|
|
52
52
|
"test": "npm run test:all",
|
|
53
53
|
"test:all": "npm run build && npm run test:mock && npm run test:live",
|
|
54
|
-
"test:mock": "node --import tsx/esm --test test/remote-auth-simple-test.ts && node --import tsx/esm --test test/mcp-oauth-tests.ts && tsx test/oauth-tests.ts && tsx test/test-list-merge-requests.ts && tsx test/test-list-project-members.ts && tsx test/test-download-attachment.ts && node --import tsx/esm --test test/test-job-artifacts.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-toolset-filtering.ts && node --import tsx/esm --test test/test-auth-retry.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",
|
|
54
|
+
"test:mock": "node --import tsx/esm --test test/remote-auth-simple-test.ts && node --import tsx/esm --test test/mcp-oauth-tests.ts && tsx test/oauth-tests.ts && tsx test/test-list-merge-requests.ts && tsx test/test-list-project-members.ts && tsx test/test-download-attachment.ts && node --import tsx/esm --test test/test-job-artifacts.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-toolset-filtering.ts && node --import tsx/esm --test test/test-ci-lint.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/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",
|
|
55
55
|
"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",
|
|
56
56
|
"test:mcp-oauth": "npm run build && node --import tsx/esm --test test/mcp-oauth-tests.ts",
|
|
57
57
|
"test:live": "node test/validate-api.js",
|