← The evidence ledger
Evidence row 392110
Observed , by sync.mcp_registry/1.
- Kind
- listing
- About
- source_record mcp_registry:io.github.zereight/gitlab-mcp
- Recorded
- Previous row
- #55607
- Body SHA-256
- 55ef20cde3cbf58d2da9928ae3e18117af96601571e1ad75ded0a090d9ae658b
- Leaf
- 0x382cba38217409009806b5e050b8db22a1592a68633d5ed31d96618738f809f6
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-27T01:18:17.772499Z",
"status": "active",
"statusChangedAt": "2026-10-27T01:18:17.772499Z",
"updatedAt": "2026-10-27T01:18:17.772499Z"
}
},
"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.12"
},
{
"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.12",
"registryType": "oci",
"transport": {
"type": "stdio"
}
}
],
"repository": {
"source": "github",
"url": "https://github.com/zereight/gitlab-mcp"
},
"title": "GitLab MCP Server",
"version": "2.3.12",
"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":"55ef20cde3cbf58d2da9928ae3e18117af96601571e1ad75ded0a090d9ae658b","id":392110,"kind":"listing","method":"sync.mcp_registry/1","observed_us":1793066566615540,"prev":55607,"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 (273461 rows).
- 0x382cfc16b53a4a72e46ae16b70fdb3f010039dd67f43751d68b02c97d5b3dcd3
- 0x03b02a8ed55fc8fcccd25d42fad7c1fafcfcf88c52680ed35e9a155526ef83a8
- 0x349973fe02d6371a30cf1ceb8691081a3582ca90bcc8f42a8366c5dd4978557a
- 0x7708579145db36d94a163bace12e0342b8e7d81e4de0ab03802056283cc0d885
- 0xf34b0361c9c32c5990118195e1015f0819a0623c01e7c800d22c5543db6106b4
- 0xb1e3df4c948912a5d4ec82a084261b9b83826c6176ba13a14ae5cbe792fb601f
- 0xe80379770c3035a94a448f10f546e25403d24f4c809901e6912980e24982051d
- 0x5abe8263908ba23b07466a2e695aa8ae329a972570160c736c1c75cf80a0ad59
- 0x6bd099c3af901e316a855c1a967ad3a3c53e03395fb78a5b5d00b633aaff55f4
- 0x4d02885c426a5643d6eaa02b71a8ac16cd2cbc5c1e818b230f8d8610157cba05
- 0xa68b83bee31b674e2a75c182ac7153fa7260e48329b079cb30f4c3ff78a7ebff
- 0x5ad46fa78d79ba6d76c322cad1bc48cbf0c26dc875ba94214d44c9d3c0b36673
- 0x5a6a2d80130a2a2e783e8f8096057d594b53c7bc148344100f2c40afa809745f
- 0x42784d9809d120654630ee1b254a1dd90a2bbd3024aa180f1a59bbf53e9316e4
- 0x8360ee1105e4d9f9312067cbbfd47c69c5948665ae582b9684a580c8f4e199e1
- 0x52efa60e0c3d8525486d2310eb3b6b566c9677c64fd1f819edb072cf101bcbdb
- 0x22c1fb9487ee0b9732fa017a0cc321eb27a60c08450d112f755089796e12cb1c
- 0xa20d48798a34aba12eb9c7297722982d910f06c148f5e27ac59307422964a585
- 0x9fc354c0ea3efc3f1b6548bb77ea902a50f2c9647647ea61592efce2bd795699
- Day root
- 0xdd77e5e99da32c3f154180d63e3c3e6fe11e896a2c6896412ef6b5c4bcf7e795
- Chained
- 0x23bb4dfd09f55c15ac3962f53578e02c6114d5bfd9bb451cf8794fb6e2817ef4
- Published
- On Arc Testnet, block 69414147: 0xb2ebd83aafeb765a0ce66e76aefb133ed06606c98038fd56191e2bcd1dcb77b4