← The evidence ledger
Evidence row 772243
Observed , by sync.mcp_registry/1.
- Kind
- listing
- About
- source_record mcp_registry:io.github.zereight/gitlab-mcp
- Recorded
- Previous row
- #581768
- Body SHA-256
- 953f83378b7463eaed76b3fb9dd1e3251a22398fc9f0fb31ebd2a926c92b05f7
- Leaf
- 0x08cccc7039bf8e25712f2b268a31867f055650b7bd534900772615e75f38d838
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-28T13:06:38.818537Z",
"status": "active",
"statusChangedAt": "2026-10-28T13:06:38.818537Z",
"updatedAt": "2026-10-28T13:06:38.818537Z"
}
},
"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.14"
},
{
"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.14",
"registryType": "oci",
"transport": {
"type": "stdio"
}
}
],
"repository": {
"source": "github",
"url": "https://github.com/zereight/gitlab-mcp"
},
"title": "GitLab MCP Server",
"version": "2.3.14",
"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":"953f83378b7463eaed76b3fb9dd1e3251a22398fc9f0fb31ebd2a926c92b05f7","id":772243,"kind":"listing","method":"sync.mcp_registry/1","observed_us":1793193055180813,"prev":581768,"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 (231336 rows).
- 0x08cc94c11aaf623bac497c0d1c0dd002d2ab1a4527976b82de30b69ed294ced8
- 0xc2e94a1673c161a604ca561277eb44bf225c339efd1e1b14851909f7a37b5819
- 0x274d6d8adde660bbe30475d5aab02664fbfc14d0bc0e30dc81de7f951f672e1a
- 0x7aea805d29c40ce7dc75e218d35e52c12b2accfb1b7968e62a7b908fe0f4d6fe
- 0x237b29573412cfe20ea207032cb0c8dc9abd25cc65ad8201ca46c730428a0c4b
- 0x4894567e33e9c21603c92411ebf0a870fd193793620069621e81a02f67dcfa2b
- 0x1fd6bac914d6b360304b3a2a04af9415f9f6f4932831cfdf65c33ee6de601476
- 0x1f4c389c22124b2b0ff0c9e891ad2e3d9c20ad55cde419262cf48740962adac6
- 0x49c1b27f5a242500b48c1a78fbf2ebaa50308f4a38d953005f5a3d9a08ede6cc
- 0x7d315b556bed7c695f760cedd44f9cc2e78a7a7b1bf628ac19dc2820172f44c5
- 0x5584abd14badcd73025dcce4c64aa405404c405ff91f39a427bda991a1e95b37
- 0x825b5cba69887117963e0cfd615aa74fe5ae01aa1deb0098d6b7e04e01634ba7
- 0x8dcd5f3419d7730712ce62dbc974d197b0e9c47ee96e0172cdc134c7a6bf73f2
- 0xf3fd571846115a5778f2f20ec53a7e9b272de5f8737a627379966b3745ad5e29
- 0x2d4bed6c1c0f427d29eba935cdedcc76c72935d41919903a3b217a8ffca38438
- 0x35e8995c30094446ec790423171382fccb377081b921295b0ae3840cc2c4f52c
- 0xf078ea7d84d98dbeffed23d8e67b36751e60464ffd4cfdc005e0aa6f8cb9b459
- 0xe027395fafb7fc41921c42ca0542524ea22204cbd5908b70b27f3d5fb26f5d0f
- Day root
- 0x2c19037464cc4c493624565f01775d6446fc78eaa118fc6865bfe2bfca9ff78e
- Chained
- 0xd1d7dee8322ceff8f4c8d83aa1fe4a4466825c2af1c97dbde3d35db61234f7be
- Published
- On Arc Testnet, block 69584042: 0x8bae2b1d097834c8b458513862d70d29ee807e98dc2e863b27250131c15b35ae