mcpbeat Sign in

Zn Gate MCP Server

local only

Zn Gate runs on your own machine — the client starts it, so there is no endpoint to ping. 506 installs a week from npm. Last commit 15 Oct 2026.

Local security layer for coding agents: secret redaction, prompt-injection checks and MCP proxy.

Installs per day peak 148 · avg 18 · -12% w/w
a month agotoday
506
Installs / week
npm · zn-gate
2
Stars
0 open issues
15 Oct 2026
Last commit
from GitHub
MIT
License
JavaScript

What the code does

We read the source, 4 min ago · rules ccca72095570

A tool parameter reaches a dangerous call

A value the model can set ends up inside a file or shell call. That is not a flaw by itself — for a terminal server it is the job — but it is where things go wrong when it is not.

A tool parameter reaches a file or shell call secrets_list.url → packages/zn-gate/lib/broker/mcp.js:409, secrets_render_file.template → packages/zn-gate/lib/broker/mcp.js:361, secrets_render_file.out → packages/zn-gate/lib/broker/mcp.js:321 и ещё 9
      fs.writeFileSync(opened.fd, text);
Evidence

Things with no honest explanation: a promise that contradicts the code, code that runs at install time while hiding what it does, data leaving the machine.

Reads secrets and sends them out [пакет] lib/audit/patterns.js:258
  /\b(?:send|upload|post|exfiltrate|forward|transmit|leak|e-?mail|copy|share|paste)\b[^\n]{0,120}?(?:\.env\b|~\/\.ssh|id_rsa|id_ed25519|\.aws\/credentials|\.npmrc|\.netrc|\.git-credentials|api[ _-]?keys?|access[ _-]?tokens?|secrets?|credentials?|passwords?|private[ _-]?keys?|envi…
Hides code and sends data out [пакет] lib/audit/patterns.js:258
… _-]?keys?|environment variables)\b[^\n]{0,120}?(?:https?:\/\/|webhook|pastebin|discord(?:app)?\.com|gist\.github|ngrok|requestbin|attacker)/i,
Capabilities

What this server is able to do. For an MCP server this is often the job itself — a terminal server runs commands because that is what it is for. Listed so you know what you are plugging in, not as an accusation.

  /\b(?:curl|wget|http|iwr|invoke-webrequest|invoke-restmethod)\b[^\n|]{0,200}?(?:-d|--data(?:-binary|-raw|-urlencode)?|-F|--form|-T|--upload-file|--post-file|-InFile|-Body)[\s=]{1,3}["']?@?[^\s"']{0,40}?(?:\.env\b|\.ssh\/|id_rsa|id_ed25519|\.aws\/credentials|\.npmrc|\.netrc|\.git-credentials)/i,
    for (const x of exts) out.push(path.join(dir, name + x));
    pattern: /(?:^|[\s"'`(\[])(?:~|\/home\/[^\s/]+|\/root)?\/?\.(?:ssh\/(?:id_rsa|id_ed25519|authorized_keys)|aws\/credentials|env(?:\.[a-z0-9]+)?)(?![A-Za-z0-9_])|\/etc\/(?:shadow|passwd)(?![A-Za-z0-9_])/i,
… _-]?keys?|environment variables)\b[^\n]{0,120}?(?:https?:\/\/|webhook|pastebin|discord(?:app)?\.com|gist\.github|ngrok|requestbin|attacker)/i,
In the project's build, not in the package

Found in continuous integration, deployment or infrastructure files, or in a neighbouring package of the same monorepo. None of this is installed when you add the server: it describes how the project is built and released. We list it because a leaked key in a build pipeline is still a real problem, but it is not something this server does on your machine.

Builds a database query by concatenation .github/workflows/cache-cleanup.yml:32
      - name: Delete caches of closed pull requests
        env:
          GH_TOKEN: ${{ github.token }}

Is this your server and something here is wrong? Tell us — corrections are free and do not require a plan.

A tool parameter here reaches a dangerous call

That is not a flaw by itself — but it is where things go wrong when it is not the job. We re-read this code on every release. Watch it and you hear from us the day another one appears.

Three servers free · no card

Connect this server

This server runs on your own machine — install it with the package manager and the client starts it for you. Package name taken from the official registry entry.

run in your terminal
claude mcp add zn-gate -- npx -y zn-gate
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "zn-gate": {
      "args": [
        "-y",
        "zn-gate"
      ],
      "command": "npx"
    }
  }
}
~/.codex/config.toml
[mcp_servers.zn-gate]
command = "npx"
args = ["-y", "zn-gate"]
.cursor/mcp.json
{
  "mcpServers": {
    "zn-gate": {
      "args": [
        "-y",
        "zn-gate"
      ],
      "command": "npx"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "zn-gate": {
      "args": [
        "-y",
        "zn-gate"
      ],
      "command": "npx"
    }
  }
}

This one needs environment variables set before it will start: ZN_LOCAL_ONLY (Set to true to force local-only mode, even if ZN_CLOUD=1.), ZN_CLOUD (Set to 1 to let prompt analysis also query the optional cloud classifier. Off by default.), ZN_API_KEY (API key for the optional cloud check. Has no effect without ZN_CLOUD=1.). The author declared them in the registry entry; get the values from the project itself.

Alternatives to Zn Gate

same job, measured the same way
Shadowgate MCP
by josephibra

Security firewall for AI agents — scans MCP calls for injection, secrets, and risks.

answering
AI Firewall MCP
by akhilucky

Multi-agent LLM security layer detecting prompt injection and jailbreaks.

142 installs/wk local only
GuardianShield
by sparkvibe-io

AI security layer: code scanning, PII detection, prompt injection, secrets, CVEs

150 installs/wk local only
Defenter Proxy
by defenter-ai

Real-time semantic security for AI coding agents and MCP tools

115 installs/wk local only
Securityscan
by securityscan-api

Security for AI agents: MCP audits, secret redaction, skill vetting, network scans, agent checkout.

77 installs/wk local only
Agent-Shield
by startekenterprises-ai

Security scanner for AI agents: prompt injection, leaked secrets, PII, and SSRF-risk URL detection.

answering
Mund — MCP Security Scanner
by tyox-all

Scan for prompt injection, secrets, PII, and vet MCP servers before installation

45 installs/wk local only
Agent Security Scanner MCP
by sinewaveai

Security layer for AI agents: blocks prompt injection, detects fake packages, scans vulnerabilities.

327 installs/wk local only

Zn Gate — questions

Answers built from our own checks of this server.

Why is there no uptime for Zn Gate?
Zn Gate runs on your own machine over stdio — there is no network address to reach, so uptime cannot be measured for it by anyone. What can be measured is adoption: the npm package zn-gate was installed 506 times last week.
How do I connect Zn Gate?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It runs locally, so the command pulls zn-gate straight from npm; nothing to host, nothing to sign up for.
How many people use Zn Gate?
The npm package zn-gate was installed 506 times in the last week. Week over week that is -12%. We show installs rather than GitHub stars on purpose: a star is a bookmark, an install is someone actually running it.
Is Zn Gate open source?
Yes — it is published under the MIT licence, written in JavaScript and 2 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.