Claude Code
Claude Code speaks remote HTTP MCP natively, so the integration is a single command.
Add it
claude mcp add --transport http vulnetix https://mcp.vulnetix.com/mcp \
--header "Authorization: ApiKey ${VULNETIX_ORG}:${VULNETIX_KEY}"
Confirm:
claude mcp list
vulnetix http https://mcp.vulnetix.com/mcp ✓ connected
Edit ~/.claude.json and add under mcpServers:
{
"mcpServers": {
"vulnetix": {
"type": "http",
"url": "https://mcp.vulnetix.com/mcp",
"headers": {
"Authorization": "ApiKey <orgId>:<hex>"
}
}
}
}
Restart Claude Code.
Which scope
claude mcp add takes --scope, and the choice decides where your key lands.
| Scope | Written to | Available in | Key in git? |
|---|---|---|---|
local (default) | Project section of ~/.claude.json | This project, only you | No |
user | User section of ~/.claude.json | Every project | No |
project | .mcp.json in the repo | Everyone who clones | Yes, unless you use a variable |
claude mcp add --scope user --transport http vulnetix https://mcp.vulnetix.com/mcp \
--header "Authorization: ApiKey ${VULNETIX_ORG}:${VULNETIX_KEY}"
--scope user is the right default: the server follows you into every
repository and the credential never sits inside one.
Sharing with a team
Use --scope project so .mcp.json is committed, and keep the key out of it
with an environment variable:
{
"mcpServers": {
"vulnetix": {
"type": "http",
"url": "https://mcp.vulnetix.com/mcp",
"headers": {
"Authorization": "ApiKey ${VULNETIX_ORG}:${VULNETIX_KEY}"
}
}
}
}
Each developer exports their own:
export VULNETIX_ORG=...
export VULNETIX_KEY=...
${VAR} in .mcp.json, so the file stays safe to commit.
Paste a literal key instead and it goes into git history on the next git add.
If that has already happened, rotate the key.Claude Code asks for approval the first time it sees a project-scoped server from
a repository. That prompt is a security feature. Reset the decision with
claude mcp reset-project-choices.
Confirm it works
Inside a session:
/mcp
You should see vulnetix connected with 31 tools and 33 prompts.
Then ask something the model cannot answer from memory:
Is CVE-2021-44228 still being actively exploited, and is there a CISA deadline?
Using the skill prompts
The 33 Pix workflows appear as slash commands, namespaced by server:
/mcp__vulnetix__vulnetix_vuln
/mcp__vulnetix__vulnetix_incident_respond
/mcp__vulnetix__vulnetix_fix
Sixteen of them drive your local machine and expect the Vulnetix CLI on your PATH, and each says so in its first paragraph. See Skill prompts.
Already using the Pix plugin?
They complement each other and share one credential. The Pix plugin adds hooks, subagents and capability detection that MCP has no equivalent for; the MCP server needs no CLI and works in every other client. Running both is fine, though you will see some workflows twice, once as a plugin skill and once as an MCP prompt.
Troubleshooting
Tools do not appear. Restart fully; /mcp shows the live connection state.
401 inside every tool result. The header is missing the org half. It must
be ApiKey <orgId>:<hex>.
${VULNETIX_KEY} shows up literally. The variable was not exported in the
shell that launched Claude Code. Export it in your rc file and start a new
terminal.
A project server never loads. You likely declined the approval prompt. Run
claude mcp reset-project-choices.