{"id":1474705,"recorded_at":"2026-10-31T01:15:45.147999Z","observed_at":"2026-10-31T01:15:45.147939Z","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-31T01:09:25.455734Z","status":"active","statusChangedAt":"2026-10-31T01:09:25.455734Z","updatedAt":"2026-10-31T01:09:25.455734Z"}},"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.17"},{"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.17","registryType":"oci","transport":{"type":"stdio"}}],"repository":{"source":"github","url":"https://github.com/zereight/gitlab-mcp"},"title":"GitLab MCP Server","version":"2.3.17","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":"d6849a7fb12a04a8572e703cdb8324762e5232e8071b885bcb04212e09ff5a53","prev_id":1225958,"leaf":"0x7216ad7ae223a26a2ad137f10d9ca530f7d21f0af04e75b391834ac7db8f2b17","leaf_text":"{\"body\":\"d6849a7fb12a04a8572e703cdb8324762e5232e8071b885bcb04212e09ff5a53\",\"id\":1474705,\"kind\":\"listing\",\"method\":\"sync.mcp_registry/1\",\"observed_us\":1793409345147939,\"prev\":1225958,\"subject\":\"mcp_registry:io.github.zereight/gitlab-mcp\",\"subject_kind\":\"source_record\"}","day":{"day":"2026-10-31","leaves":246033,"root":"0x24463725d1c0d9894bd6123691d532547aaa79f0762c0e45aa6a68acf1fd71ab","chained":"0x7d4824ff313dee7252a46f9d5c37b452851deb6c9f24a40c2f74ee0e53c82980","anchor_chain":"eip155:5042002","anchor_tx":"0xedb7b832f4ebf6781b5ecd2ed241c435b862f4d3761541fa31adc1831b8c44a0","anchor_block":70093156},"proof":["0x7216cd687dc078836ba70b9f0faf6578f507d296baaca01290b3c06245d2c66b","0x776a5e4ba233bdf75c424eb53e240ae327a65ab613f53e4d286a31d9100017db","0x801a40243aba83d8badadb5d835bb9116877053e86040bdc55317f5b8f6d8ee0","0x5d06c91529da5d1dd05e35f3475aaa272ef195cfb4c85706d11529897cd2f5c9","0x3a3cc6d453f2b25befe29c80a99e8416626b88c5f1f5220fb85e75eba2412400","0x13671426f8e5b2493f138f2d1e19c76520fa00d79bd6a9bd163a42dbe3a49748","0xf48ceddbfd7145ca9195fb779115f106302bebd0b28a87283c4f0ab97dd033c1","0xf205fcafc711da38793a0ef599097dd21a55447ccd1cb6b40643abf5a72f7d93","0x661833dc200f052a445b005cf0d983c81d193d171f6002d06dfe8a83dc839034","0x6dc0eb40edc11b87d0fc507117b7f4323474bd6783583ba5c25f31018c8d24ab","0xdf6a14919a585174708c6a01f464766e006dc261c56c15ae8d5f2872b94c44b5","0xb04f28a28cb2e83f29f5069e821a64559f4b1a9fa3d35a8d9027c84d099bff4f","0x22ce62f80d102d44981e7a95b28386862f9f6290fae5a802b288d50f61d0e85b","0x41e1f7c43ac5b235ed2b70fcc7418dedf8f488e17dfa6d5347558c4b213497ea","0xda82240eda32eeb01478d5898342fa15b35b5682549347c7a22660b37913617f","0x919f237dec4df392868ab95f1d4300b185479ae64464cbc2e7385ad1fd6ab390","0xa00a931d72706fa2402bfc9b441a12eb7c6a61ff42a542916106e3637177f101","0x59f83f7228f07febe2780660e422e171b0359b8aa031ee3be07e991118130c15"]}