← The evidence ledger
Evidence row 1225958
Observed , by sync.mcp_registry/1.
- Kind
- listing
- About
- source_record mcp_registry:io.github.zereight/gitlab-mcp
- Recorded
- Previous row
- #1001348
- Body SHA-256
- 66fa4a1438e7c50c8a19e5e1d20446576124e9812772cd8486afb73e720f56d5
- Leaf
- 0xc34652807994f3ddbe0443c1cba885047cac331a21afeed0fd60e6be8d1b87d8
What was observed
{
"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-30T02:53:48.404464Z",
"status": "active",
"statusChangedAt": "2026-10-30T02:53:48.404464Z",
"updatedAt": "2026-10-30T02:53:48.404464Z"
}
},
"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.16"
},
{
"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.16",
"registryType": "oci",
"transport": {
"type": "stdio"
}
}
],
"repository": {
"source": "github",
"url": "https://github.com/zereight/gitlab-mcp"
},
"title": "GitLab MCP Server",
"version": "2.3.16",
"websiteUrl": "https://zereight.github.io/gitlab-mcp/"
}
},
"source": "mcp_registry",
"summary": "GitLab MCP server for projects, merge requests, issues, pipelines, wiki, releases, and more."
}What the leaf hashes
{"body":"66fa4a1438e7c50c8a19e5e1d20446576124e9812772cd8486afb73e720f56d5","id":1225958,"kind":"listing","method":"sync.mcp_registry/1","observed_us":1793330091484365,"prev":1001348,"subject":"mcp_registry:io.github.zereight/gitlab-mcp","subject_kind":"source_record"}Proof
Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (243099 rows).
- 0xc3462455ad2260ed3b581885e7f0d7b8141a763370e67d7011beb18d8e74b1fb
- 0xc8430fd46e81eff58987bf9667506851cafd2e2f2ad5ec30e4899593710b67e4
- 0xe2de9b00a26c553bfe5dedf7658525f894201b8c6c600eadf487c8419523c16f
- 0x4bab3443590c3de99f4fd6b55d9eb56a2e12ff57c68203572b0fcd7e05a5b679
- 0x6d92ce1c13c4c1147e121540b8a69d6c5731110d62dbccdb7c67e262e8195351
- 0x1056301cf554a82a2e13488602244cc1bf17d4fbf0fba64211b9534155708e5a
- 0x6bffc66c968b97bba2e3b3b2a7c00c8ae3aa62b815313e1fc499894064dcd84d
- 0x34137e3148c813c11560cabb83eb06feaf9234c8ce771e52bf393c04c03846f0
- 0xfc94375da87ff781a5d66d892623f43cb0c8f5646299e5001d691d9741407dd7
- 0x71f6a858ce4623f45799259bfc7e14cf0bb491bde92f077b1af11c8bb0ca66e5
- 0x1ffb5959cab188148a2c047208237bed6c52b131de21c82461feb1868d714a63
- 0x9fb1119d8b5095fdcdaef00d4f92ce423ad5d224a8ecf628aca8fa9c35c3dc5e
- 0x471b09add521b98a16ea9fc9d6a9b0d36c3550dc29ba4c83971dbd67d002d009
- 0x342f35813d736e85ba1881bcb69ecc7b4b96d68e557b8417f1f4ec705ab16ab6
- 0x9fb4eebd924fd42d4eb61d55691812de0db9242fc9c0dabb65c4054447246797
- 0x0c59b8770d2782eb535aefbb9b2f6810bab4757f51b37e00f5147713a1de9481
- 0x61ef83255d34604cb052882568ca1d1386ac3cfb8284509715bc1734cff77831
- 0x0c43c73b62a5d49ee1444b5dc4195fc5b16b141d3f4458e2e9fbd5fd6ecb367d
- Day root
- 0x0826c7ad6039e06a2360ca0a4a3a4fe7f2626c6dc19f71a37599386f78b39875
- Chained
- 0x36b4c8a1063758f0b8765fa1bdf75fa92fb543cc183add3e261880ee2bd1f822
- Published
- On Arc Testnet, block 69923247: 0x8704744146c6967c8abc9e9a99de4db7283b29e840922ea83a69b6fe776e6861