{"id":581768,"recorded_at":"2026-10-27T23:41:08.128629Z","observed_at":"2026-10-27T23:41:08.128528Z","subject_kind":"source_record","subject":"mcp_registry:io.github.zereight/gitlab-mcp","kind":"listing","method":"sync.mcp_registry/1","body":{"endpoints":[["web","https://zereight.github.io/gitlab-mcp/"]],"name":"GitLab MCP Server","owner_address":null,"raw":{"_meta":{"io.modelcontextprotocol.registry/official":{"isLatest":true,"publishedAt":"2026-10-27T22:50:46.528712Z","status":"active","statusChangedAt":"2026-10-27T22:50:46.528712Z","updatedAt":"2026-10-27T22:50:46.528712Z"}},"server":{"$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","description":"GitLab MCP server for projects, merge requests, issues, pipelines, wiki, releases, and more.","icons":[{"mimeType":"image/svg+xml","sizes":["any"],"src":"https://raw.githubusercontent.com/zereight/gitlab-mcp/main/assets/logo.svg"}],"name":"io.github.zereight/gitlab-mcp","packages":[{"environmentVariables":[{"description":"GitLab personal access token for local stdio use. A non-empty value overrides GITLAB_PERSONAL_ACCESS_TOKEN_FILE. One of this token, GITLAB_PERSONAL_ACCESS_TOKEN_FILE, GITLAB_JOB_TOKEN, GITLAB_AUTH_COOKIE_PATH, or GITLAB_USE_OAUTH=true must be set. Create a token with the GitLab scopes the tools need, such as api or read_api.","format":"string","isSecret":true,"name":"GITLAB_PERSONAL_ACCESS_TOKEN"},{"description":"Path to a file that contains the personal access token. Read once at startup and trimmed. Ignored when GITLAB_PERSONAL_ACCESS_TOKEN or --token is non-empty. A missing, unreadable, or empty file stops startup. Does not replace job token, OAuth, cookie, or remote authorization.","format":"filepath","name":"GITLAB_PERSONAL_ACCESS_TOKEN_FILE"},{"description":"Optional GitLab CI job token to use instead of a personal access token when running inside GitLab CI.","format":"string","isSecret":true,"name":"GITLAB_JOB_TOKEN"},{"description":"Optional path to a GitLab authentication cookie file for cookie-based authentication.","format":"filepath","name":"GITLAB_AUTH_COOKIE_PATH"},{"description":"Set to true to start with GitLab OAuth instead of a personal access token, job token, or cookie file.","format":"boolean","name":"GITLAB_USE_OAUTH"},{"description":"GitLab OAuth application ID. When GITLAB_USE_OAUTH=true, set this or GITLAB_OAUTH_TOKEN_SCRIPT.","format":"string","name":"GITLAB_OAUTH_CLIENT_ID"},{"description":"Command that prints an OAuth access token. When GITLAB_USE_OAUTH=true, set this or GITLAB_OAUTH_CLIENT_ID.","format":"string","name":"GITLAB_OAUTH_TOKEN_SCRIPT"},{"default":"https://gitlab.com/api/v4","description":"GitLab API base URL. Use https://gitlab.com/api/v4 for GitLab.com or your self-managed GitLab API URL.","format":"string","name":"GITLAB_API_URL"},{"description":"Optional comma-separated list of GitLab project IDs that this server is allowed to access.","format":"string","name":"GITLAB_ALLOWED_PROJECT_IDS"},{"choices":["readonly","modify","full"],"description":"Tool exposure. Allowed values are readonly, modify, and full. Unset uses full. readonly keeps read-only tools. modify blocks delete and teardown tools.","format":"string","name":"GITLAB_PERMISSION_MODE"},{"description":"Optional comma-separated list of toolsets to enable, such as projects, issues, merge_requests, pipelines, releases, users, groups, wiki, or search.","format":"string","name":"GITLAB_TOOLSETS"},{"description":"Optional comma-separated list of individual tool names to add on top of enabled toolsets.","format":"string","name":"GITLAB_TOOLS"},{"description":"Optional regular expression used to hide matching tools from the server.","format":"string","name":"GITLAB_DENIED_TOOLS_REGEX"},{"description":"Optional comma-separated list of tool names that require explicit approval before execution.","format":"string","name":"GITLAB_TOOL_POLICY_APPROVE"},{"description":"Optional comma-separated list of tool names to hide from tools/list.","format":"string","name":"GITLAB_TOOL_POLICY_HIDDEN"},{"description":"Set to 0 only when you intentionally need to connect to a GitLab instance with invalid or self-signed TLS certificates.","format":"string","name":"NODE_TLS_REJECT_UNAUTHORIZED"},{"description":"Optional path to a custom CA certificate file for self-managed GitLab instances.","format":"filepath","name":"GITLAB_CA_CERT_PATH"},{"default":"false","description":"Set to true to mask text tool results and returned errors using built-in or configured rules.","format":"string","name":"GITLAB_MASKING_ENABLED"},{"description":"Optional path to a response-masking JSON configuration file.","format":"filepath","name":"GITLAB_MASKING_CONFIG"},{"description":"Optional protected server-owned JSON file containing managed masking policies.","format":"filepath","name":"GITLAB_MASKING_POLICY_FILE"},{"description":"Directory used to resolve response-masking configuration paths.","format":"filepath","name":"GITLAB_MASKING_WORKSPACE_DIR"}],"identifier":"@zereight/mcp-gitlab","registryType":"npm","transport":{"type":"stdio"},"version":"2.3.13"},{"environmentVariables":[{"description":"GitLab personal access token for local stdio use. A non-empty value overrides GITLAB_PERSONAL_ACCESS_TOKEN_FILE. One of this token, GITLAB_PERSONAL_ACCESS_TOKEN_FILE, GITLAB_JOB_TOKEN, GITLAB_AUTH_COOKIE_PATH, or GITLAB_USE_OAUTH=true must be set. Create a token with the GitLab scopes the tools need, such as api or read_api.","format":"string","isSecret":true,"name":"GITLAB_PERSONAL_ACCESS_TOKEN"},{"description":"Path to a file that contains the personal access token. Read once at startup and trimmed. Ignored when GITLAB_PERSONAL_ACCESS_TOKEN or --token is non-empty. A missing, unreadable, or empty file stops startup. Does not replace job token, OAuth, cookie, or remote authorization.","format":"filepath","name":"GITLAB_PERSONAL_ACCESS_TOKEN_FILE"},{"description":"Optional GitLab CI job token to use instead of a personal access token when running inside GitLab CI.","format":"string","isSecret":true,"name":"GITLAB_JOB_TOKEN"},{"description":"Optional path to a GitLab authentication cookie file for cookie-based authentication.","format":"filepath","name":"GITLAB_AUTH_COOKIE_PATH"},{"description":"Set to true to start with GitLab OAuth instead of a personal access token, job token, or cookie file.","format":"boolean","name":"GITLAB_USE_OAUTH"},{"description":"GitLab OAuth application ID. When GITLAB_USE_OAUTH=true, set this or GITLAB_OAUTH_TOKEN_SCRIPT.","format":"string","name":"GITLAB_OAUTH_CLIENT_ID"},{"description":"Command that prints an OAuth access token. When GITLAB_USE_OAUTH=true, set this or GITLAB_OAUTH_CLIENT_ID.","format":"string","name":"GITLAB_OAUTH_TOKEN_SCRIPT"},{"default":"https://gitlab.com/api/v4","description":"GitLab API base URL. Use https://gitlab.com/api/v4 for GitLab.com or your self-managed GitLab API URL.","format":"string","name":"GITLAB_API_URL"},{"description":"Optional comma-separated list of GitLab project IDs that this server is allowed to access.","format":"string","name":"GITLAB_ALLOWED_PROJECT_IDS"},{"choices":["readonly","modify","full"],"description":"Tool exposure. Allowed values are readonly, modify, and full. Unset uses full. readonly keeps read-only tools. modify blocks delete and teardown tools.","format":"string","name":"GITLAB_PERMISSION_MODE"},{"description":"Optional comma-separated list of toolsets to enable, such as projects, issues, merge_requests, pipelines, releases, users, groups, wiki, or search.","format":"string","name":"GITLAB_TOOLSETS"},{"description":"Optional comma-separated list of individual tool names to add on top of enabled toolsets.","format":"string","name":"GITLAB_TOOLS"},{"description":"Optional regular expression used to hide matching tools from the server.","format":"string","name":"GITLAB_DENIED_TOOLS_REGEX"},{"description":"Optional comma-separated list of tool names that require explicit approval before execution.","format":"string","name":"GITLAB_TOOL_POLICY_APPROVE"},{"description":"Optional comma-separated list of tool names to hide from tools/list.","format":"string","name":"GITLAB_TOOL_POLICY_HIDDEN"},{"description":"Set to 0 only when you intentionally need to connect to a GitLab instance with invalid or self-signed TLS certificates.","format":"string","name":"NODE_TLS_REJECT_UNAUTHORIZED"},{"description":"Optional path to a custom CA certificate file for self-managed GitLab instances.","format":"filepath","name":"GITLAB_CA_CERT_PATH"},{"default":"false","description":"Set to true to mask text tool results and returned errors using built-in or configured rules.","format":"string","name":"GITLAB_MASKING_ENABLED"},{"description":"Optional path to a response-masking JSON configuration file.","format":"filepath","name":"GITLAB_MASKING_CONFIG"},{"description":"Optional protected server-owned JSON file containing managed masking policies.","format":"filepath","name":"GITLAB_MASKING_POLICY_FILE"},{"description":"Directory used to resolve response-masking configuration paths.","format":"filepath","name":"GITLAB_MASKING_WORKSPACE_DIR"}],"identifier":"docker.io/zereight050/gitlab-mcp:2.3.13","registryType":"oci","transport":{"type":"stdio"}}],"repository":{"source":"github","url":"https://github.com/zereight/gitlab-mcp"},"title":"GitLab MCP Server","version":"2.3.13","websiteUrl":"https://zereight.github.io/gitlab-mcp/"}},"source":"mcp_registry","summary":"GitLab MCP server for projects, merge requests, issues, pipelines, wiki, releases, and more."},"body_sha256":"014556a3c5884067c91b25ec9246d28e85fdc513ea3144c7aba4c8b3ecbba9c1","prev_id":392110,"leaf":"0x8b4efbdd5074a1fdbdc8527b18c5d4d51d4d0ab7e14e528abe33c5e93773e96b","leaf_text":"{\"body\":\"014556a3c5884067c91b25ec9246d28e85fdc513ea3144c7aba4c8b3ecbba9c1\",\"id\":581768,\"kind\":\"listing\",\"method\":\"sync.mcp_registry/1\",\"observed_us\":1793144468128528,\"prev\":392110,\"subject\":\"mcp_registry:io.github.zereight/gitlab-mcp\",\"subject_kind\":\"source_record\"}","day":{"day":"2026-10-27","leaves":273461,"root":"0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795","chained":"0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4","anchor_chain":"eip155:5042002","anchor_tx":"0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4","anchor_block":69414147},"proof":["0x8b4f2bcf09270a6f33c099409467cdc74eab4093b81a62fa1f4a149874fae189","0x6f634222b623835978b87fb89c1b824e1cc116453c0bf29748ec088687e2bb0a","0x16b079b11901e405996fd6b53f137adbcccd48257857909a25ba1659e31b5a73","0x0d66d051cabe61749f134ccbe541cc128c8036f14e90672d940d3cacd255d96c","0x1f888b5c5e336a57ba8c859646a3bf6f0c626c0dd65d9bafd4c0b3ffd5bbb8db","0xbad84141396f622e3e4bfcb24031c9dbe30523d3d3e17543009b408f1ed216a6","0x4147ea7049457733dd87d28451db150931472454f38d918c9771de3af6daa892","0x17dae5f15fbfca553db39f01073bf1092954edbff91967ee5e45139bcc933faa","0x5b16e9ec50cc8e6a4a9d3c24333efe09cf53d35984e0fe603e33e3f3bbb5bccf","0x5645f68f1fb0e8c2e54f461dbe91bce0595402bb486da126088cf1c275dd2050","0xcdbeb854b5cb2391772ef949ab5c1e3c24cc8221d97cd112ccb987b02e3d89da","0xe9b891332733aa3fa69ace7f82b036df13816078968e2c10034f79c2255498d0","0xea3d566bf95ca7a3a7f6de9c4f77180bd8c5ffd160486a27d870e8a2fb6d0b9e","0x06e3b43165f5b3c31d850bc32f20b2e25b844564c4e042c141b9748c26a5a600","0xb4f7223140c8a36cb87a63d77cf617086d9968dc4658f03e102571ebe06e9ed6","0xfecf3d4646dd4984a13dd715499e842c3fde63692336d97394c2bfd8e877ca5d","0xf30fddbf4811226c58e8f0daf36fddd79fc5f1356b592bb1d99a8061ddbabe66","0x2bf8151e5f157dd183b9de6fa00469551932a7a6e3f33a694895000ac9061197","0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699"]}