{"id":1001348,"recorded_at":"2026-10-29T06:12:53.922132Z","observed_at":"2026-10-29T06:12:53.922089Z","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-29T05:57:50.446363Z","status":"active","statusChangedAt":"2026-10-29T05:57:50.446363Z","updatedAt":"2026-10-29T05:57:50.446363Z"}},"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.15"},{"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.15","registryType":"oci","transport":{"type":"stdio"}}],"repository":{"source":"github","url":"https://github.com/zereight/gitlab-mcp"},"title":"GitLab MCP Server","version":"2.3.15","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":"32c951aeaf22508713cc49b3c2d7291a070ae06f23d831abc6a1a7a54507438b","prev_id":772243,"leaf":"0xce1d5d325f1510b98637bff741a83718d6853f41d4295f1f4411ab5fd81637a9","leaf_text":"{\"body\":\"32c951aeaf22508713cc49b3c2d7291a070ae06f23d831abc6a1a7a54507438b\",\"id\":1001348,\"kind\":\"listing\",\"method\":\"sync.mcp_registry/1\",\"observed_us\":1793254373922089,\"prev\":772243,\"subject\":\"mcp_registry:io.github.zereight/gitlab-mcp\",\"subject_kind\":\"source_record\"}","day":{"day":"2026-10-29","leaves":242798,"root":"0xc050555c6b023f2aefb6536efb9f0760b92c30a0d06c572b7daf63db259ea17c","chained":"0x4cde8bae2042512e1bec11650628f0293556311cc4ea74d99ffddf02b671a7d6","anchor_chain":"eip155:5042002","anchor_tx":"0x9e85c340732f416e431b111fae72f7624870125f7f379af2732eb6c2ba8cf6a1","anchor_block":69753317},"proof":["0xce1d8e372ed33d8f360cae1a299997d5c08986a093f937a32a91b789e4c55e9c","0x04985deaa737cdfc5e66e3cdb9287f406b0253b7124b6a5d2b7ee9faa9ba1056","0x5be9d23378243d3f4d29128a5cf22ca2887e06c5ec765bd573c1ea363c06d949","0x11ee23e557c73c7b405a291f15ec515e6f53d80b5ca0108001254fe5e4ca8485","0xba0a97b59ce77943fb40e833cee4a8d3e8964b4479f39e2559ee8736e2bb3cdb","0x6790b0ac3849bcaccc959ef65db35c3c907117b18c408269d49f52c489bdc7bc","0x4c8a6bd7a67c981e7bec83bd443d4e0e1ace14334da77c3e1191ac8a8fb88514","0xce5089bee5db6f14814cf30fdf33c09dccab2786454fbbc3a77cb2057ae2e50e","0x038629e6130dd811d128bd2140fa3134c7fe8c6c1d4d67b6e354d2832db3382c","0x205054b99e577bfe3a9a110430d2ba1c3a473a8b97db08127c5651bec9c407ef","0xf76b7e89124336f7016b5dd7ebe04f924f6a8309afe69fdad11bed505671b449","0x53c682b31810858d865f950564c0ebec1ff5893083f3a9cd4ff6faeeaaf02e68","0x97f0ccb56ab0f3fc0746e8ceca39a31e5cd22b8979ee43500468693a013c5beb","0xff4a7a4ef98a9db806f61d17fd3535917a23846dc8183da0b176c5699301b5ba","0x4e4f8f228a3b7a38299ec6f2b1967c6cf4de15fdd9dc0d200e691266e51ef99d","0xef5d5572aac8f06b61579b7167b369fcb479d9027d4037dc9cacff9e3a26ffd2","0xa1fa2e97e71ad6e802f325afd74bb7095901f2060529c9739182a1233f8804bc","0xe01539ac4c9f9cdf265a9e5c6d99c8da11e70ff0c7175fb23e402d33b9d79785"]}