Vulnify — Claude Code MCP server: gate every agent action
An MCP server that asks Vulnify before an agent reads, writes, deletes, exports or sends data. The answer comes back as ALLOW, REVIEW or BLOCK.
claude mcp add --transport http mcp https://mcp.vulnify.io/mcpWhat Vulnify does
Vulnify is a runtime authorization layer for AI agents. This server proxies https://api.vulnify.io and keeps neither events nor API keys on its side. The agent asks first, then acts.
Two ways in. The hosted endpoint https://mcp.vulnify.io/mcp speaks stateless Streamable HTTP and signs you in with OAuth 2.1: the client gets HTTP 401, then you pick an organization and approve the scopes it asks for. The local route is npx -y @vulnify/mcp with VULNIFY_API_KEY set; it needs Node.js 20 or newer and never opens a consent page.
The tools differ in what they leave behind. check_action is a dry run — no PII scan, nothing recorded. decide_action writes a real decision, and a REVIEW sits there until a person handles it; this server can neither approve nor deny one. OAuth exposes five tools, while plan_policy_changes and check_mcp_tool_call need an API key. A scope you did not grant comes back as a tool error naming that scope, and that error is not an ALLOW. Keys come as vln_live_... or vln_test_...; a test key writes sandbox events that stay out of the main dashboards.
What it helps with
- gate an agent action before it runs
- get an ALLOW, REVIEW or BLOCK verdict on reads, writes, deletes, exports and sends
- dry-run a policy without recording a decision
- record a real decision for an agent action
- route an action to a human for review
Example prompts for the agent
- Ask Vulnify whether the agent may drop the
sessionstable — dry run only, record nothing. - Get a Vulnify decision for exporting
users.csvand show me thefinalDecisionvalue. - List the Vulnify policies that cover sending data to external services.
How to install Vulnify
1Platform CLI: remote server
claude mcp add --transport http mcp https://mcp.vulnify.io/mcp2Platform CLI
claude mcp add --env VULNIFY_API_KEY=<VULNIFY_API_KEY> --env VULNIFY_BASE_URL=<VULNIFY_BASE_URL> --transport stdio vulnify -- npx -y @vulnify/mcpReplace <…> with your own values
1Platform CLI: remote server
codex mcp add vulnify --url https://mcp.vulnify.io/mcp2Platform CLI
codex mcp add vulnify --env VULNIFY_API_KEY=<VULNIFY_API_KEY> --env VULNIFY_BASE_URL=<VULNIFY_BASE_URL> -- npx -y @vulnify/mcpReplace <…> with your own values
Config file
{
"mcpServers": {
"vulnify": {
"url": "https://mcp.vulnify.io/mcp"
}
}
}{
"mcpServers": {
"vulnify": {
"command": "npx",
"args": [
"-y",
"@vulnify/mcp"
],
"env": {
"VULNIFY_API_KEY": "<VULNIFY_API_KEY>",
"VULNIFY_BASE_URL": "<VULNIFY_BASE_URL>"
}
}
}
}Replace <…> with your own values
Config file
{
"servers": {
"vulnify": {
"type": "http",
"url": "https://mcp.vulnify.io/mcp"
}
}
}{
"servers": {
"vulnify": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@vulnify/mcp"
],
"env": {
"VULNIFY_API_KEY": "<VULNIFY_API_KEY>",
"VULNIFY_BASE_URL": "<VULNIFY_BASE_URL>"
}
}
}
}Replace <…> with your own values
1Platform CLI: remote server
gemini mcp add -t http vulnify https://mcp.vulnify.io/mcp2Platform CLI
gemini mcp add -e VULNIFY_API_KEY=<VULNIFY_API_KEY> -e VULNIFY_BASE_URL=<VULNIFY_BASE_URL> vulnify npx -y @vulnify/mcpReplace <…> with your own values
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about Vulnify
How do I install Vulnify in Claude Code?
Run claude mcp add --transport http vulnify https://mcp.vulnify.io/mcp and complete the sign-in. Do not pass an API key on that command.
What does Vulnify do?
It returns ALLOW, REVIEW or BLOCK for an agent action. decide_action records the decision; check_action only tests and stores nothing.
How does the local setup differ from the hosted one?
Local npx -y @vulnify/mcp needs Node.js 20 or newer and a key in VULNIFY_API_KEY. The hosted server signs in over OAuth but offers five of the seven tools.