Security scanner for AI-written code: SAST, secrets, dependencies, IaC, containers and DAST.
Security scanner for AI-written code. SafeWeave runs inside your AI editor over MCP (Claude Code, Cursor, VS Code, Windsurf) and checks your code for vulnerabilities, leaked secrets, risky dependencies, IaC and container issues, so your assistant can fix findings in the same turn.
safeweave-mcpdev.safeweave/safeweaveThis repository is the open-core part of SafeWeave: the scanner engines (packages/scanners), the scan gateway (packages/gateway), shared types (packages/common), Docker files and the Claude Code skill. The MCP server itself ships on npm.
Run one command. It downloads the scanners and configures every editor it finds:
npx -y safeweave-mcp
Or add it to your editor's MCP config yourself:
{
"mcpServers": {
"safeweave": {
"command": "npx",
"args": ["-y", "safeweave-mcp"],
"env": {
"SAFEWEAVE_LICENSE_KEY": "your-license-key-here"
}
}
}
}
The key is optional. Without one you get a 10-scan trial (SAST, secrets and dependencies). A free account at safeweave.dev/signup unlocks unlimited local scans with 7 scanners.
| Plan | Price | Where scans run | Scanners |
|---|---|---|---|
| No key | Free | Local, 10-scan trial | 3 (SAST, secrets, dependencies) |
| Free account | Free | Local | 7 (everything except DAST) |
| Cloud | $29/mo | Local + hosted | All 8, plus PR checks, website scans and AI-builder rules |
| Cloud Plus | $59/mo | Local + hosted | All of Cloud, plus teammates |
See safeweave.dev/pricing for details.
If you prefer running via Docker:
git clone https://github.com/nickfluxk/safeweave.git
cd safeweave
cp .env.example .env # Edit with your license key and SCAN_DIR
docker compose up
SafeWeave automatically downloads and manages the scanner binaries it needs on first use.
| Tool | Version | Purpose |
|---|---|---|
| gitleaks | 8.21.2 | Secret and credential detection |
| trivy | 0.58.0 | Container vulnerability and IaC misconfiguration scanning |
| opengrep | 1.16.3 | SAST analysis (Semgrep-compatible, standalone binary) |
~/.safeweave/bin/ cache → auto-downloadgitleaks or trivy installed via Homebrew/apt, those are used (never shadowed)semgrep is preferred; if not found, opengrep (a standalone Semgrep-compatible fork) is downloaded — no Python requiredSupported platforms: macOS (arm64, x64), Linux (arm64, x64), Windows (x64)
Cache location:
~/.safeweave/
bin/ # Downloaded binaries
meta/ # Version metadata (JSON)
To force a re-download: rm -rf ~/.safeweave/bin ~/.safeweave/meta
| Scanner | What it detects | Plan |
|---|---|---|
| SAST | SQL injection, XSS, SSRF, path traversal, insecure crypto | Free |
| Secrets | API keys, tokens, passwords and private keys in source | Free |
| Dependencies | Known CVEs in npm, pip, Go and Cargo packages | Free |
| IaC | Terraform, Dockerfile and Kubernetes misconfigurations | Free account |
| Container | Vulnerabilities in container images | Free account |
| License | GPL, AGPL and other risky dependency licenses | Free account |
| Posture | Missing auth, rate limiting, CORS and security headers | Free account |
| DAST | Runtime API security issues in a running app | Cloud |
Works with any MCP-compatible editor — Cursor, Claude Code, VS Code, Windsurf, and more.
Once configured (see Quick Start above), ask your AI:
If running via Docker, use the SSE transport instead:
{
"mcpServers": {
"safeweave": {
"url": "http://localhost:9000/sse"
}
}
}
curl http://localhost:9000/api/health
curl -X POST http://localhost:9000/api/scan \
-H 'Content-Type: application/json' \
-d '{"directory": "/path/to/project"}'
curl -X POST http://localhost:9000/api/scan \
-H 'Content-Type: application/json' \
-d '{"directory": "/path/to/project", "scanners": ["sast", "secrets"]}'
Built-in profiles: standard, hardened, owasp, soc2, pci-dss, hipaa
Set via MCP set_profile tool or create a custom .safeweave/profile.yaml in your project.
| Variable | Required | Description |
|---|---|---|
SAFEWEAVE_LICENSE_KEY | No | Your license key from safeweave.dev. Without it: a 10-scan trial |
SCAN_DIR | Docker only | Host directory to mount for scanning |
SAFEWEAVE_LICENSE_URL | No | License server URL (defaults to https://license.safeweave.dev) |
SafeWeave includes a Claude Code skill that automatically scans your code before every git commit, git push, or PR creation.
Copy the skill to your Claude Code skills directory:
mkdir -p ~/.claude/skills/secure-before-push
curl -sL https://raw.githubusercontent.com/nickfluxk/safeweave/main/skills/secure-before-push/SKILL.md \
-o ~/.claude/skills/secure-before-push/SKILL.md
Or clone and copy:
git clone https://github.com/nickfluxk/safeweave.git /tmp/safeweave
cp -r /tmp/safeweave/skills/secure-before-push ~/.claude/skills/
Once installed, Claude Code automatically runs a SafeWeave scan whenever you say "commit", "push", "ship it", or "create a PR":
| Severity | Action | Blocks push? |
|---|---|---|
| Critical / High | Fix immediately, re-scan | Yes |
| Medium | Warns, asks confirmation | User decides |
| Low / Info | No action | No |
SafeWeave MCP server must be configured. Run npx safeweave-mcp to set it up automatically.
Start a new Claude Code session and ask it to commit code. You should see a SafeWeave scan run before the git operation.
MIT. See LICENSE.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y safeweave-mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"dev-safeweave-safeweave": {
"command": "npx",
"args": [
"-y",
"safeweave-mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referencesafeweave-mcpnpmSafeWeave works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.