SafeNode MCP Gateway MCP server
io.github.sp3ak/safenode-mcp-gateway·v0.1.2Policy proxy for MCP tool calls. A denied call never reaches the downstream server.
0 stars26 downloads/wk
Reviews
Write oneNobody has reviewed SafeNode MCP Gateway yet.
If you have run it, two minutes of your experience saves the next person an afternoon.
SafeNode MCP Gateway tools
No tool declarations could be read from the package source. They show once the server is installed.
Public scan report
scanner v0.1.9 · 2026-09-23 · same rubric, same numbers if you re-run it
- Code scan16 source files scanned25/25
- –Live reliabilityno gateway calls yet and no remote to proben/a
- –Tool poisoningtools not inspected (local package is not executed); not countedn/a
- Auth qualitystatic API keys via environment variables6/15
- Maintenancelast push 42 days ago12/15
- Maintainer identityregistry namespace matches repository owner; GitHub account older than a year8/10
How SafeNode MCP Gateway compares
Against every graded MCP server, from our own scans and uptime checks. Updated after each scan run.
- Safety score
- 78/100
- higher than 57% of 48,255 servers
- Downloads a week
- 26
- more than 13% of 12,191 servers with a package
Install SafeNode MCP Gateway in Claude Code, Cursor or VS Code
Runs npx -y safenode-mcp-gateway on your machine. Read the scan report first; the gateway never runs local packages.
claude mcp add safenode-mcp-gateway -- npx -y safenode-mcp-gateway
What the publisher says
From the SafeNode MCP Gateway repository's README, as published. We do not edit it. Read it on GitHub
SafeNode MCP Gateway
An MCP proxy that enforces policy on every tool call. The agent cannot route around it.
npx safenode-mcp-gatewayWhy a proxy
An MCP server that exposes an evaluate_action tool is theatre. The model can choose not to call it, which means it enforces nothing.
This is a proxy. It sits between your MCP client (Claude Desktop, Claude Code, Cursor, any MCP host) and the MCP servers you already use. tools/list passes straight through, so the model sees exactly the tools it saw before. Every tools/call is evaluated against SafeNode first. A denial means the call never reaches the downstream server at all.
Claude Desktop ──► safenode-mcp-gateway ──► filesystem server
│ github server
▼ postgres server
SafeNode API
allow/warn/review/denyYour agent needs no code changes. It does not know the gateway is there.
Get an API key — free tier, no card · Docs · Python SDK
Setup
1. Get an API key
Free at safenode.tech. Keys look like sn_....
2. Write a config
safenode-gateway.json — take the servers straight out of your existing MCP client config:
{
"failMode": "fail_closed",
"payloadMode": "redacted",
"logFile": "./safenode-decisions.jsonl",
"servers": [
{
"name": "filesystem",
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/Users/you/projects"]
}
],
"tools": {
"read_file": { "failMode": "fail_open" },
"write_file": { "payloadMode": "metadata_only" }
}
}Do not put your API key in this file. Set SAFENODEAPIKEY in the environment — it takes precedence over the config, so the file stays safe to commit.
3. See what would be sent, before sending anything
SAFENODE_API_KEY=sn_... npx safenode-mcp-gateway --dry-runPrints the exact JSON body that an evaluation would POST. No network call. This is the fastest way to satisfy yourself about what leaves your machine.
4. Point your MCP client at the gateway
Claude Desktop — claudedesktopconfig.json:
{
"mcpServers": {
"safenode": {
"command": "npx",
"args": ["-y", "safenode-mcp-gateway", "--config", "/absolute/path/to/safenode-gateway.json"],
"env": { "SAFENODE_API_KEY": "sn_..." }
}
}
}Claude Code — .mcp.json in your project:
{
"mcpServers": {
"safenode": {
"command": "npx",
"args": ["-y", "safenode-mcp-gateway", "--config", "./safenode-gateway.json"],
"env": { "SAFENODE_API_KEY": "sn_..." }
}
}
}Cursor — ~/.cursor/mcp.json, same shape as Claude Desktop.
Replace your existing server entries with this one. The gateway spawns them itself, so listing them in both places would run each server twice.
What each decision does
Denials come back as MCP tool errors, not transport failures, so the model sees why and can try something else instead of the host surfacing an opaque crash.
Fail behaviour
failMode decides what happens when SafeNode itself is unreachable.
Shortened. The full README is on GitHub.
Nothing above is checked by us. What we check is on the safety report.
SafeNode MCP Gateway: common questions
- Is SafeNode MCP Gateway MCP server safe?
- Mostly: it is graded B (78/100). Read the SafeNode MCP Gateway safety report
- How do I install SafeNode MCP Gateway?
- It runs on your machine. Copy the Claude Code, Cursor, VS Code or Claude Desktop config from the install section.
- Does SafeNode MCP Gateway need an API key?
- Yes. The registry entry asks for
SAFENODE_API_KEY. - Is SafeNode MCP Gateway maintained?
- The last commit was 83 days ago (2026-08-13). The latest release is v0.1.2.
- How does SafeNode MCP Gateway compare with other MCP servers?
- safety score 78/100 (higher than 57% of 48,255 servers); downloads a week 26 (more than 13% of 12,191 servers with a package). Full comparison.