addrbookFor publishers
← The evidence ledger

Evidence row 55607

Observed , by baseline/1.

Kind
listing
About
source_record mcp_registry:io.github.zereight/gitlab-mcp
Recorded
Previous row
None: the first of its kind about this subject
Body SHA-256
a676a74b3e97f75c46ae098915a36b8943fdd3c1ccd3e00d3378775fed424128
Leaf
0xe5d6b363e1375d7145c77fc6d97e72c091ba1d272788cc4bc3bbd0b861df10d4

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-25T03:28:49.696998Z",
        "status": "active",
        "statusChangedAt": "2026-10-25T03:28:49.696998Z",
        "updatedAt": "2026-10-25T03:28:49.696998Z"
      }
    },
    "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.11"
        },
        {
          "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.11",
          "registryType": "oci",
          "transport": {
            "type": "stdio"
          }
        }
      ],
      "repository": {
        "source": "github",
        "url": "https://github.com/zereight/gitlab-mcp"
      },
      "title": "GitLab MCP Server",
      "version": "2.3.11",
      "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":"a676a74b3e97f75c46ae098915a36b8943fdd3c1ccd3e00d3378775fed424128","id":55607,"kind":"listing","method":"baseline/1","observed_us":1793025435278227,"prev":null,"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 (296695 rows).

  1. 0xe5d6bfd72081db732c5d9881d5537ab9b1cc863b1f3af51182185398457e3aaa
  2. 0x0a9610b49f1645d6e5e9d9d49c23c529b6fb08ccd8fc64226ffe7cb4a34a4500
  3. 0x9d8a2d5fefd8b011fc69348319b3f89b3b753fec992c5c408bd15a92147033d9
  4. 0xea48ecdb34e4ffd8a9ec3b5d07b747521801bc7631323740cf01c243d2bf8b83
  5. 0xdadeda0fe89e7f6a7ad315e47d6ee8a5f05d7dcc3e3067f521430681e4c43637
  6. 0x33a7570f8215e522d7a757a1a3e4de2a82f10280ea3170005f0a9fd66fb0df33
  7. 0x8030c66e24ef691d3178690e9b034917e46117e7bc7ce37b17bf7ce32b008ac2
  8. 0x2445468e03ccd41a982539c7486c7e6fc5f63284998f37529b94739c02f4548d
  9. 0x873db23943dee5f51fac2275d9216ac1b19f3ecf3d41210feb294fa1fa31b508
  10. 0x12b3e469f5bb537c324c91aec1f8a6197ee0ff6cc2c50c20bf3887cd5cd84ba6
  11. 0xe9a46d294851ae0e362ab741d0ad8768d3bfeeb15a9d9fcc78aae5128fc33835
  12. 0xb866b513dd861c870688f5d1a8e434b170eaa2fafb0961d6a674d452b8e58381
  13. 0xafcc1fe54cfe00a3a1de33df127340075f22433bb89848bbc81499cd7aca5b2b
  14. 0x9bc5fc98278b9f6dc18c66c6e162aefd5244be03170d41bc5161f58ad11beed7
  15. 0x95657a7d540ed6cac0bde9995782333b2562a9a6641853269ac95148827410f0
  16. 0x5fb5dda563336cd1bc1b9f44c52b76237ae72ed2145cb9290f39f304ca7dd678
  17. 0x74a0a08e4e7ab9aa5bfbead33dec7e1c7e8e364cff69a63720d764bbe987aadc
Day root
0xf43e8dcc3d451a4788b26be904c55e8c4c0fa75c9666796c51db38d37e2c0df8
Chained
0x702d5ac508f08b0d1accf36af25822d8e5660367494edd17a642fb61e158a57a
Published
On Arc Testnet, block 69251483: 0x495162f8936e19f0039918feebe6c307f327cd6bf8c37219620b1970041fa9ae

How to check it · This row as JSON