Documentation
Exact configuration for Claude Code, Claude Desktop, Cursor, VS Code, Windsurf, Zed, Cline, Goose, Continue, JetBrains and Codex CLI, plus the generic recipe and the unverified list.
Every client here reaches the server the same way: remote HTTP MCP, one URL, one header. There is no local proxy, no stdio bridge, and nothing to install.
https://mcp.vulnetix.com/mcp
Authorization: ApiKey <orgId>:<hex>
What differs between clients is only where that config lives, and how each one lets you avoid pasting a secret into a file you might commit.
| Client | Transport | Custom headers | Config location | Watch out for |
|---|---|---|---|---|
| Claude Code | HTTP | Yes | claude mcp add, ~/.claude.json, or .mcp.json | Project scope prompts for approval on first use |
| Claude Desktop | HTTP | Yes | Settings → Connectors, or claude_desktop_config.json | Needs a full quit, not a window close |
| Cursor | HTTP | Yes | ~/.cursor/mcp.json or .cursor/mcp.json | Project file is committed by reflex, so use the global one |
| VS Code / Copilot | HTTP | Yes | .vscode/mcp.json or user mcp.json | Use inputs so the key is never in the file |
| Windsurf | HTTP | Yes | ~/.codeium/windsurf/mcp_config.json | Uses serverUrl, not url |
| Zed | HTTP | Yes | settings.json → context_servers | Naming differs across versions, so check yours |
| Cline / Roo Code | HTTP | Yes | cline_mcp_settings.json, or the UI | Auto-approve is off by default; it is worth leaving off |
| Goose | HTTP | Yes | ~/.config/goose/config.yaml | Extension type is streamable_http |
| Continue | HTTP | Yes | ~/.continue/config.yaml | MCP applies in agent mode only |
| JetBrains AI | HTTP | Yes | Settings → Tools → AI Assistant → MCP | Availability varies by IDE version |
| Codex CLI | HTTP | Yes | ~/.codex/config.toml | TOML, not JSON, and the quoting differs |
| Anything else | HTTP | Usually | Varies | The generic recipe |
| CI pipelines | HTTP | Yes | Platform secret store | Never inline the key in a workflow file |
Almost every client offers both. The trade-off is the same everywhere.
Global (~/.cursor/mcp.json, ~/.claude.json, user settings) puts the server
in every project, and the key lives outside every repository. This
is the right default, and the only one where an accidental git add -A cannot
leak your credential.
Project (.mcp.json, .cursor/mcp.json, .vscode/mcp.json) makes the server
travel with the repository, so a teammate cloning it gets the same tools. Useful
for a shared security workflow.
git add -A does not know one from
another. Use your client’s environment-variable or inputs indirection, or keep
the server global. If you have already pushed one, rotate the key and treat the
old one as public.Nearly every client reads MCP configuration once at launch and caches the tool list. Reloading a window or reopening a tab is usually not enough. If the tools do not appear, restart the application fully before assuming the config is wrong.