Gitlab (zereight) MCP Server

@zereight/mcp-gitlab npm v2.1.42 Source verified

Published by zereight — publish provenance cryptographically ties this package to that repository. That is proof of origin, not an official vendor package.

Trust grade
A
100/100
Last scanned
Trust
A · 100/100
How safe the published surface and source look. Deterministic; every point is auditable.
Capability
High
Blast radius if it went rogue — what the server’s tools could reach. Independent of trust.
Coverage
Source
How much the scan could actually inspect. Shallow coverage is stated, never hidden.
A Why this grade

Started at 100 and nothing was deducted: the deterministic scan raised no scored threat in the published surface it inspected. Capability observations and advisory notes are recorded but never lower the score.

Findings 16

high Shell/command execution in server code (build/oauth.js)MTC-SRC-002

In the server's implementation (`build/oauth.js:8`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: child_process

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server build/oauth.js

high Shell/command execution in server code (build/test/config-allowed-groups.test.js)MTC-SRC-002

In the server's implementation (`build/test/config-allowed-groups.test.js:15`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: child_process

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server build/test/config-allowed-groups.test.js

high Shell/command execution in server code (build/test/sse-auth-guard.test.js)MTC-SRC-002

In the server's implementation (`build/test/sse-auth-guard.test.js:2`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: child_process

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server build/test/sse-auth-guard.test.js

high Shell/command execution in server code (build/test/stateless/config-ttl.test.js)MTC-SRC-002

In the server's implementation (`build/test/stateless/config-ttl.test.js:21`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: child_process

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server build/test/stateless/config-ttl.test.js

high Shell/command execution in server code (build/test/streamable-http-dns-rebinding.test.js)MTC-SRC-002

In the server's implementation (`build/test/streamable-http-dns-rebinding.test.js:2`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: child_process

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server build/test/streamable-http-dns-rebinding.test.js

high Shell/command execution in server code (build/test/streamable-http-static-token-auth.test.js)MTC-SRC-002

In the server's implementation (`build/test/streamable-http-static-token-auth.test.js:2`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: child_process

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server build/test/streamable-http-static-token-auth.test.js

high Shell/command execution in server code (build/test/test-ci-catalog.js)MTC-SRC-002

In the server's implementation (`build/test/test-ci-catalog.js:3`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: child_process

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server build/test/test-ci-catalog.js

high Shell/command execution in server code (build/test/test-ci-lint.js)MTC-SRC-002

In the server's implementation (`build/test/test-ci-lint.js:3`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: child_process

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server build/test/test-ci-lint.js

high Shell/command execution in server code (build/test/test-ci-variables.js)MTC-SRC-002

In the server's implementation (`build/test/test-ci-variables.js:3`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: child_process

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server build/test/test-ci-variables.js

high Shell/command execution in server code (build/test/test-create-repository.js)MTC-SRC-002

In the server's implementation (`build/test/test-create-repository.js:3`): Spawning a shell/process is command-execution capability; with unsanitized tool input it is command injection / RCE. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: child_process

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server build/test/test-create-repository.js

medium Hardcoded egress to an external endpoint (build/test/sse-auth-guard.test.js)MTC-SRC-003

In the server's implementation (`build/test/sse-auth-guard.test.js:59`): A hardcoded outbound call to a fixed external host inside server code is a classic exfiltration/telemetry channel — especially paired with reads of local data. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: fetch(`http://${LOOPBACK}:${port}/health`

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server build/test/sse-auth-guard.test.js

medium Hardcoded egress to an external endpoint (build/test/streamable-http-dns-rebinding.test.js)MTC-SRC-003

In the server's implementation (`build/test/streamable-http-dns-rebinding.test.js:61`): A hardcoded outbound call to a fixed external host inside server code is a classic exfiltration/telemetry channel — especially paired with reads of local data. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: fetch(`http://${hostWithPort(HOST, port)}/health`

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server build/test/streamable-http-dns-rebinding.test.js

medium Hardcoded egress to an external endpoint (build/test/streamable-http-static-token-auth.test.js)MTC-SRC-003

In the server's implementation (`build/test/streamable-http-static-token-auth.test.js:60`): A hardcoded outbound call to a fixed external host inside server code is a classic exfiltration/telemetry channel — especially paired with reads of local data. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: fetch(`http://${HOST}:${port}/health`

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server build/test/streamable-http-static-token-auth.test.js

medium Hardcoded egress to an external endpoint (build/test/test-all-transport-server.js)MTC-SRC-003

In the server's implementation (`build/test/test-all-transport-server.js:220`): A hardcoded outbound call to a fixed external host inside server code is a classic exfiltration/telemetry channel — especially paired with reads of local data. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: fetch(`http://${HOST}:${port}/mcp`

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server build/test/test-all-transport-server.js

medium Hardcoded egress to an external endpoint (build/test/test-remote-downloads.js)MTC-SRC-003

In the server's implementation (`build/test/test-remote-downloads.js:120`): A hardcoded outbound call to a fixed external host inside server code is a classic exfiltration/telemetry channel — especially paired with reads of local data. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: fetch(`http://${HOST}:${serverPort}/downloads/job-artifacts?project_id=${TEST_PROJECT_ID}&job_id=${TEST_JOB_ID}`

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server build/test/test-remote-downloads.js

medium Hardcoded egress to an external endpoint (build/test/utils/server-launcher.js)MTC-SRC-003

In the server's implementation (`build/test/utils/server-launcher.js:205`): A hardcoded outbound call to a fixed external host inside server code is a classic exfiltration/telemetry channel — especially paired with reads of local data. This is read from the code itself — not from the tool description — so a poisoned server cannot hide it behind honest-looking metadata.

Evidence: fetch(`http://${HOST}:${port}/health`

Fix: Review this call path: confirm it never receives unsanitized tool input, constrain it, or remove it. Treat a server whose code reaches these sinks as high-capability regardless of what its tools claim.

Location: server build/test/utils/server-launcher.js

What this scan could not see

Versions

Scan history per published version. The engine is deterministic — the same version always yields the same score, so a changed score means the package itself changed.

VersionScoreFindingsEngineScanned
v2.1.42 latest A 100/100 16 1.5.0 2026-07-22

Embed this score

Show this server's live Trust Score in your README, docs or website. The badge is served straight from the registry and updates automatically after every rescan — no API key needed. It links back to this page, so anyone who sees the grade can also read the findings behind it instead of taking a number on faith.

MCP Trust Score: A · 100/100
Markdown (GitHub README)
[![MCP Trust Score](https://mcptrustchecker.com/registry/zereight-mcp-gitlab/badge.svg)](https://mcptrustchecker.com/registry/zereight-mcp-gitlab)
HTML
<a href="https://mcptrustchecker.com/registry/zereight-mcp-gitlab"><img src="https://mcptrustchecker.com/registry/zereight-mcp-gitlab/badge.svg" alt="MCP Trust Score" height="20"></a>
Prefer shields.io styling? Point it at https://mcptrustchecker.com/registry/zereight-mcp-gitlab/badge.json via https://img.shields.io/endpoint?url=…

Verify this score yourself

The score above is reproducible: the same package version always yields the same result. Run it locally or over the free API — no account, no LLM, fully deterministic.

npx mcptrustchecker scan @zereight/mcp-gitlab --online

Use the free API → How scoring works

Other implementations of Gitlab 22

Independent packages implementing the same tool, scanned with the same engine. Compare all 23 side by side →

More in AI & Agents